Gui*_*meK 5 amazon-web-services aws-lambda amazon-ecr
我试图从另一个帐户 A 的 ECR 图像在帐户 B 中创建 lambda 函数,但遇到 Lambda无权访问 ECR 图像错误。
我创建了以下ECR 策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CrossAccountPermission",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::BBBBBBBBBBBB:root"
},
"Action": [
"ecr:BatchGetImage",
"ecr:GetDownloadUrlForLayer"
]
},
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": [
"ecr:BatchGetImage",
"ecr:GetDownloadUrlForLayer"
],
"Condition": {
"StringLike": {
"aws:sourceArn:": "arn:aws:lambda:eu-west-1:BBBBBBBBBBBB:function:*"
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
我正在使用 aws sso 承担的角色来执行 lambda 创建,我不知道这是否会产生影响。
账户 B 和 A 不在同一 AWS 组织单位中。
我测试过的东西:
我没有什么要检查的了,我真的很想避免复制帐户 B 中的 ECR 映像。
您知道为什么示例策略似乎不起作用吗?
我如何才能缩小来自 lambda 服务的所有内容的策略范围?我原本计划用于aws:PrincipalOrgPaths允许多个组织单位,但这似乎不适用于 lambda 主体。
我今天在这方面花了太多时间,所以希望它对其他人有帮助,但我终于能够使用以下存储库策略与整个组织共享图像......
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CrossOrgPermission",
"Effect": "Allow",
"Principal": "*",
"Action": [
"ecr:BatchGetImage",
"ecr:GetDownloadUrlForLayer"
],
"Condition": {
"StringLike": {
"aws:PrincipalOrgID": "x-xxxxxxxxx"
}
}
},
{
"Sid": "LambdaECRImageCrossOrgRetrievalPolicy",
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": [
"ecr:BatchGetImage",
"ecr:GetDownloadUrlForLayer"
],
"Condition": {
"StringLike": {
"aws:ResourceOrgID": "x-xxxxxxxxx"
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
我的 CrossOrgPermission 比此处的更广泛,但我相信它仍然应该如图所示工作。
| 归档时间: |
|
| 查看次数: |
4135 次 |
| 最近记录: |