Amazon ECR から Docker イメージを取り出す際に、Amazon ECS の「error pulling image configuration: error parsing HTTP 403 response body」を解決する方法を教えてください。

所要時間1分
0

Amazon Elastic Container Service (Amazon ECS) の Amazon Elastic Container Registry (Amazon ECR) から Docker イメージを取り出すと、次のエラーメッセージが表示されます。「error pulling image configuration: error parsing HTTP 403 response body.」(イメージ設定を取り出す際のエラー: HTTP 403 レスポンス本文の解析エラー。)

簡単な説明

Amazon ECR は、Amazon Simple Storage Service (Amazon S3) を使用してイメージレイヤーを保存します。コンテナが Amazon ECR からイメージをダウンロードする場合、Amazon ECR にアクセスしてイメージマニフェストを取得し、次に Amazon S3 にアクセスしてイメージレイヤーをダウンロードする必要があります。以下は、各 Docker イメージのレイヤーを含む Amazon S3 バケットの Amazon リソースネーム (ARN) です。

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

ルートテーブルで S3 ゲートウェイエンドポイントを使用して、starport-layer-bucket へのアクセスを制限するポリシーを使用すると、次のエラーメッセージが表示されます。

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.    ナビゲーションメニューから [Endpoints] (エンドポイント) を選択します。

3.    リストから S3 エンドポイントを選択します。

4.    [Policy] (ポリシー) タブを選択し、[Edit policy] (ポリシーの編集) を選択します。

5.    ポリシーの [Resource] (リソース) セクションで、次の 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公式更新しました 2年前
コメントはありません

関連するコンテンツ