

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é dans Amazon ECR
<a name="registry_auth"></a>

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. 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
<a name="registry-auth-credential-helper-reg"></a>

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](https://github.com/awslabs/amazon-ecr-credential-helper).

**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
<a name="registry-auth-token"></a>

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 [GetAuthorizationToken](https://docs.aws.amazon.com/AmazonECR/latest/APIReference/API_GetAuthorizationToken.html)API 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 get-login-password**
+ 

  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](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) dans le *Guide de l'utilisateur AWS Command Line Interface *.
  + [get-login-password](https://docs.aws.amazon.com/cli/latest/reference/ecr/get-login-password.html) (AWS CLI)

    ```
    aws ecr get-login-password --region {{region}} | docker login --username AWS --password-stdin {{{{aws_account_id}}}}.dkr.ecr.{{region}}.amazonaws.com
    ```
  + [ECRLoginCommande Get](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-ECRLoginCommand.html) (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
<a name="registry_auth_http"></a>

Amazon ECR prend en charge [l'API HTTP du registre Docker](https://docs.docker.com/registry/spec/api/). 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'`-H`option 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')
   ```

1. 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](https://docs.docker.com/registry/spec/api/).

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