通过 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

结合使用 IAM:Pas-s-role 和创建资源(新的 iam 用户 + 机密) 现有的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 机密的主要内容,如果未能解决你的问题,请参考以下文章

重命名 IAM 角色

通过 terraform 创建 IAM 用户并在 S3 存储桶中上传密钥和访问密钥

如何通过IAM打造零信任安全架构

如何通过IAM打造零信任安全架构

使用 CDK Deploy 需要哪些 IAM 权限?

IAM允许用户仅查看自己的实例