无法拉取 Python 2.7.12 的 AWS 映像

无法拉取 Python 2.7.12 的 AWS 映像

我的 CloudFormation 模板包含以下资源定义:

MyBuildResource:
  Type: AWS::CodeBuild::Project
  Properties:
    Name: !Sub ${AWS::StackName}-my-build-resource
    ServiceRole: !Ref MyServiceRole
    Artifacts:
      Type: CODEPIPELINE
    Source:
      Type: CODEPIPELINE
      BuildSpec: subtemplate.yaml
    Environment:
      ComputeType: BUILD_GENERAL1_SMALL
      Image: aws/codebuild/python:2.7.12
      Type: LINUX_CONTAINER
      EnvironmentVariables:
        - Name: FOO
          Value: 42

我收到错误消息“无法拉取客户的容器映像。错误代码:404,原因:拒绝对 aws/codebuild/python 进行拉取访问,存储库不存在或可能需要‘docker login’”。这对我来说毫无意义,因为图像似乎可用。资源定义中还有其他错误吗?

答案1

我认为https://stackoverflow.com/a/47465100提供正确答案。MyServiceRole需要

Effect: Allow
Action:
  - ecr:GetDownloadUrlForLayer
  - ecr:BatchGetImage
  - ecr:BatchCheckLayerAvailability
Resource: "*"

以前,我只允许在自己的存储库上执行这些操作,这会阻止我获取 AWS 映像。

编辑:我已确认问题及其解决方案并进行了更新。

相关内容