我有两个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尝试创建
我也试过
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole",
"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-尝试创建
简而言之,有没有一种方法可以使limitedaccessrole
- 创建资源(新的iam用户+机密(,同时使用iam:Passrole和
- 现有的
allaccessrole
(可以做任何事情( - AND without give";iam:CreateUser";对CCD_ 8的许可
感谢您的意见
编辑:我想我对IAM Passrole的作用有一个困惑的理解。当您希望某个服务具有与指定角色相同的权限时,似乎要使用iam-passrole,但当您希望一个角色具有另一个角色的权限时则不使用。
您想要使用sts:AssumeRole
权限来实现您想要实现的目标。
其工作流程如下:
- 资源A具有角色A。角色A具有
sts:AssumeRole
权限,允许其承担角色B - 资源A执行
sts:AssumeRole
以承担角色B。返回IAM密钥、密钥和会话ID - Resource使用SDK/CLI执行交互,具体指定返回的三个值
总之,当您担任某个角色时,您将使用返回的凭据来充当该角色。这不是自动的,你可以支持很多角色。