在使用AWS多账户的场景,为每个AWS账户中创建一个相同的IAM用户显然不是一个明智的选择,所以当某些要访问多个AWS账户的角色(例如审计人员)创建跨账户IAM角色是个比较好的权限分配方式。示意图如下:

      AWS创建跨账户IAM角色演示_权限


  下面是操作和验证步骤:


一、在身份管理账户创建IAM用户


1、身份管理账户创建IAM用户 S3admin

 AWS创建跨账户IAM角色演示_权限_02

1.2、不给S3admin IAM用户分配任何权限

 AWS创建跨账户IAM角色演示_权限_03

 AWS创建跨账户IAM角色演示_跨账户_04

 AWS创建跨账户IAM角色演示_跨账户_05


二、在生产账户中创建角色


2.1、在生产账户中创建一个角色


 AWS创建跨账户IAM角色演示_角色_06


2.2、选择身份管理账户ID作为此角色受信任的实体

 AWS创建跨账户IAM角色演示_AWS_07


2.3、分配给此角色 AmazonS3FullAcess 权限


 AWS创建跨账户IAM角色演示_权限_08


2.4、完成角色———S3fullaccess创建


 AWS创建跨账户IAM角色演示_AWS_09


2.5、查看s3fullaccess 角色的信任关系为身份管理账户

 AWS创建跨账户IAM角色演示_AWS_10


2.6、“显示策略文档” 从中可以看出目前的策略内容:

          所有身份账户(9700)的用户都被允许承担生产账户(4221)的这个角色。


 AWS创建跨账户IAM角色演示_AWS_11


2.7、记录下此角色的ARN 和角色切换链接,用于后面的配置和演示

      AWS创建跨账户IAM角色演示_角色_12


三、为身份管理账户中的IAM用户:s3admin 分配生产账户中创建的角色:S3fullaccess


3.1、找到之前创建的S3admin用户

 AWS创建跨账户IAM角色演示_IAM_13


3.2、“添加权限”——“添加内联策略”

 AWS创建跨账户IAM角色演示_AWS_14


3.3、编辑如下策略内容 注意“Resource” 对应的ARN(标黄部分)是 生产账户中创建的角色的ARN

 AWS创建跨账户IAM角色演示_权限_15

 AWS创建跨账户IAM角色演示_AWS_16


3.4、创建策略完成


 AWS创建跨账户IAM角色演示_AWS_17


四、功能验证

4.1、用前面创建的 IAM用户 S3admin 登陆身份管理账户

 AWS创建跨账户IAM角色演示_跨账户_18

4.2、在S3admin 登陆成功的浏览器中粘贴在2.7步中记录的URL,点击“切换角色”


 AWS创建跨账户IAM角色演示_AWS_19

4.3、以此角色访问生产账户EC2报错


 AWS创建跨账户IAM角色演示_IAM_20


4.4、以此角色访问生产账户S3成功 (符合预期设计 )


 AWS创建跨账户IAM角色演示_权限_21


4.5、从此控制台可直接一键退回至身份管理账户。


 AWS创建跨账户IAM角色演示_角色_22


4.6、退回至身份管理账户后,没有S3权限(没有授予此用户在身份管理账户的任何权限、符合预期设计)

 AWS创建跨账户IAM角色演示_跨账户_23


End.