AWS – IAM Assume Role (为已有的IAM User添加跨AWS账号访问S3)

只能IAM User使用Assume Role跨AWS账号访问资源, Root account是无法做到的。

参考视频:https://www.youtube.com/watch?v=20tr9gUY4i0

实战案例:需要允许账号A当中的IAM User 访问账号B的S3

【步骤1】需要在账号B,也就是允许开发权限的账号当中创建Assume Role

  1. 选择AWS Account 和选择This account

2. 添加AmazonS3FullAccess的权限,然后next到底,和输入Role的名字就创建成功了

【步骤2】在账号A创建policy,这个policy是绑定到账号B创建好的Assume Role

  1. 在账号A 创建新的Policy

2. 点击Json按钮和粘贴以下的Json Policy,以下的Policy 需要替换成你在账号B所创建好的Assume Role ARN ,接着next到底,输入policy名就创建完成了。

JSON
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::77788999:role/yourRoleName"
        }
    ]
}
JSON

【步骤3】在账号A吧创建好的Policy绑定到指定的IAM User当中(当然你也能绑定到User Group也可以)

  1. 选择你想要添加policy的IAM User, 然后点击Add Permission 按钮

2. 在Add Permission页面当中,点击Attach policies directly,然后选择你刚刚在账号A所创建好的policy,接着点击next到底就创建完成了

【步骤4】测试账号A的IAM User 是否能够访问账号B的S3 Bucket

  1. 登入了账号A的IAM User,然后在menu bar当中点击switch role

2. 跟着下图的步骤操作,Account ID 的获取方式就是在menu获取的

3. 转换role了之后去到S3就能访问到账号B的Bucket了

Loading

Facebook评论