AWS 身份与联合身份验证相关实际操作。
创建跨账户 IAM 角色访问(Creating Cross-Account IAM Roles)
一、最终目标

二、在生产环境中创建 IAM 角色
全程通过生产环境账户进行操作。
- 进入
IAM控制台 - 选择角色
- 创建角色
- ⭐ 选择受信任的实体类型为其他 AWS 账户
- 输入身份账户的账户 ID
- ⭐ 给予这个角色
S3存储桶的完全访问权限 - 填写角色名称并创建
- 角色创建成功后确认信息
- 角色 ARN
- ⭐ 用以切换角色的链接
- 信任关系(策略)





三、在身份账户中创建 IAM 用户
全程通过身份账户进行操作。
- 进入
IAM控制台 - 选择用户
- 创建
IAM 用户- 选择密码 - AWS 管理控制台访问
- 不选择任何权限
- 不添加标签
- 确认用户信息并创建
- 创建成功后为
IAM 用户添加内联策略- 选择策略编辑的 JSON 选项卡
- 填入如下策略
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", // 这里的 Resource 就是生产环境中的角色 ARN "Resource": "arn:aws:iam::PRODUCTION-ACCOUNT-ID:role/UpdateApp" } } - 填写名称并创建策略


四、使用 IAM 用户登录 AWS 控制台并切换角色
全程通过身份账户的 IAM 用户进行操作。
- 使用
IAM 用户登录身份账户- 账户:身份账户的账户 ID
- 用户名:
IAM 用户用户名 - 密码:
IAM 用户密码
- 访问生产账户的角色的切换链接
- 确认账户和角色
- 填写显示名称
- 切换角色
- 角色切换成功后访问
S3存储桶确认权限生效 - 可以在右上角的角色历史记录中轻松切换其他角色


创建 AWS Organizations 和 SCP
一、最终目标

二、创建 AWS Organizations 并邀请其他 AWS 用户
全程通过组织的管理账户(主账户)进行操作。
- 进入
AWS Organizations控制台 - 创建组织
- 添加账户
- 选择邀请现有 AWS 账户
- 输入想要邀请的账户 ID
- 点击邀请
- 等待成员账户接受邀请



三、接受邀请并加入组织
全程通过组织的成员账户进行操作。
- 进入
AWS Organizations控制台 - 查看邀请并接受
- 确认 SCP 策略被附加到该账户(S3 操作拒绝)


四、为 IAM 用户添加策略
全程通过组织的管理账户(主账户)进行操作。
- 进入
AWS Organizations控制台 - 选择策略
- 选择服务控制策略并启用
- 默认的策略 FullAWSAccess 附加到每个根、OU 和用户并允许所有服务的所有操作
- 创建策略
- 输入策略名称
- 编辑策略
- 添加操作 - 选择
S3的所有操作 - 添加资源 - 选额
S3的所有资源
- 添加操作 - 选择
- 确认策略内容并创建
- 等待策略创建成功
- 切换到 AWS 账户
- 将策略附加到成员账户上
- 进入成员账户详情
- 选择策略选项卡
- 点击附加
- 选择刚刚创建的策略并附加
- 之后前往相应成员账户确认策略生效(S3 操作拒绝)






集中式日志架构 (Centralized Logging Architecture)
一、最终目标

二、在中央账户建立日志收集用的 S3 存储桶
- 进入
S3控制台 - 创建存储
CloudTrail日志的存储桶 - 配置存储桶策略
- 选择存储桶
- 编辑存储桶策略
- 添加策略
允许日志收集账户的
CloudTrail进行s3:GetBucketAcl和s3:PutObject操作。{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck20150319", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "s3:GetBucketAcl", // 修改为对应存储桶的 ARN "Resource": "arn:aws:s3:::iloveawscn-central-config" }, { "Sid": "AWSCloudTrailWrite20150319", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "s3:PutObject", // 修改为对应存储桶的 ARN "Resource": "arn:aws:s3:::iloveawscn-central-config/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] } - 保存策略
- 创建存储
AWS Config日志的存储桶- 选择存储桶
- 编辑存储桶策略
- 添加策略
- 保存策略
- 日志收集账户配置完成后确认日志收集状态

三、在日志收集账户将日志转发到存储桶
- 打开
CloudTrail控制台 - 创建跟踪 (Trail)
- 输入跟踪名称
- 存储位置选择现有的
S3存储桶 - 输入中央账户的
S3存储桶的名称 - 创建跟踪
- 打开
AWS Config控制台 - 选择设置
- 编辑设置
- 选择从另一个账户选择存储桶
- 输入中央账户的
S3存储桶的名称 - 保存设置

