chatrapathyee/aws-cross-account-iam-access

GitHub: chatrapathyee/aws-cross-account-iam-access

该项目通过 Terraform 实现了基于 AWS Organizations、IAM Identity Center 和 STS 的生产级跨账户安全访问架构。

Stars: 0 | Forks: 0

# AWS IAM 跨账户访问 一个生产级的跨账户安全访问实现,使用了 **AWS Organizations**、**AWS IAM Identity Center**、**AWS Security Token Service (STS)** 和 **Terraform**。 本项目演示了企业安全团队如何集中管理对 AWS 成员账户的访问,而无需使用长期有效的 IAM 用户或共享的管理员凭证。 ## 概述 本项目使用基础设施即代码 (Terraform) 实现了该企业身份验证模型。 架构包括: - AWS Organization - Security 账户 - Production 账户 - AWS IAM Identity Center - 跨账户 IAM Role - Terraform 管理的基础设施 ## 架构 ``` AWS Organization │ ┌────────────────┴────────────────┐ │ │ ▼ ▼ Security Account Production Account │ │ │ SecurityAuditRole │ ▲ └──────────── AssumeRole ─────────┘ (AWS STS) IAM Identity Center │ SecurityAdmin ``` ## 功能 - 多账户 AWS Organization - Security 与 Production 账户隔离 - AWS IAM Identity Center 身份验证 - 跨账户 IAM role 担任 - AWS STS 临时凭证 - Terraform 基础设施即代码 - IAM 信任策略 - 企业身份验证工作流 ## 展示的技能 - AWS Organizations - Organizational Units (OUs) - AWS IAM Identity Center - Permission Sets - 跨账户 IAM Roles - AWS Security Token Service (STS) - Terraform - 基础设施即代码 (IaC) - 带有 SSO 的 AWS CLI - IAM 信任策略 ## 仓库结构 ``` aws-cross-account-iam-access/ │ ├── README.md │ └── terraform/ ├── main.tf ├── providers.tf ├── variables.tf ├── outputs.tf ├── versions.tf ├── terraform.tfvars.example │ ├── policies/ │ ├── trust_policy.json │ └── security_audit_policy.json │ ├── modules/ └── environments/ ``` ## 前置条件 在部署此项目之前,请确保您具备: - AWS Organization - Security 账户 - Production 账户 - 已启用 AWS IAM Identity Center - AdministratorAccess 权限集 - AWS CLI v2 - Terraform >= 1.6 - Git ## 部署 1. 克隆仓库 ``` git clone cd aws-cross-account-iam-access/terraform ``` 2. 使用 AWS IAM Identity Center 登录 ``` aws sso login --profile security-admin ``` 3. 初始化 Terraform ``` terraform init ``` 4. 验证配置 ``` terraform validate ``` 5. 查看执行计划 ``` terraform plan ``` 6. 部署基础设施 ``` terraform apply ``` ## 验证 验证当前活跃的 AWS 身份。 ``` aws sts get-caller-identity --profile security-admin ``` 验证跨账户 role 担任。 ``` aws sts assume-role \ --profile security-admin \ --role-arn arn:aws:iam:::role/SecurityAuditRole \ --role-session-name TestSession ``` 验证 Terraform 状态。 ``` terraform plan ``` 预期输出: ``` No changes. Your infrastructure matches the configuration. ``` ## 学习成果 通过这个项目,我学到了: - 企业级多账户 AWS 架构 - AWS Organizations 和 Organizational Units - AWS IAM Identity Center 身份验证 - 跨账户 IAM 信任关系 - AWS STS AssumeRole 工作流 - Terraform provider 别名 - Terraform 状态管理 - 将现有的 AWS 资源导入 Terraform - 调试使用 AWS SSO 时的 Terraform 身份验证问题 ## 故障排除 实施过程中遇到的常见问题: - AWS IAM Identity Center (SSO) 会话过期 - Terraform provider 身份验证失败 - IAM 信任策略配置 - 现有的 AWS 资源需要导入 Terraform - 针对跨账户部署的 provider 别名配置 每个问题都通过使用 AWS CLI、AWS STS 和 Terraform 进行验证而得到解决。
标签:Homebrew安装