通过 iam:pas-s-role 创建 iam 用户和 aws 机密
Posted
技术标签:
【中文标题】通过 iam:pas-s-role 创建 iam 用户和 aws 机密【英文标题】:creating iam user and aws secrets via iam:pas-s-role 【发布时间】:2020-10-05 16:24:23 【问题描述】:我有两个 iam 角色,
allacces-s-role(具有完整的 aws 帐户访问权限) limitedacces-s-role(仅对某些服务的访问权限非常有限)如何利用iam:pas-s-role
以便limitedacces-s-role
可以利用allacces-s-role
的权限来创建新资源(例如:新的iam 用户/ec2 实例)?
我加了
"Version": "2012-10-17",
"Statement": [
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": "*",
"Condition":
"StringEquals": "iam:PassedToService": "iam.amazonaws.com"
]
limitedacces-s-role
的政策,但当我尝试创建新用户时,它仍然显示
limitedacces-s-role
无权执行:iam:CreateUser on resource:arn:aws:iam::myaccnumber:user/new-user-m-trying-to-create
我也试过
"Version": "2012-10-17",
"Statement": [
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": "arn:aws:sts::acc_num:role/limitedacces-s-role",
"Condition":
"StringEquals": "iam:PassedToService": "iam.amazonaws.com"
]
这也给了我:
limitedacces-s-role 无权执行:iam:CreateUser on resource:arn:aws:iam::myaccnumber:user/new-user-m-trying-to-create
总之有没有办法让limitedacces-s-role
allacces-s-role
(可以做任何事情)
并且没有向limitedacces-s-role
授予“iam:CreateUser”权限。
感谢任何输入。 编辑:我想我对 IAM Pas-s-role 的作用有一个困惑的理解。看起来当您希望某些服务具有与指定角色相同的权限时使用 iam pas-s-role,而不是当您希望一个角色承担另一个角色的权限时使用。
【问题讨论】:
【参考方案1】:您想使用sts:AssumeRole
权限来完成您想要实现的目标。
工作流程如下:
资源 A 具有角色 A。角色 A 有权限sts:AssumeRole
允许它担任角色 B。
资源 A 执行 sts:AssumeRole
以承担角色 B。IAM 密钥、秘密密钥和会话 ID 返回。
资源使用 SDK/CLI 执行交互,具体指定返回的三个值。
总而言之,当您担任角色时,您使用返回的凭据充当角色。它不是自动的,您可以支持许多角色。
【讨论】:
感谢您的回答。我想澄清一下,现在只有角色 A(有限权利)和角色 B(完全权利)并且没有资源。管理员可以访问这两个角色。角色 B 可以对角色 A 进行策略更新,并希望合并/使用iam:PassRole
。这个想法是任何人在以角色 A 身份登录时都应该能够利用 RoleB 权限来创建新的资源 R(例如:iam 用户和机密)。即使在这种情况下,sts 承担角色是否也适用?为什么我们不能使用 iam pass 角色?
iam:PassRole
允许您明确地赋予服务使用角色的能力,但它不会赋予您的角色承担它的能力。为此,您需要使用 STS。以上是关于通过 iam:pas-s-role 创建 iam 用户和 aws 机密的主要内容,如果未能解决你的问题,请参考以下文章