Comment résoudre l'erreur « error pulling image configuration: error parsing HTTP 403 response body » dans Amazon ECS ?

Lecture de 2 minute(s)
0

Lorsque j'extrais une image Docker depuis Amazon Elastic Container Registry (Amazon ECR) dans Amazon Elastic Container Service (Amazon ECS), le message d'erreur suivant s'affiche : « error pulling image configuration: error parsing HTTP 403 response body ».

Brève description

Amazon ECR utilise Amazon Simple Storage Service (Amazon S3) pour stocker vos couches d'images. Lorsque vos conteneurs téléchargent des images depuis Amazon ECR, ils doivent accéder à Amazon ECR pour obtenir le manifeste de l'image. Une fois que le conteneur a accédé à Amazon ECR, il accède ensuite à Amazon S3 pour télécharger les couches d'images.

Voici le nom de ressource Amazon Resource Name (ARN) du compartiment Amazon S3 qui contient les couches de 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 politique qui restreint l'accès à starport-layer-bucket, le message d'erreur suivant s'affiche :

"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 disposez d'un accès complet à toutes les ressources lorsque vous créez un point de terminaison de passerelle dans Amazon S3.

Si vous avez une politique personnalisée qui autorise l'accès à des ressources spécifiques, vous devez ajouter l’ARN starport-layer-bucketà votre politique Amazon S3.

Résolution

Pour corriger cette erreur, procédez de la manière suivante :

  1. Ouvrez la console Amazon Virtual Private Cloud (Amazon VPC).
  2. Dans le volet de navigation, choisissez Points de terminaison.
  3. Sélectionnez le point de terminaison S3 dans la liste.
  4. Cliquez sur l'onglet Stratégie, puis sélectionnez Modifier la politique.
  5. Dans la section Ressource de la politique, ajoutez l'ARN suivant :
    arn:aws:s3:::prod-region-starport-layer-bucket/*

Remarque : L'ARN doit inclure votre région AWS.

Exemple de politique :

{
  "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/*"
      ]
    }
  ]
}

Informations connexes

Créer le point de terminaison de la passerelle Amazon S3

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 9 mois