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

文 | 沉默恶魔(禁止转载,转载请先经过作者同意)
微信号:chenmoemo
关注公众号:AWS爱好者

【 Domain 1的组织复杂性设计(Design for Organizational Complexity)】——创建跨账户IAM角色访问

AWS解决方案架构师认证 Professional / AWS Certified Solutions Architect– Professional系列的课程的最终目的是帮助大家顺利通过新版考试。随着后续系列课程的持续深入,我们的目标是将所有新版考试涉及到的内容、考点逐步推出系列课程,帮助大家备考。此系列课程也同样适用于想了解和学习AWS的同学,请大家多多支持。

Hello大家好,欢迎回来,我们今天将从头开始配置AWS,实操演示创建跨账户IAM角色访问的内容。

我们上节课演示了zhangsan用户通过登陆身份账户,成功切换至生产环境账户下的CA-TEST角色,并拥有了生产环境账户下的S3存储桶的完全访问权限。我们今天将从头开始配置AWS,实现这部分内容。

上节课已经介绍了跨账户角色访问的配置步骤,我们在来复习一下。

  1. 首先,在身份账户(ID:256454142732)中创建一个IAM用户,我们取名为zhangsan。
  2. 然后,在生产环境账户(ID:458556760960)中创建一个跨账户角色:我们取名为CA-TEST,并为此角色分配在此账户下的S3存储桶的完全访问权限。
  3. 最后,在身份账户(ID:256454142732)中配置允许用户zhangsan 切换到 生产环境账户(ID:458556760960)的CA-TEST 角色。

我们准备了两个AWS账户,一个作为PPT中左边的身份账户,一个作为右边的生产账户。

为了避免实操的时候来回、注销登录账户,我们准备了两个浏览器,使用chrome登陆身份账户,使用safari登陆生产账户,分别登陆AWS管理控制台后,在控制台右上角支持-支持中心页面,分别可以查询两个账户的账户ID。身份账户的账户ID后四位是2732,生产账户的账户ID后四位是0960。

现在,chrome是身份账户,safari是生产账户。

1、创建zhangsan用户

我们现在进行第一步,在身份账户(ID:256454142732)中创建一个IAM用户,用户名为zhangsan。
进入到IAM,创建zhangsan用户

我们已经在身份账户中成功创建了IAM用户zhangsan

2、创建生产账户角色,并分配S3存储桶权限

然后,我们进行上面的第二步,在生产环境账户(ID:458556760960)中创建一个跨账户角色:我们取名为CA-TEST,并为此角色分配在此账户下的s3存储桶的完全访问权限。

同样,我们找到safari浏览器,在生产账户下创建角色CA-TEST。在IAM中点击创建角色后,出现创建角色的页面,注意我们需要创建的是允许身份账户中的用户zhangsan访问的角色,所有要选择受信任实体类型为其他AWS账户。

然后指定可以使用此角色的账户,输入zhangsan所在的身份账户的ACCOUNT ID,这块大家能理解吧?

我们回到chrome浏览器, 也就是身份账户,然后通过前面介绍的通过支持中心,获得身份账户的accoutid,填入创建角色页面的账户ID输入框

我们进行下一步,在权限策略页面,我们给与这个角色S3存储桶的完全访问权限。
然后在角色名称,我们将此角色命名为前面提到的CA-TEST。

OK,现在CA-TEST角色已经创建完成了。

我们点击我们刚才创建的CA-TEST角色,进入到角色摘要页面。我们要注意两个信息,一个是角色ARN,还有一个链接,这个链接就是身份账户中的zhangsan在切换此角色时需要访问的链接。

然后,有一个非常重要的部分,是信任关系选项卡,我们在信任关系选项卡通过编辑信任关系,你会看到策略文档的内容为principal元素指定了可担任该角色的对象,就是我们的zhangsan所在的身份账户的arn,尾数为2732的数字是我们的身份账户的账户id。
action为允许 sts AssumeRole,这整个策略文档的内容为所有身份账户的用户,都被允许担任生产环境的该角色。

