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 ?

Date de la dernière mise à jour : 05/04/2022

Lorsque je tire une image Docker d'Amazon Elastic Container Registry (Amazon ECR) dans 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 politique Amazon S3 pour résoudre l'erreur.

Solution

1.    Ouvrez la console Amazon Virtual Private Cloud (Amazon 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 politique, 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?


Avez-vous besoin d'aide pour une question technique ou de facturation ?