Amazon ECS で表示される「error pulling image configuration: error parsing HTTP 403 response body」というエラーを解決するにはどうすればよいですか?

所要時間1分
0

Amazon Elastic Container Registry (Amazon ECR) から Amazon Elastic Container Service (Amazon ECS) に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 リソースネーム (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 endpoint] を選択します。
  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公式更新しました 9ヶ月前
コメントはありません