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安装