Amazon ECR Docker Credential Helper es un asistente de credenciales para el demonio Docker que facilita el uso de Amazon Elastic Container Registry.
Requisitos previos
Instalación
Amazon Linux 2023 (AL2023)
Amazon Linux 2 (AL2)
sistema operativo mac
Debian Buster (y versiones futuras)
Ubuntu 19.04 Disco Dingo y más reciente
Arco Linux
Linux alpino
ventanas
De la fuente
Configuración
Estibador
Credenciales de AWS
Asistente de credenciales de Docker de Amazon ECR
Uso
Solución de problemas
Divulgaciones de seguridad
Licencia
Debe tener al menos Docker 1.11 instalado en su sistema.
También debe tener credenciales de AWS disponibles. Consulte la sección de credenciales de AWS para obtener detalles sobre cómo utilizar diferentes credenciales de AWS.
Puede instalar Amazon ECR Credential Helper desde los repositorios de Amazon Linux 2023.
$ sudo dnf install -y amazon-ecr-credential-helper
Una vez que haya instalado el asistente de credenciales, consulte la sección Configuración para obtener instrucciones sobre cómo configurar Docker para que funcione con el asistente.
Puede instalar Amazon ECR Credential Helper desde la docker
o los extras ecs
.
$ sudo amazon-linux-extras habilitar ventana acoplable $ sudo yum instalar amazon-ecr-credential-helper
Una vez que haya instalado el asistente de credenciales, consulte la sección Configuración para obtener instrucciones sobre cómo configurar Docker para que funcione con el asistente.
Una fórmula Homebrew mantenida por la comunidad está disponible en el grifo principal.
$ brew instalar docker-credential-helper-ecr
En macOS, otro método de instalación mantenido por la comunidad es utilizar MacPorts.
$ sudo puerto instalar docker-credential-helper-ecr
Una vez que haya instalado el asistente de credenciales, consulte la sección Configuración para obtener instrucciones sobre cómo configurar Docker para que funcione con el asistente.
Puede instalar Amazon ECR Credential Helper desde los archivos de Debian Buster. Este paquete también se incluirá en futuras versiones de Debian.
$ sudo actualización apta $ sudo apto instalar amazon-ecr-credential-helper
Una vez que haya instalado el asistente de credenciales, consulte la sección Configuración para obtener instrucciones sobre cómo configurar Docker para que funcione con el asistente.
Puede instalar Amazon ECR Credential Helper desde los archivos Disco Dingo de Ubuntu 19.04 (y más recientes).
$ sudo actualización apta $ sudo apto instalar amazon-ecr-credential-helper
Una vez que haya instalado el asistente de credenciales, consulte la sección Configuración para obtener instrucciones sobre cómo configurar Docker para que funcione con el asistente.
Un paquete mantenido por la comunidad está disponible en el repositorio de usuarios de Arch.
$ git clon https://aur.archlinux.org/amazon-ecr-credential-helper.git $ cd amazon-ecr-credencial-ayudante $ makepkg-si
Una vez que haya instalado el asistente de credenciales, consulte la sección Configuración para obtener instrucciones sobre cómo configurar Docker para que funcione con el asistente.
Un paquete mantenido por la comunidad está disponible en el repositorio de aports de Alpine Linux.
$ apk agregar docker-credential-ecr-login
Nota
La insignia solo muestra el borde, verifique el repositorio para ver si hay versiones estables o agregue --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community
Una vez que haya instalado el asistente de credenciales, consulte la sección Configuración para obtener instrucciones sobre cómo configurar Docker para que funcione con el asistente.
Los ejecutables de Windows están disponibles a través de las versiones de GitHub.
Nota
La compatibilidad con Windows ARM se considera experimental.
Ver #795
Para compilar e instalar Amazon ECR Docker Credential Helper, le sugerimos Go 1.19 o posterior, git
y make
instalado en su sistema.
Si acaba de instalar Go, asegúrese de haberlo agregado también a su PATH o Environment Vars (Windows). Por ejemplo:
$ export GOPATH=$HOME/go $ export PATH=$PATH:$GOPATH/bin
O en Windows:
setx GOPATH %USERPROFILE%go <your existing PATH definitions>;%USERPROFILE%gobin
Si no ha definido la RUTA, el siguiente comando fallará silenciosamente y al ejecutar docker-credential-ecr-login
se obtendrá el siguiente resultado: command not found
Puede instalar esto a través de la herramienta de línea de comando go
.
Para instalar ejecute:
go install github.com/awslabs/amazon-ecr-credential-helper/ecr-login/cli/docker-credential-ecr-login@latest
Advertencia
Descargo de responsabilidad: el Dockerfile de este repositorio se utiliza para probar la compilación cruzada de los archivos binarios auxiliares de credenciales de Amazon ECR en GitHub Actions CI y como una utilidad de desarrollador para compilar localmente desde el código fuente. Es una implementación de referencia y no una seguridad reforzada para construir y ejecutar contenedores de producción.
Si ya tiene el entorno Docker, simplemente clone este repositorio en cualquier lugar y ejecute make build-in-docker
. Este comando construye el binario con Go dentro del contenedor Docker y lo envía al directorio local.
Con la variable de entorno TARGET_GOOS
, también puede realizar una compilación cruzada del binario.
Una vez que haya instalado el asistente de credenciales, consulte la sección Configuración para obtener instrucciones sobre cómo configurar Docker para que funcione con el asistente.
No es necesario utilizar docker login
o docker logout
.
Coloque el binario docker-credential-ecr-login
en su PATH
y configure el contenido de su archivo ~/.docker/config.json
para que sea:
{ "credsStore": "ecr-login"}
Esto configura el demonio Docker para utilizar el asistente de credenciales para todos los registros de Amazon ECR.
El asistente de credenciales de Docker de Amazon ECR se puede utilizar junto con sus tokens de autenticación de inicio de sesión de Docker existentes:
{ "credsStore": "ecr-login", "auths": { "https://index.docker.io/v1/": { "auth": [docker.io-auth-token] }, "registry.gitlab.com": { "auth": [gitlab-auth-token] }, } }
Con Docker 1.13.0 o superior, puede configurar Docker para usar diferentes asistentes de credenciales para diferentes registros ECR. Para utilizar este asistente de credenciales para un registro ECR específico, cree una sección credHelpers
con el URI de su registro ECR:
{ "credHelpers": { "public.ecr.aws": "ecr-login", "<aws_account_id>.dkr.ecr.<región>.amazonaws.com": "ecr-login" } }
Esto es útil si usa docker
para operar en registros que usan diferentes credenciales de autenticación.
Amazon ECR Docker Credential Helper le permite utilizar credenciales de AWS almacenadas en diferentes ubicaciones. Los estándar incluyen:
El archivo de credenciales compartido ( ~/.aws/credentials
)
Las variables de entorno AWS_ACCESS_KEY_ID
y AWS_SECRET_ACCESS_KEY
Un rol de IAM para una tarea de Amazon ECS
Un rol de IAM para Amazon EC2
Para utilizar credenciales asociadas con un perfil con nombre diferente en el archivo de credenciales compartido ( ~/.aws/credentials
), puede configurar la variable de entorno AWS_PROFILE
.
Amazon ECR Docker Credential Helper lee y admite algunas opciones de configuración especificadas en el archivo de configuración compartido de AWS ( ~/.aws/config
). Para deshabilitar estas opciones, debe configurar la variable de entorno AWS_SDK_LOAD_CONFIG
en false
. Las opciones admitidas incluyen:
Roles asumidos especificados con role_arn
y source_profile
Procesos de credenciales externos especificados con credential_process
Identidades web como roles de IAM para cuentas de servicio en Kubernetes ( Nota: los usuarios de Kubernetes que usan contenedores con un usuario no root pueden encontrar problemas de permisos descritos en este error y es posible que necesiten emplear una solución alternativa para ajustar el securityContext
de Kubernetes).
Amazon ECR Docker Credential Helper utiliza las mismas credenciales que la CLI de AWS y los SDK de AWS. Para obtener más información sobre la configuración de las credenciales de AWS, consulte Archivos de configuración y credenciales en la Guía del usuario de la interfaz de línea de comandos de AWS .
Las credenciales deben tener aplicada una política que permita el acceso a Amazon ECR.
Variable de entorno | Valor de muestra | Descripción |
---|---|---|
AWS_ECR_DISABLE_CACHE | verdadero | Deshabilita la caché de autenticación de archivos local si se establece en un valor que no esté vacío |
AWS_ECR_CACHE_DIR | ~/.ecr | Especifica la ubicación del directorio de caché de autenticación de archivos local. |
AWS_ECR_IGNORE_CREDS_STORAGE | verdadero | Ignore las llamadas para iniciar o cerrar sesión en Docker y finja que tuvieron éxito |
docker pull 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-repository:my-tag
docker push 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-repository:my-tag
docker pull public.ecr.aws/amazonlinux/amazonlinux:latest
Si ha configurado perfiles adicionales para usar con AWS CLI, puede usar esos perfiles especificando la variable de entorno AWS_PROFILE
al invocar docker
. Por ejemplo:
AWS_PROFILE=myprofile docker pull 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-repository:my-tag
No es necesario utilizar docker login
o docker logout
.
Si anteriormente se ha autenticado en un repositorio ECR utilizando el comando docker login
manualmente, es posible que Docker haya almacenado un token de autenticación que ya expiró. Docker seguirá intentando utilizar ese token de autenticación almacenado en caché en lugar de utilizar el asistente de credenciales. Debe eliminar explícitamente el token caducado previamente almacenado en caché mediante docker logout 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-repository
. Después de eso, Docker comenzará a utilizar el asistente de credenciales ECR para obtener credenciales nuevas y ya no necesitará utilizar docker login
o docker logout
.
Los registros de Amazon ECR Docker Credential Helper se almacenan en ~/.ecr/log
.
Para obtener más información sobre Amazon ECR, consulte la Guía del usuario de Amazon Elastic Container Registry.
Las funciones marcadas como experimentales se ponen opcionalmente a disposición de los usuarios para que las prueben y proporcionen comentarios.
Si prueba alguna función experimental, puede enviar comentarios a través del problema de seguimiento de la función con respecto a:
Tu experiencia con la función
Cuestiones o problemas
Mejoras sugeridas
Las características experimentales están incompletas en diseño e implementación. Es posible que se introduzcan cambios incompatibles con versiones anteriores en cualquier momento o que se elimine por completo el soporte. Por lo tanto, no se recomienda el uso de funciones experimentales en entornos de producción.
Si cree que ha encontrado un posible problema de seguridad, no lo publique en Problemas. En su lugar, siga las instrucciones aquí o envíe un correo electrónico a seguridad de AWS directamente.
Amazon ECR Docker Credential Helper tiene la licencia Apache 2.0.