islamelkadi/terraform-aws-iam

GitHub: islamelkadi/terraform-aws-iam

基于企业实战经验的生产级 AWS IAM Terraform 模块,支持多合规框架并可根据环境自动调整安全控制强度。

Stars: 0 | Forks: 0

# Terraform AWS IAM 模块 [![Terraform Security](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/9e8a9b5ebe200930.svg)](https://github.com/islamelkadi/terraform-aws-iam/actions/workflows/terraform-security.yaml) [![Terraform Lint & Validation](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/fb0ab7b8cc200932.svg)](https://github.com/islamelkadi/terraform-aws-iam/actions/workflows/terraform-lint.yaml) [![Terraform Docs](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/545f594e24200936.svg)](https://github.com/islamelkadi/terraform-aws-iam/actions/workflows/terraform-docs.yaml) 用于 AWS IAM roles 和 policies 的可复用 Terraform 模块。 ## 前置条件 本模块专为 macOS 设计。您的计算机上必须已安装以下内容: - Python 3 和 pip - [Kiro](https://kiro.dev) 和 Kiro CLI - [Homebrew](https://brew.sh) 要安装其余的开发工具,请运行: ``` make bootstrap ``` 这将安装/升级:tfenv、Terraform(通过 tfenv)、tflint、terraform-docs、checkov 和 pre-commit。 ## 安全性 ### 安全控制 为 FSBP、CIS、NIST 800-53/171 和 PCI DSS v4.0 实施控制: - 最小权限 IAM policies - 禁止通配符资源(可配置) - 具有适当 assume role policies 的 Service roles - 基于路径的组织结构 - 带审计理由的安全控制覆盖 ### 基于环境的安全控制 安全控制通过 [terraform-aws-metadata](https://github.com/islamelkadi/terraform-aws-metadata?tab=readme-ov-file#security-profiles) 模块的安全配置文件,根据环境自动应用: | Control | Dev | Staging | Prod | |---------|-----|---------|------| | 最小权限 | 强制 | 强制 | 强制 | | 禁止通配符资源 | 推荐 | 必须 | 必须 | | Service roles | 必须 | 必须 | 必须 | | 人工访问的 MFA | 可选 | 必须 | 必须 | 有关安全配置文件的完整详细信息以及控制如何随环境变化,请参阅 [安全配置文件](https://github.com/islamelkadi/terraform-aws-metadata?tab=readme-ov-file#security-profiles) 文档。 ### 安全扫描抑制 本模块抑制了某些不适用于示例/演示代码的 Checkov 安全检查。以下检查在 `.checkov.yaml` 中被抑制: **模块源版本控制 (CKV_TF_1, CKV_TF_2)** - 被抑制是因为我们使用语义版本标签(`?ref=v1.0.0`)而不是提交哈希,以获得更好的可维护性和可读性 - 语义版本控制是稳定版本的有效且广泛接受的版本控制策略 **IAM Policy 附加 (CKV_AWS_40)** - 被抑制是因为示例代码为了教育目的演示了 IAM user policy 附加 - 在生产环境中,用户应将 policies 附加到 groups 或 roles,而不是直接附加到 users ## 子模块 | 子模块 | 描述 | |-----------|-------------| | [role](modules/role/) | 具有 assume role policies、托管和内联 policies 的 IAM roles | | [policy](modules/policy/) | 带有可选附加的独立 IAM policies | ## 模块结构 ``` terraform-aws-iam/ ├── modules/ │ ├── role/ │ │ ├── example/ │ │ │ ├── main.tf │ │ │ ├── variables.tf │ │ │ ├── outputs.tf │ │ │ └── params/input.tfvars │ │ └── ... │ └── policy/ │ └── ... └── README.md ``` ## 要求 | Name | Version | |------|---------| | terraform | >= 1.14.3 | | aws | >= 6.34 | ## MCP 服务器 本模块包含两个在 `.kiro/settings/mcp.json` 中配置的 [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) servers,用于 Kiro: | Server | Package | 描述 | |--------|---------|-------------| | `aws-docs` | `awslabs.aws-documentation-mcp-server@latest` | 提供对 AWS 文档的访问,用于服务功能、API 参考和最佳实践的上下文查找。 | | `terraform` | `awslabs.terraform-mcp-server@latest` | 允许直接从 IDE 执行 Terraform 操作(init、validate、plan、fmt、tflint),并为常见工作流提供自动批准的命令。 | 这两个 servers 均通过 `uvx` 运行,除了 [bootstrap](#prerequisites) 步骤外,无需额外安装。 ## 要求 无要求。 ## Providers 无 providers。 ## Modules 无 modules。 ## Resources 无 resources。 ## Inputs 无 inputs。 ## Outputs 无 outputs。
标签:AWS IAM, CIS Benchmarks, EC2, FSBP, IaC, JSONLines, NIST 800-53, PCI DSS, Pre-commit, Python, Security Hub, Terraform Module, Tflint, 企业级, 安全合规, 无后门, 最小权限原则, 特权提升, 网络代理, 自动化部署, 角色策略管理, 身份与访问管理, 逆向工具, 零信任