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 el AWS Management Console AWS CLI, el o el AWS SDKs 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 puedes usar Amazon ECR API para insertar y extraer imágenes, es más probable que utilices Docker CLI o una biblioteca de Docker específica para un idioma.

El Docker CLI no admite métodos de autenticación nativos. IAM Se deben tomar medidas adicionales para que Amazon ECR pueda autenticar y autorizar las solicitudes push y pull de Docker.

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

Uso del asistente de ECR credenciales de Amazon

Amazon ECR proporciona un asistente de credenciales de Docker que facilita el almacenamiento y el uso de las credenciales de Docker al enviar y extraer imágenes a Amazon. ECR Para ver 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 multifactorial () actualmente. MFA

Uso de un token de autorización

El alcance de los permisos de un token de autorización coincide con el del IAM principal utilizado para recuperar el token de autenticación. Se utiliza un token de autenticación para acceder a cualquier ECR registro de Amazon al que tenga acceso tu IAM director y es válido durante 12 horas. Para obtener un token de autorización, debes usar la GetAuthorizationTokenAPIoperación 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 se puede canalizar a un comando para autenticarlo. docker login

Para autenticar Docker en un registro ECR privado de Amazon con get-login
  • Para autenticar Docker en un ECR registro de Amazon con get-login-password, ejecuta el aws ecr get-login-password comando. Al pasar el token de autenticación al docker login comando, usa el valor del nombre AWS de usuario y especifica el ECR registro de Amazon en el URI que deseas autenticarte. 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
    • Obtenga- ECRLoginCommand ()AWS Tools for Windows PowerShell

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

Uso de HTTP API la autenticación

Amazon ECR es compatible con Docker Registry HTTP API. Sin embargo, dado que Amazon ECR es un registro privado, debes proporcionar un token de autorización con cada HTTP solicitud. Puedes añadir un encabezado de HTTP autorización mediante la -H opción for curl y pasar el token de autorización proporcionado por el get-authorization-token AWS CLI comando.

Para autenticarse con Amazon ECR HTTP API
  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 autenticarse enAPI, pase la $TOKEN variable a la -H opción decurl. Por ejemplo, el siguiente comando muestra las etiquetas de imagen de un ECR repositorio de Amazon. Para obtener más información, consulta la documentación de HTTP API referencia 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"]}