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
.dkr.ecr.aws_account_id
region
.amazonaws.com -
Get-ECR () LoginCommandAWS Tools for Windows PowerShell
(Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin
.dkr.ecr.aws_account_id
region
.amazonaws.com
-
Uso de la autenticación de la API HTTP
Amazon ECR es compatible con la API HTTP de Docker Registry-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
-
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')
-
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/listLa 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"]}