AWS实战 - IAM角色的简单使用
介绍
简单来说,IAM
角色是一组权限的集合,IAM
用户或者AWS
服务可以临时性代入这个角色,获得角色所拥有的权限;AWS
官方定义如下:
IAM
角色类似于用户,因为它是一个AWS
实体,该实体具有确定其在AWS
中可执行和不可执行的操作的权限策略。但是,角色旨在让需要它的任何人代入,而不是唯一地与某个人员关联。此外,角色没有关联的标准长期凭证(密码或访问密钥)。相反,如果用户担任某个角色,则会动态创建临时安全凭证并为用户提供该凭证。
实战
在AWS实战 - 利用IAM对S3做访问控制中,我们的实战案例里有一个存储桶derek-public2
,除了Harp-Admin
,其余IAM
用户都只有只读权限,现在我们来建立一个拥有写入该存储桶权限的角色,以便在某些特殊情况下,普通IAM
用户可以临时代入这个角色来修改存储桶。
- 使用
Harp-Admin
登录IAM
控制台,点击角色,创建角色; - 在选择受信任实体的类型里,选择其他
AWS
账户,在账户ID
中输入本AWS
账号的ID
;
- 需要外部
ID
一般在授权其他AWS
账户代入此角色的时候使用,需要MFA
验证看情况选择;
- 点击下一步,到了权限策略页面,直接选择创建策略即可,权限策略如下,命名为
edit_public2
:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::derek-public2" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:GetObject", "s3:GetObjectAcl", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::derek-public2/*" ] } ] }
- 策略创建完成,回到创建角色页面,勾选
edit_public2
,需要注意的是,一个IAM
用户切换角色后,它只会拥有角色赋予的权限,不会拥有IAM
用户原先自带的权限,因此为了正常访问S3
,我们再勾选s3_common_policy
; - 下一步创建
tag
,再下一步,角色名称填写为Public2_Manager
,点击创建,角色创建完成; - 为了让账户下的普通
IAM
用户可以正常访问IAM
控制面板,我们直接给之前创建的s3_common_group
组添加一条AWS
托管策略IAMReadOnlyAccess
; - 为了给
IAM
用户赋予切换角色的权限,我们需要再创建一条策略,附加给s3_common_group
,策略json
如下:
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::712538533226:role/Public2_Manager" } }
- 使用
user1
登录,进入S3
,在derek-public2
中创建文件夹,提示失败; - 点击右上角用户处,点击切换角色,跳转到切换角色页面,账户文本框中输入账户
ID
,角色输入Public2_Manager
,然后点击切换角色;
- 此时在
derek-public2
存储桶下,已经可以正常建立文件夹了;
- 通过控制台的角色切换在一个小时后自动失效,需要重新切换,也可以手动退出角色;
- 也可以使用
cli
的方式切换角色,详见切换到IAM角色(AWS CLI);
相关推荐
byn 2020-11-19
Dancen 2020-10-20
guchengxinfen 2020-10-12
SirLZF 2020-10-10
evolone 2020-10-09
AWS爽 2020-09-21
wolfjin 2020-09-10
lilu 2020-09-08
frank0 2020-08-26
wl00 2020-08-26
QFYJTL 2020-08-23
JokerCch 2020-08-17
zwb 2020-08-14
bendan 2020-08-13
酌希 2020-08-04
快乐de馒头 2020-07-29
Dramer0 2020-07-09
黑夜流星 2020-06-28
swazerz 2020-06-22