【发布时间】:2022-09-24 01:03:52
【问题描述】:
我试图让账户 A 中的 CodeBuild 将图像推送到账户 B 的 ECR,但我遇到了权限问题。
我在账户 B 中有以下政策:
{
\"Version\": \"2012-10-17\",
\"Statement\": [
{
\"Action\": [
\"ecr:*\"
],
\"Effect\": \"Allow\",
\"Resource\": \"*\"
}]}
账户 B 中的角色 ecrManager 附加了此类策略,并遵循信任关系:
{
\"Version\": \"2012-10-17\",
\"Statement\": [
{
\"Effect\": \"Allow\",
\"Principal\": {
\"AWS\": \"arn:aws:iam::accountA:root\"
},
\"Action\": \"sts:AssumeRole\",
\"Condition\": {}
}]}
然后,我在账户 A 中拥有 CodeBuild 使用的角色,具有以下策略:
{
\"Effect\": \"Allow\",
\"Action\": \"sts:AssumeRole\",
\"Resource\": \"arn:aws:iam::accountB:role/ecrManager\"
},
但是当我运行代码构建时,我在 CloudTrail 中收到以下错误:
\"errorMessage\": \"User: arn:aws:sts::accountA:assumed-role/CodeBuild-CodeBuildServiceRole-1RHFVAD5WW6J4/AWSCodeBuild-b7487523-7e3a-4219-bee7-08e6e40a3f21 is not authorized to perform: ecr:InitiateLayerUpload on resource: arn:aws:ecr:ca-central-1:accountB:repository/demo because no resource-based policy allows the ecr:InitiateLayerUpload action\"
我在这里做错了什么?
谢谢!
标签: amazon-web-services amazon-iam