使用 AWS re:Post 即表示您同意 AWS re:Post 使用條款

如何解決 Amazon ECS 中的「提取映像檔組態時發生錯誤:解析 HTTP 403 回應內文時發生錯誤」錯誤?

1 分的閱讀內容
0

當我從 Amazon Elastic Container Service (Amazon ECS) 中的 Amazon Elastic Container Registry (Amazon ECR) 中提取 Docker 映像檔時,出現以下錯誤:「提取映像檔組態時發生錯誤:解析 HTTP 403 回應內文時時發生錯誤。」

簡短說明

Amazon ECR 使用 Amazon Simple Storage Service (Amazon S3) 來存放您的映像層。當您的容器從 Amazon ECR 下載映像時,必須存取 Amazon ECR 才能取得映像資訊清單。容器存取 Amazon ECR 後,容器會存取 Amazon S3 以下載映像層。

以下是 Amazon S3 儲存貯體的 Amazon Resource Name (ARN),該儲存貯體包含每個 Docker 映像檔所屬各層:

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 中建立閘道端點時,您可以完整存取所有資源。

如果您有允許存取特定資源的自訂政策,則必須將 starport-layer-bucket ARN 新增至 Amazon S3 政策。

解決方法

若要解決此錯誤,請完成下列步驟:

  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 官方已更新 7 個月前