【비망록】 CodeBuild에서 `aws ecr get-login` 명령을 실행할 때 오류가 발생합니다.

3411 단어 CodeBuildAWS

문제점



CodeBuild에서 aws ecr get-login 명령을 실행할 때 오류가 발생함

빌드 결과





buildspec.yml (발췌)



buildspec.yml
version: 0.2

phases:
  pre_build:
    commands:
    - # 省略
    - $(aws ecr get-login --no-include-email --region ${AWS_DEFAULT_REGION})
    - # 省略

빌드 로그 (발췌)


[Container] 2018/08/23 06:59:56 Running command $(aws ecr get-login --no-include-email --region ${AWS_DEFAULT_REGION})

An error occurred (AccessDeniedException) when calling the GetAuthorizationToken operation: User: arn:aws:sts::xxx:assumed-role/code-build-xxx-xxx-build-service-role/AWSCodeBuild-xxx-xxx-xxx-xxx-xxx is not authorized to perform: ecr:GetAuthorizationToken on resource: *

[Container] 2018/08/23 06:59:57 Command did not exit successfully $(aws ecr get-login --no-include-email --region ${AWS_DEFAULT_REGION}) exit status 255
[Container] 2018/08/23 06:59:57 Phase complete: PRE_BUILD Success: false
[Container] 2018/08/23 06:59:57 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: $(aws ecr get-login --no-include-email --region ${AWS_DEFAULT_REGION}). Reason: exit status 255

원인



빌드를 실행하는 역할에 ECR 작업을 허용하는 정책이 연결되지 않음

해결 방법



빌드를 실행하는 역할에 ECR 작업을 허용하는 정책 연결

1. 빌드에서 사용하는 역할을 확인합니다.



CodeBuild의 브로젝트 상세에서 빌드에 이용하고 있는 롤명을 확인



2. IAM에서 역할에 정책 연결



IAM에서 역할에 AmazonEC2ContainerRegistryPowerUser(ECR 작업 허용) 정책을 연결합니다.



3. 빌드가 성공할 수 있는지 확인



좋은 웹페이지 즐겨찾기