

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Autenticación de registro privado en Amazon ECR
<a name="registry_auth"></a>

Puedes usar los SDK Consola de administración de AWS AWS CLI, los o los AWS SDK para crear y administrar repositorios privados. También puede utilizar estos métodos para realizar determinadas acciones con las imágenes, por ejemplo listarlas o eliminarlas. Estos clientes utilizan métodos de AWS autenticación estándar. Aunque es posible usar la API de Amazon ECR para insertar y extraer imágenes, es más probable que use la CLI de Docker o una biblioteca de Docker específica del lenguaje.

La CLI de Docker no admite métodos de autenticación de IAM nativos. Se deben tomar pasos adicionales para que Amazon ECR pueda autenticar y autorizar solicitudes de inserción y extracción de Docker.

Los métodos de autenticación del registro que se detallan en la sección siguiente están disponibles.

## Uso del ayudante de credenciales de Amazon ECR
<a name="registry-auth-credential-helper-reg"></a>

Amazon ECR proporciona un ayudante de credenciales de Docker que hace que sea más fácil almacenar y usar credenciales de Docker cuando se insertan y se extraen imágenes de Amazon ECR. Para obtener información sobre los pasos de instalación y configuración, consulte [Amazon ECR Docker Credential Helper](https://github.com/awslabs/amazon-ecr-credential-helper).

**nota**  
El asistente de credenciales de Amazon ECR Docker no admite la autenticación multifactor (MFA).

## Uso de un token de autorización
<a name="registry-auth-token"></a>

El ámbito de permiso de un token de autorización es igual que el de la entidad de seguridad de IAM que se utiliza para recuperar el token de autenticación. Se utiliza un token de autenticación para acceder a un registro de Amazon ECR al que la entidad de seguridad de IAM tiene acceso y que es válido durante 12 horas. Para obtener un token de autorización, debe usar la operación de [GetAuthorizationToken](https://docs.aws.amazon.com/AmazonECR/latest/APIReference/API_GetAuthorizationToken.html)API para recuperar un token de autorización codificado en base64 que contenga el nombre de usuario `AWS` y una contraseña codificada. El AWS CLI ` get-login-password` comando lo simplifica al recuperar y decodificar el token de autorización, que luego puedes canalizar a un comando para autenticarlo. **docker login**

**Autenticación de Docker en un registro privado de Amazon ECR con get-login**
+ 

  Para autenticar Docker en un registro de Amazon ECR con get-login-password, ejecute el comando **aws ecr get-login-password**. Al pasar el token de autenticación al comando **docker login**, utilice el valor `AWS` para el nombre de usuario y especifique el URI del registro de Amazon ECR en el que desea autenticarse. Si se autentica en varios registros, deberá repetir el comando con cada registro.
**importante**  
Si recibe un error, instale o actualice a la versión más reciente de la AWS CLI. Para obtener más información, consulte [Installing the AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) en la *Guía del usuario de 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
    ```
  + [Get-ECRLoginCommand](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
    ```

## Uso de la autenticación de la API HTTP
<a name="registry_auth_http"></a>

Amazon ECR es compatible con la [API HTTP de Docker Registry](https://docs.docker.com/registry/spec/api/). No obstante, dado que Amazon ECR es un registro privado, debe proporcionar un token de autorización con cada solicitud HTTP. Puede añadir un encabezado de autorización HTTP mediante la `-H` opción for **curl** y pasar el token de autorización proporcionado por el comando. **get-authorization-token** AWS CLI 

**Autenticación con la API HTTP de Amazon ECR**

1. Recupera un token de autorización con AWS CLI y configúralo en una variable de entorno.

   ```
   TOKEN=$(aws ecr get-authorization-token --output text --query 'authorizationData[].authorizationToken')
   ```

1. Para autenticar en la API, pase la variable `$TOKEN` a la opción ` -H` de **curl**. Por ejemplo, el siguiente comando muestra las etiquetas de imagen de un repositorio de Amazon ECR. Para obtener más información, consulte la documentación de referencia de la [API HTTP de Docker Registry](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 salida es la siguiente:

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