Quando eu extraio uma imagem do Docker do Amazon Elastic Container Registry (Amazon ECR) no Amazon Elastic Container Service (Amazon ECS), recebo a seguinte mensagem de 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 e, em seguida, o Amazon S3 baixa 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 seguinte 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ê obtém 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 para resolver o erro.
Resolução
1. Abra o console da Amazon Virtual Private Cloud (Amazon VPC).
2. No menu de navegação, escolha Endpoints.
3. Selecione o endpoint do S3 na lista.
4. Escolha a guia Política e, em seguida, escolha Editar política.
5. Na seção Recurso da política, adicione o seguinte ARN:
arn:aws:s3:::prod-region-starport-layer-bucket/*
Observação: Certifique-se de que o ARN inclua sua região da AWS.
Para referência, considere o seguinte 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