3、配置zhangsan承担角色权限

好的,我们现在已经完成配置步骤的第二步,接下来我们进行最后一个配置步骤,
在身份账户(ID:256454142732)中配置允许用户zhangsan 承担 生产环境账户ID:458556760960)的CA-TEST 角色。

进入到身份账户的IAM,为zhangsan添加权限,直接选择添加内联策略,然后选贼JSON选项卡,我们已经准备了现成的模板,将模板的内容复制进去,这个模板的内容我们会付到课程后面,大家可以直接使用它。

跨账户IAM角色策略模板:

{
  “Version”: “2012-10-17”,
  “Statement”: {
    “Effect”: “Allow”,
    “Action”: “sts:AssumeRole”,
    “Resource”: “arn:aws:iam::PRODUCTION-ACCOUNT-ID:role/UpdateApp”
  }
}

复制策略模板后,需要修改resource为生产账户的ca-test的角色arn。整体策略的内容是允许用户承担生产账户的这个角色。

我们继续下一步,将策略名称命名为CA-TEST。

好的,目前我们就完成了所有的配置。接下来我们测试下。

4、实操演示

首先,我们使用IAM用户zhangshan登陆身份账户(ID:256454142732)。账户填写身份账户的账户ID,用户名为zhangsan,填写对应zhangsan的密码。

成功登陆后进入AWS管理控制台,控制台右上角可以看到我们目前登录的用户是zhangsan

ok,我们继续,我们使用zhangsan登陆了身份账户(ID:256454142732),然后下一步需要在AWS管理控制台上将其切换为AWS生产环境账户(ID:458556760960)的角色CA-TEST。

我们在生产账户的CA-TEST角色摘要中找到切换链接
https://signin.aws.amazon.com/switchrole?roleName=CA-TEST&account=458556760960
复制到身份账户的浏览器中,接下来进入到切换角色页面,其中账户为生产环境账户ID,角色为我们在生产环境账户中已经建立的CA-TEST角色。在显示名称输入框我们输入生产账户,这样标示会看着比较清楚,然后点击切换角色。

点击切换角色后实际发生的是身份账户(ID:256454142732)的zhangsan用户,已经登录到了生产环境账户(ID:458556760960),且已经切换成为我们在生产环境账户中创建的角色CA-TEST。管理控制台右上角的图标可以看到这已经是登陆到生产环境账户了

我们测试下访问下S3存储桶,没有问题。

目前用户zhangsan用户已经可以通过登陆身份账户(Identity Account),然后通过跨AWS账户角色访问的方式,拥有生产环境账户中的S3存储桶资源的完全访问权限了。

在AWS管理控制台点击生产环境—返回zhangsan,将会从生产环境账户的角色返回到身份账户的zhangsan环境。

zhangsan如需再次访问生产账户的S3存储桶,只需要在控制台右上角的角色历史记录中,再次选择生产账户即可直接切换至生成账户角色,非常方便

以上,就是我们实操的内容。

以上就是我们今天的课程内容, 我们用了两个AWS账户实操配置并演示了在不同的账户间实现跨账户角色访问,这在企业有多个AWS的场景下,它提供了用户,权限的集中化管理和控制,并当有访问其他账户资源需求时,通过跨账户角色访问的方式,避免了来回切换账户带来的繁琐的操作。

希望此系列教程能为您通过 AWS解决方案架构师认证 Professional 认证考试带来帮助,如您有任何疑问,请联系我们:

可以通过扫码加入【AWS爱好者】微信公众号,查看原创的AWS知识点相关文章
加入【AWS爱好者】微信群,和其他同学一起备考,以及探讨交流AWS相关知识
加入【AWS知识星球】持续学习。
我们今天的视频课程就到这里,感谢大家的观看,我们下一课程再见。

0 responses on "03-创建跨账户IAM角色访问(Creating Cross-Account IAM Roles)"

Leave a Message

error: Content is protected !!