Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 无法使用iam传递角色:已传递代码生成的服务_Amazon Web Services_Amazon Iam_Aws Codebuild - Fatal编程技术网

Amazon web services 无法使用iam传递角色:已传递代码生成的服务

Amazon web services 无法使用iam传递角色:已传递代码生成的服务,amazon-web-services,amazon-iam,aws-codebuild,Amazon Web Services,Amazon Iam,Aws Codebuild,我试图允许用户执行codebuild:StartBuild,同时限制iam:PassRole仅将自定义codebuild角色传递给codebuild服务 固定策略从不限制iam:PassRole,甚至使用“资源”:“*”,有效地允许将任何角色传递给任何服务。这让我觉得有点马虎,但也许只是我 下面的策略是一个摘录–codebuild:StartBuild,codebuild:List*等都是允许的 {“版本”:“2012-10-17”, “声明”:[ {“效果”:“允许”, “操作”:“iam:P

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

固定策略从不限制
iam:PassRole
,甚至使用
“资源”:“*”
,有效地允许将任何角色传递给任何服务。这让我觉得有点马虎,但也许只是我

下面的策略是一个摘录–
codebuild:StartBuild
codebuild:List*
等都是允许的

{“版本”:“2012-10-17”,
“声明”:[
{“效果”:“允许”,
“操作”:“iam:PassRole”,
“资源”:“arn:aws:iam::*:角色/我的代码构建角色”,
“条件”:{
“线状”:{
“iam:PassedToService”:“*
}
}
}
]
}
此策略使
codebuild:StartBuild
返回错误:

User: arn:aws:sts::123456789:assumed-role/MyDevRole/me@example.com
  is not authorized to perform: iam:PassRole on resource:
    arn:aws:iam::123456789:role/my-codebuild-role
现在,删除策略的
条件部分将使
codebuild:StartBuild
成功。

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

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

*
上的
StringLike
匹配失败是没有意义的,而删除
条件
可以使其工作


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

我遇到了同样的问题,但当我在AssumePolicyDocument中插入条件时。我和你一样测试了很多条件,但没有一个有效。所以StringEqualsIfExists有效。这让我认为codebuild.amazonaws.com不在请求中。codebuild+CodeCommit不支持
PassedToService
条件: