Quando eu extraio uma imagem do Docker do Amazon Elastic Container Registry (Amazon ECR) no Amazon Elastic Container Service (Amazon ECS), recebo o seguinte erro: “erro ao extrair a configuração da imagem: erro ao analisar o corpo de resposta HTTP 403”.
Breve descrição
O Amazon ECR usa o Amazon Simple Storage Service (Amazon S3) para armazenar suas camadas de imagem. Quando seus contêineres baixam imagens do Amazon ECR, eles devem acessar o Amazon ECR para obter o manifesto da imagem. Depois que o contêiner acessa o Amazon ECR, o contêiner acessa o Amazon S3 para baixar as camadas da imagem.
Este é o Nome do recurso da Amazon (ARN) do bucket do Amazon S3 que contém as camadas de cada imagem do Docker:
arn:aws:s3:::prod-region-starport-layer-bucket/*
Se você usar um endpoint do gateway do S3 em uma tabela de rotas com uma política que restringe o acesso a starport-layer-bucket, receberá a mensagem de erro:
"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>"
Por padrão, você tem acesso total a todos os recursos ao criar um endpoint de gateway no Amazon S3.
Se você tiver uma política personalizada que permita acesso a recursos específicos, adicione o ARN starport-layer-bucket a sua política do Amazon S3.
Resolução
Para resolver esse erro, conclua as seguintes etapas:
- Abra o console da Amazon Virtual Private Cloud (Amazon VPC).
- No menu de navegação, escolha Endpoints.
- Selecione o endpoint do S3 na lista.
- Escolha a guia Política e, em seguida, escolha Editar política.
- Na seção Recurso da política, adicione o seguinte ARN:
arn:aws:s3:::prod-region-starport-layer-bucket/*
Observação: o ARN deve incluir sua região da AWS.
Exemplo de política:
{
"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/*"
]
}
]
}
Informações relacionadas
Criar o endpoint do gateway do Amazon S3