Autenticación de registro privado en Amazon ECR - Amazon ECR

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

Puede usar los SDK AWS Management Console 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

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.

nota

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

Uso de un token de autorización

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 GetAuthorizationTokenAPI 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 en la Guía del usuario de 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
    • Get-ECR () LoginCommandAWS 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

Amazon ECR es compatible con la API HTTP de Docker Registry. No obstante, dado que Amazon ECR es un registro privado, debe proporcionar un token de autorización con cada solicitud HTTP. Puedes 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')
  2. 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.

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