Шаблон My 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, репозиторий не существует или может потребоваться« вход в докер »». Для меня это не имеет смысла, поскольку изображения кажется доступным. Что-то еще не так в определении ресурса?
думаю https://stackoverflow.com/a/47465100 дает правильный ответ. MyServiceRole
нуждается в
Effect: Allow
Action:
- ecr:GetDownloadUrlForLayer
- ecr:BatchGetImage
- ecr:BatchCheckLayerAvailability
Resource: "*"
Раньше я разрешал эти действия только в моем собственном репозитории, что мешало мне получать образы AWS.
РЕДАКТИРОВАТЬ: Я обновился, поскольку я подтверждаю проблему и ее решение.