Amazon ECS에서 "error pulling image configuration: error parsing HTTP 403 response body" 오류를 해결하려면 어떻게 해야 하나요?

2분 분량
0

Amazon Elastic Container Service(Amazon ECS)의 Amazon Elastic Container Registry(Amazon ECR)에서 Docker 이미지를 가져오면 "error pulling image configuration: error parsing HTTP 403 response body." 오류가 발생합니다.

간략한 설명

Amazon ECR은 Amazon Simple Storage Service(Amazon S3)를 사용하여 이미지 레이어를 저장합니다. 컨테이너가 Amazon ECR에서 이미지를 다운로드할 때 이미지 매니페스트를 가져오려면 Amazon ECR에 액세스해야 합니다. 컨테이너가 Amazon ECR에 액세스한 후, 컨테이너는 Amazon S3에 액세스하여 이미지 레이어를 다운로드합니다.

다음은 각 Docker 이미지의 레이어가가 포함된 Amazon S3 버킷의 Amazon Resource Name(ARN) 입니다.

arn:aws:s3:::prod-region-starport-layer-bucket/*

starport-layer-bucket에 대한 액세스를 제한하는 정책이 있는 라우팅 테이블에서 S3 게이트웨이 엔드포인트를 사용하는 경우 다음 오류 메시지가 표시됩니다.

"error pulling image configuration: error parsing HTTP 403 response body: invalid character '<' looking for beginning of value: "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>SAMPLE-REQUEST-ID</RequestId><HostId>SAMPLE-HOST-ID</HostId></Error>"

기본적으로 Amazon S3에 게이트웨이 엔드포인트를 생성하면 모든 리소스에 완전히 액세스할 수 있습니다.

특정 리소스에 대한 액세스를 허용하는 사용자 지정 정책이 있는 경우 Amazon S3 정책에 starport-layer-bucket ARN을 추가해야 합니다.

해결 방법

이 오류를 해결하려면 다음 단계를 따르세요:

  1. Amazon Virtual Private Cloud(Amazon VPC) 콘솔을 엽니다.
  2. 탐색 창에서 엔드포인트를 선택합니다.
  3. 목록에서 S3 엔드포인트를 선택합니다.
  4. 정책 탭을 선택한 다음 정책 편집을 선택합니다.
  5. 정책의 리소스 섹션에서 다음 ARN을 추가합니다.
    arn:aws:s3:::prod-region-starport-layer-bucket/*

참고: ARN에는 AWS 리전이 포함되어야 합니다.

정책 예시:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Access-to-specific-buckets",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::prod-us-east-1-starport-layer-bucket/*"
      ]
    }
  ]
}

관련 정보

Amazon S3 게이트웨이 엔드포인트 생성

AWS 공식
AWS 공식업데이트됨 6달 전