Skip to content
Go back

AWS 实操 - 身份与联合身份验证(针对 SAP-C02 认证)

| 0 Views Edit page

AWS 身份与联合身份验证相关实际操作。


创建跨账户 IAM 角色访问(Creating Cross-Account IAM Roles)

一、最终目标

最终目标

二、在生产环境中创建 IAM 角色

全程通过生产环境账户进行操作。

  1. 进入 IAM 控制台
  2. 选择角色
  3. 创建角色
    1. 选择受信任的实体类型为其他 AWS 账户
    2. 输入身份账户的账户 ID
    3. ⭐ 给予这个角色 S3 存储桶的完全访问权限
    4. 填写角色名称并创建
  4. 角色创建成功后确认信息
    1. 角色 ARN
    2. ⭐ 用以切换角色的链接
    3. 信任关系(策略)

选择受信任的实体类型为其他 AWS 账户
输入身份账户的账户 ID
给予这个角色 S3 存储桶的完全访问权限
角色 ARN 和用以切换角色的链接
信任关系(策略)

三、在身份账户中创建 IAM 用户

全程通过身份账户进行操作。

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

添加内联策略
编辑策略

四、使用 IAM 用户登录 AWS 控制台并切换角色

全程通过身份账户的 IAM 用户进行操作。

  1. 使用 IAM 用户 登录身份账户
    • 账户:身份账户的账户 ID
    • 用户名:IAM 用户 用户名
    • 密码:IAM 用户 密码
  2. 访问生产账户的角色的切换链接
    1. 确认账户和角色
    2. 填写显示名称
    3. 切换角色
  3. 角色切换成功后访问 S3 存储桶确认权限生效
  4. 可以在右上角的角色历史记录中轻松切换其他角色

角色切换页面
角色历史记录


创建 AWS Organizations 和 SCP

一、最终目标

最终目标

二、创建 AWS Organizations 并邀请其他 AWS 用户

全程通过组织的管理账户(主账户)进行操作。

  1. 进入 AWS Organizations 控制台
  2. 创建组织
  3. 添加账户
    1. 选择邀请现有 AWS 账户
    2. 输入想要邀请的账户 ID
    3. 点击邀请
  4. 等待成员账户接受邀请

在 AWS Organizations 控制台创建组织
创建完成后的组织结构
邀请其他账户

三、接受邀请并加入组织

全程通过组织的成员账户进行操作。

  1. 进入 AWS Organizations 控制台
  2. 查看邀请并接受
  3. 确认 SCP 策略被附加到该账户(S3 操作拒绝)

查看邀请并接受
被附加相应 SCP 权限后丧失了对 S3 存储桶的操作权限

四、为 IAM 用户添加策略

全程通过组织的管理账户(主账户)进行操作。

  1. 进入 AWS Organizations 控制台
  2. 选择策略
  3. 选择服务控制策略并启用
  4. 默认的策略 FullAWSAccess 附加到每个根、OU 和用户并允许所有服务的所有操作
  5. 创建策略
    1. 输入策略名称
    2. 编辑策略
      1. 添加操作 - 选择 S3 的所有操作
      2. 添加资源 - 选额 S3 的所有资源
    3. 确认策略内容并创建
  6. 等待策略创建成功
  7. 切换到 AWS 账户
  8. 将策略附加到成员账户上
    1. 进入成员账户详情
    2. 选择策略选项卡
    3. 点击附加
    4. 选择刚刚创建的策略并附加
  9. 之后前往相应成员账户确认策略生效(S3 操作拒绝)

选择服务控制策略
启用服务控制策略
创建策略
编辑策略
成员账户详情中默认的策略
选择刚刚创建的策略并附加给成员用户


集中式日志架构 (Centralized Logging Architecture)

一、最终目标

最终目标

二、在中央账户建立日志收集用的 S3 存储桶

  1. 进入 S3 控制台
  2. 创建存储 CloudTrail 日志的存储桶
  3. 配置存储桶策略
    1. 选择存储桶
    2. 编辑存储桶策略
    3. 添加策略

      允许日志收集账户的 CloudTrail 进行 s3:GetBucketAcls3: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"
                      }
                  }
              }
          ]
      }
    4. 保存策略
  4. 创建存储 AWS Config 日志的存储桶
    1. 选择存储桶
    2. 编辑存储桶策略
    3. 添加策略
    4. 保存策略
  5. 日志收集账户配置完成后确认日志收集状态

用以确认的 CheckFile 文件生成成功

三、在日志收集账户将日志转发到存储桶

  1. 打开 CloudTrail 控制台
  2. 创建跟踪 (Trail)
    1. 输入跟踪名称
    2. 存储位置选择现有的 S3 存储桶
    3. 输入中央账户的 S3 存储桶的名称
    4. 创建跟踪
  3. 打开 AWS Config 控制台
  4. 选择设置
  5. 编辑设置
    1. 选择从另一个账户选择存储桶
    2. 输入中央账户的 S3 存储桶的名称
    3. 保存设置

CloudTrail - 创建跟踪并配置存储桶
AWS Config - 编辑设置配置存储桶


Edit page