Authentification de registre privé - Amazon ECR

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Authentification de registre privé

Vous pouvez utiliser le AWS Management Console AWS CLI, le ou les AWS SDK pour créer et gérer des référentiels privés. Vous pouvez également utiliser ces méthodes pour exécuter certaines actions sur les images, par exemple les répertorier sur une liste ou les supprimer. Ces clients utilisent des méthodes AWS d'authentification standard. Bien que vous puissiez utiliser l'API Amazon ECR pour transmettre et extraire des images, vous utiliserez probablement plus souvent la CLI Docker ou une bibliothèque Docker propre à un langage.

La CLI Docker ne prend pas en charge les méthodes d'authentification IAM natives. Des étapes supplémentaires sont nécessaires pour qu'Amazon ECR puisse authentifier et autoriser les demandes push et pull de Docker.

Vous trouverez dans les sections suivantes les méthodes d'authentification de registre détaillées.

Utilisation de l'assistant d'informations d'identification Amazon ECR

Amazon ECR propose un assistant d'informations d'identification Docker qui facilite le stockage et l'utilisation des informations d'identification Docker lors de la transmission ou l'extraction d'images vers Amazon ECR. Pour connaître les étapes d'installation et de configuration, consultez Assistant d'informations d'identification Amazon ECR Docker.

Note

L'assistant d'informations d'identification Amazon ECR Docker ne prend pas en charge l'authentification multi-facteur (MFA) actuellement.

Utiliser un jeton d'autorisation

L'étendue d'autorisation d'un jeton d'autorisation correspond à celle du principal IAM utilisé pour récupérer le jeton d'authentification. Un jeton d'authentification est utilisé pour accéder à tout registre Amazon ECR auquel votre principal IAM a accès. Il est valide pendant 12 heures. Pour obtenir un jeton d'autorisation, vous devez utiliser l'opération GetAuthorizationTokenAPI pour récupérer un jeton d'autorisation codé en base64 contenant le nom d'utilisateur AWS et un mot de passe codé. La AWS CLI get-login-password commande simplifie cela en récupérant et en décodant le jeton d'autorisation que vous pouvez ensuite rediriger vers une docker login commande d'authentification.

Pour authentifier Docker dans un registre privé Amazon ECR avec la CLI

Pour authentifier Docker auprès d'un registre Amazon ECR avec get-login-password, exécutez la commande. aws ecr get-login-password Lorsque vous passez le jeton d'authentification à la commande docker login, utilisez la valeur AWS pour le nom d'utilisateur et spécifiez l'URI de registre Amazon ECR auquel vous souhaitez vous authentifier. Si vous vous authentifiez sur plusieurs registres, vous devrez répéter la commande pour chacun d'eux.

Important

Si vous recevez une erreur, installez la dernière version de la CLI ou effectuez une mise à niveau vers cette version AWS CLI. Pour plus d'informations, consultez Installation d' AWS Command Line Interface dans le Guide de l'utilisateur AWS Command Line Interface .

  • get-login-password (AWS CLI)

    aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
  • Obtenez ECR (LoginCommand)AWS Tools for Windows PowerShell

    (Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com

Utiliser l'authentification API HTTP

Amazon ECR prend en charge l'API HTTP du registre Docker. Cependant, étant donné qu'Amazon ECR est un registre privé, vous devez fournir un jeton d'autorisation avec chaque demande HTTP. Vous pouvez ajouter un en-tête d'autorisation HTTP à l'aide de l'-Hoption for curl et transmettre le jeton d'autorisation fourni par la get-authorization-token AWS CLI commande.

S'authentifier auprès de l'API HTTP Amazon ECR
  1. Récupérez un jeton d'autorisation avec le AWS CLI et définissez-le sur une variable d'environnement.

    TOKEN=$(aws ecr get-authorization-token --output text --query 'authorizationData[].authorizationToken')
  2. Pour vous authentifier auprès de l'API, transmettez la variable $TOKEN à l'option -H de curl. Par exemple, la commande suivante répertorie les étiquettes d'image dans un référentiel Amazon ECR. Pour en savoir plus, consultez la documentation de la référence API HTTP du registre Docker.

    curl -i -H "Authorization: Basic $TOKEN" https://aws_account_id.dkr.ecr.region.amazonaws.com/v2/amazonlinux/tags/list

    La sortie est la suivante :

    HTTP/1.1 200 OK
    Content-Type: text/plain; charset=utf-8
    Date: Thu, 04 Jan 2018 16:06:59 GMT
    Docker-Distribution-Api-Version: registry/2.0
    Content-Length: 50
    Connection: keep-alive
    
    {"name":"amazonlinux","tags":["2017.09","latest"]}