Comment résoudre l'erreur « Erreur lors de l'extraction de la configuration de l'image : erreur d'analyse du corps de réponse HTTP 403 » dans Amazon ECS lors de l'extraction d'une image Docker depuis Amazon ECR ?

Dernière mise à jour : 30/10/2020

Lorsque je tire une image Docker d'Amazon Elastic Container Registry (Amazon ECR) dans Amazon Amazon Elastic Container Service (Amazon ECS), j'obtiens le message d'erreur suivant: « Erreur lors de l'extraction de la configuration de l'image: erreur lors de l'analyse du corps de la réponse HTTP 403. »

Brève description

Amazon ECR utilise Amazon Simple Storage Service (Amazon S3) pour stocker vos couches d'image. Lorsque vos conteneurs téléchargent des images depuis Amazon ECR, ils doivent accéder à Amazon ECR pour obtenir le manifeste d'image, puis à Amazon S3 pour télécharger les couches d'images. Voici le nom Amazon Resource Name (ARN) du compartiment Amazon S3 qui contient les couches pour chaque image Docker.

arn:aws:s3:::prod-region-starport-layer-bucket/*

Si vous utilisez un point de terminaison de passerelle S3 dans une table de routage avec une stratégie qui restreint l'accès à starport-layer-bucket, vous recevrez le message d'erreur suivant :

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>"

Par défaut, vous obtenez un accès complet à toutes les ressources lorsque vous créez un point de terminaison de passerelle dans Amazon S3.

Si vous disposez d'une stratégie personnalisée qui autorise l'accès à des ressources spécifiques, vous devez ajouter l'ARN starport-layer-bucket à votre stratégie Amazon S3 pour résoudre l'erreur. 

Résolution

1.    Ouvrez la console VPC.

2.    Dans le menu de navigation, choisissez Points de terminaison.

3.    Sélectionnez le point de terminaison S3 à partir de la liste.

4.    Choisissez l'onglet Stratégie puis choisissez Modifier la stratégie.

5.    Dans la section Ressource de la stratégie, ajoutez l'ARN suivant :

arn:aws:s3:::prod-region-starport-layer-bucket/*

Remarque : assurez-vous que l'ARN inclut votre région AWS.

Pour référence, considérez l'exemple de stratégie suivant :

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "Access-to-specific-buckets",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::prod-us-east-1-starport-layer-bucket/*"
            ]
        }
    ]
}

Cet article vous a-t-il été utile?


Besoin d'aide pour une question technique ou de facturation ?