Quando estraggo un'immagine Docker da Amazon Elastic Container Registry (Amazon ECR) in Amazon Elastic Container Service (Amazon ECS), ricevo il seguente errore: “error pulling image configuration: error parsing HTTP 403 response body”.
Breve descrizione
Amazon ECR utilizza Amazon Simple Storage Service (Amazon S3) per archiviare i livelli immagine. Quando i container scaricano immagini da Amazon ECR, devono accedere ad Amazon ECR per ottenere il manifesto dell'immagine. Dopo aver effettuato l'accesso ad Amazon ECR, il container accede ad Amazon S3 per scaricare i livelli dell'immagine.
Di seguito è riportato il nome della risorsa Amazon (ARN) del bucket Amazon S3 che contiene i livelli per ogni immagine Docker:
arn:aws:s3:::prod-region-starport-layer-bucket/*
Quando si utilizza un endpoint gateway S3 in una tabella di routing con una policy che limita l'accesso a starport-layer-bucket, si riceve il messaggio di errore:
"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>"
Per impostazione predefinita, quando si crea un endpoint gateway in Amazon S3 si ottiene l'accesso completo a tutte le risorse.
Se si dispone di una policy personalizzata che consente l'accesso a risorse specifiche, è necessario aggiungere l'ARN starport-layer-bucket alla policy di Amazon S3.
Risoluzione
Per risolvere questo errore, completa i seguenti passaggi:
- Apri la console Amazon Virtual Private Cloud (Amazon VPC).
- Nel menu di navigazione, seleziona Endpoint.
- Seleziona l'endpoint S3 dall'elenco.
- Seleziona la scheda Policy e quindi Modifica policy.
- Nella sezione Risorsa della policy, aggiungi il seguente ARN:
arn:aws:s3:::prod-region-starport-layer-bucket/*
Nota: l'ARN deve includere la tua regione AWS.
Esempio di policy:
{
"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/*"
]
}
]
}
Informazioni correlate
Crea l'endpoint gateway Amazon S3