Authentification du registre privé sur Amazon ECR - 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 du registre privé sur Amazon ECR

Vous pouvez utiliser le AWS Management Console AWS CLI, le ou le AWS SDKs 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. Même si vous pouvez utiliser Amazon ECR API pour envoyer et extraire des images, il est plus probable que vous utilisiez le Docker CLI ou une bibliothèque Docker spécifique à une langue.

Le Docker CLI ne prend pas en charge les méthodes IAM d'authentification natives. Des mesures supplémentaires doivent être prises pour qu'Amazon ECR puisse authentifier et autoriser les requêtes Docker push et pull.

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

Utilisation de l'assistant ECR d'identification Amazon

Amazon ECR fournit un assistant d'identification Docker qui facilite le stockage et l'utilisation des informations d'identification Docker lors du transfert et de l'extraction d'images vers Amazon. ECR Pour les étapes d'installation et de configuration, consultez Amazon ECR Docker Credential Helper.

Note

L'assistant d'identification Amazon ECR Docker ne prend pas en charge l'authentification multifactorielle () pour le moment. MFA

Utiliser un jeton d'autorisation

L'étendue d'autorisation d'un jeton d'autorisation correspond à celle du IAM principal utilisé pour récupérer le jeton d'authentification. Un jeton d'authentification est utilisé pour accéder à tout ECR registre Amazon auquel votre IAM principal a accès et est valide pendant 12 heures. Pour obtenir un jeton d'autorisation, vous devez utiliser l'GetAuthorizationTokenAPIopération 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 auprès d'un registre ECR privé Amazon avec get-login
  • Pour authentifier Docker auprès d'un ECR registre Amazon avec get-login-password, exécutez la aws ecr get-login-password commande. Lorsque vous transmettez le jeton d'authentification à la docker login commande, utilisez la valeur AWS du nom d'utilisateur et spécifiez le ECR registre Amazon auprès URI duquel 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- ECRLoginCommand (AWS Tools for Windows PowerShell)

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

Utilisation de l'HTTPAPIauthentification

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

Pour vous authentifier auprès d'Amazon ECR HTTP API
  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 deAPI, passez la $TOKEN variable à l'-Hoption decurl. Par exemple, la commande suivante répertorie les balises d'image d'un ECR référentiel Amazon. Pour plus d'informations, consultez la documentation de HTTP API référence du Docker Registry.

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