gpt4 book ai didi

amazon-web-services - 来自跨账户 ECR 的 AWS Lambda : Lambda does not have permission to access the ECR image

转载 作者:行者123 更新时间:2023-12-05 02:31:45 30 4
gpt4 key购买 nike

我正在尝试根据另一个账户 A 的 ECR 镜像在账户 B 中创建 lambda 函数,但我遇到了Lambda 没有访问 ECR 镜像的权限错误。。 p>

我根据 this 创建了以下 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:*"
}
}
}
]
}

我正在使用 aws sso 承担的角色来执行 lambda 创建,我不知道这是否会产生影响。

账户 B 和 A 不在同一个 AWS 组织单位中。

我测试的东西:

  • 如果我从针对 lambda 服务的语句中删除条件,错误就会消失,但显然这不是永久的解决方案。
  • 在账户 B 中使用相同的 ECR 镜像运行 ECS 任务效果很好。
  • 我尝试遵循 SAM 教程 here我遇到了同样的问题。

我没有什么要检查的了,我真的很想避免复制帐户 B 中的 ECR 镜像。

您知道为什么示例政策似乎不起作用吗?

我如何缩小来自 lambda 服务的所有内容的策略?我计划使用 aws:PrincipalOrgPaths 来允许多个组织单位,但这似乎不适用于 lambda 委托(delegate)人。

最佳答案

我今天在这上面花了太多时间所以希望它能帮助其他人,但我最终能够使用以下存储库策略与整个组织共享图像...

{
"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"
}
}
}
]
}

我的 CrossOrgPermission 比这里的要宽泛一点,但我相信它应该仍能如图所示工作。

关于amazon-web-services - 来自跨账户 ECR 的 AWS Lambda : Lambda does not have permission to access the ECR image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71452872/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com