无法使用 iam:PassedToService for CodeBuild 传递角色

2024-06-22

我试图让用户执行codebuild:StartBuild,同时限制iam:PassRole仅将自定义 codebuild 角色传递给 CodeBuild 服务。

罐头政策从不限制iam:PassRole,甚至使用"Resource":"*",有效地允许将任何角色传递给任何服务。这让我觉得有点草率,但也许只是我。

以下政策是摘录——codebuild:StartBuild, codebuild:List*等都是允许的。

{   "Version": "2012-10-17",
    "Statement": [
        {   "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/my-codebuild-role",
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": "*"
                }
            }
        }
    ]
}

这项政策使得codebuild:StartBuild返回错误:

User: arn:aws:sts::123456789:assumed-role/MyDevRole/[email protected] /cdn-cgi/l/email-protection
  is not authorized to perform: iam:PassRole on resource:
    arn:aws:iam::123456789:role/my-codebuild-role

现在,删除Condition部分政策规定codebuild:StartBuild成功。

CloudTrail 日志状态完全相同,无论是在该特定事件中,还是在其之前或之后的事件中,都没有提供任何附加信息。

我也尝试过的变体Condition匹配,包括:指定codebuild.amazonaws.com作为服务;指定codebuild.eu-west-1.amazonaws.com作为服务;同上使用StringEquals;指定所有 AWS 主体的列表并使用ForAnyValue:StringLike.

这是没有意义的StringLike匹配于*失败,同时删除Condition完全使它起作用。

我究竟做错了什么? AWS 没有告诉我什么?或者,AWS 在这里做错了什么?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 iam:PassedToService for CodeBuild 传递角色 的相关文章

随机推荐