如何解决通过iam:passrole创建IAM用户和AWS机密
我有两个iam角色,
- allaccessrole(具有完整的aws帐户访问权限)
- 有限的访问权限(仅对某些服务具有非常有限的访问权限)
我如何利用iam:passrole
以便limitedaccessrole
可以利用allaccessrole
的权限来创建新资源(例如:新的iam用户/ ec2实例)?
我添加了
{
"Version": "2012-10-17","Statement": [
{
"Effect": "Allow","Action": "iam:PassRole","Resource": "*","Condition": {
"StringEquals": {"iam:PassedToService": "iam.amazonaws.com"}
}
}
]
}
遵守limitedaccessrole
的政策,但是当我尝试创建新用户时,它仍然显示
limitedaccessrole
无权执行:资源上的iam:CreateUser:arn:aws:iam :: myaccnumber:user / new-user-m-trying-to-create
我也尝试过
{
"Version": "2012-10-17","Resource": "arn:aws:sts::acc_num:role/limitedaccessrole","Condition": {
"StringEquals": {"iam:PassedToService": "iam.amazonaws.com"}
}
}
]
}
这也给我:
limitedaccessrole无权执行:资源上的iam:CreateUser:arn:aws:iam :: myaccnumber:user / new-user-m-trying-to-create
总之,有一种方法可以制作limitedaccessrole
- 在结合使用IAM:Passrole和 的同时创建资源(新的iam用户+机密)
- 现有的
allaccessrole
(可以执行所有操作) - 并且不向
limitedaccessrole
授予“ iam:CreateUser”权限。
感谢所有输入。
编辑:我想我对IAM Passrole的功能有一个困惑的理解。当您希望某些服务具有与指定角色相同的权限时,似乎要使用iam passrole,但是当您希望一个角色承担另一角色的权限时,则不使用。
解决方法
您想使用sts:AssumeRole
权限来完成您要实现的目标。
其工作流程如下:
- 资源A具有角色A。角色A具有权限
sts:AssumeRole
以允许其承担角色B。 - 资源A执行
sts:AssumeRole
以承担角色B。返回了IAM密钥,秘密密钥和会话ID。 - 资源使用SDK / CLI执行交互,并专门指定返回的三个值。
总而言之,当您担任角色时,将使用返回的凭据充当该角色。它不是自动的,您可以支持许多角色。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。