update not found configurar cli aws amazon-web-services docker aws-cli macos-sierra

amazon-web-services - not - configure aws cli credentials



`El token de autorizaciĆ³n ha caducado ''emite AWS-CLI en MacOS Sierra (13)

En mi caso, el problema fue múltiples credenciales en ~ / .aws / credentails, así que usé --profile

aws ecr get-login --no-include-email --region us-east-2 --profile xxxx

Esto funcionó para mí.

Estoy tratando de enviar una imagen acoplable al repositorio de AWS ECR usando el aws-cli.

  • Acabo de ejecutar el comando get-login
  • Ejecutar la salida (que devuelve el login succeeded )
  • luego intento empujar una imagen de docker y luego recibo el mensaje:
    denied: Your Authorization Token has expired. Please run ''aws ecr get-login'' to fetch a new one.

No sé qué está mal, estoy presionando hacia el repositorio correcto, el tiempo en mi Mac es correcto. Esto funcionaba antes, pero desde que reinstalé mi mac y actualicé a macOS Sierra, ya no funciona, así que probablemente esté relacionado con eso.

Mi salida de aws --version :

aws-cli/1.11.34 Python/2.7.10 Darwin/16.3.0 botocore/1.4.91

La salida completa de los comandos que ejecuto:

$ aws ecr get-login --region eu-west-1 docker login -u AWS -p AQECAHh....b6Wk -e none https://1234567890.dkr.ecr.eu-west-1.amazonaws.com $ docker login -u AWS -p AQECAHh....b6Wk -e none https://1234567890.dkr.ecr.eu-west-1.amazonaws.com Flag --email has been deprecated, will be removed in 1.13. Login Succeeded $ docker push 1234567890.dkr.ecr.eu-west-1.amazonaws.com/service-web:latest The push refers to a repository [1234567890.dkr.ecr.eu-west-1.amazonaws.com/service-web] c1f87971dfa9: Preparing 2eb644aea3de: Preparing 9c8843ffe48e: Preparing 39bb58d049d4: Preparing f053bc969599: Preparing 7169084246b8: Waiting bb134a1936fd: Waiting 184e76848a1c: Waiting 75c8fcf65748: Waiting eb9b9ee1ea58: Waiting f4bf35723edd: Waiting ddffe1a64b3c: Waiting fd1a1154db16: Waiting b542e946067a: Waiting d49ed2a5e1ed: Waiting bb39b980367a: Waiting 25b8358d062f: Waiting 997eee521fc7: Waiting 50b5447183a8: Waiting 4339b5cb0e1d: Waiting 3dbd4a53b21b: Waiting 2bec16216500: Waiting b9fd8e264df6: Waiting b6ca02dfe5e6: Waiting denied: Your Authorization Token has expired. Please run ''aws ecr get-login'' to fetch a new one.


Es posible que solo esté ejecutando el comando y no pegando el comando que se hizo eco de ese comando nuevamente en el terminal. Fácil error de cometer. Una vez que corres:

aws ecr get-login --no-include-email --region us-east-1

Se imprimirá otro comando para ejecutar, necesitará copiar ese comando y ejecutarlo en su terminal para autenticarse completamente.

O un atajo genial es simplemente canalizar el comando echo''d nuevamente dentro de la cáscara con:
aws ecr get-login --no-include-email --region us-east-1 | sh


Estaba usando la versión estable de la ventana acoplable para Mac Version 1.12

Acabo de actualizar a la versión beta Version 1.13.0-rc4-beta34.1 (14853) y ahora todo funciona como estaba previsto.

Entonces, si hay personas con el mismo problema, asegúrese de usar la ventana acoplable para la versión 1.13 o superior de Mac. Si aún no se ha lanzado la versión 1.13, cambie a la versión beta.


Esto sucedió cuando intentaba empujar / extraer de un registro en otra cuenta de AWS. Necesitaba ejecutar get-login con la --registry-ids , pasando el ID del registro en el que quería iniciar sesión.


He tenido suerte usando eval. Por ejemplo,

$ aws ecr get-login --region us-east-1 --no-include-email --profile username_env

No funciono

$ eval $(aws ecr get-login --region us-east-1 --no-include-email --profile username_env)

Funcionó


Las últimas versiones de Docker utilizan una nueva función de almacenamiento de credenciales que tiene un error por el cual al docker login con una URL que especifica un protocolo, se producirán errores de caducidad del token. Este problema se solucionará en Docker 1.13.

Por el momento, la solución es ejecutar sus comandos de inicio de sesión sin especificar el protocolo.

Entonces, en el comando blob devuelto por aws ecr get-login :

docker login -u AWS -p AQECAHh....b6Wk -e none https://1234567890.dkr.ecr.eu-west-1.amazonaws.com

Debe ser reemplazado con esto:

docker login -u AWS -p AQECAHh....b6Wk -e none 1234567890.dkr.ecr.eu-west-1.amazonaws.com

La omisión de https:// debería hacer que la ventana acoplable funcione por el momento.


Necesita actualizar su token de autorización cada 12 horas, intente:

$(aws ecr get-login --no-include-email --region us-east-1) - cambia la región de acuerdo a su configuración


Ninguna de las soluciones anteriores funcionó para mi, pero encontré que cuando configuré la región en el comando de inicio de sesión de ECR funcionó.

aws ecr get-login --region us-west-2


Sé que la publicación está relacionada con MacOS Sierra, pero para aquellos que tienen el problema en Windows, realicé lo siguiente:

1) aws ecr get-login, este comando generará una cadena larga

docker login -u AWS -p eyJwYXlsb2FkIjoiUXBnQ2FTV1B6Q1JqZGlH ...... (Se omite toda la línea para una mejor comprensión) -e ninguno https://xxxxxxx.dkr.ecr.us-east-1.amazonaws.com .

2) Copie y pegue la línea anterior (tal vez -e ninguno no funcione, así que elimínela también) . La salida mostrará una advertencia seguida de un éxito: ¡ADVERTENCIA! El uso de --password a través de la CLI es inseguro. Use --password-stdin Inicio de sesión exitoso

Si necesita utilizar una forma segura, use --password-stdin

3) Ahora puede empujar de forma segura la imagen -docker push xxxxxxx.dkr.ecr.us-east-1.amazonaws.com/ecfs-test

0429f33dd264: Pushed 48accfb13167: Pushed f3bb6dd29c05: Pushed e58ae65fa4eb: Pushed 3c6037fae296: Pushed 3efd1f7c01f6: Pushed 73b4683e66e8: Pushed ee60293db08f: Pushed 9dc188d975fd: Pushed 58bcc73dcf40: Pushed latest: digest: sha256:4354d137733c98a1bc8609d2d2f8e97316373904e size: 2404

Quizás esta solución funcione también en Mac.


Solo tuve el mismo problema en Linux Mint 18.1 (Ubuntu 16.04) con AWS ECR y el último Docker 17.06.1-ce utilizado a través del último cliente Python Docker 2.5.1. El inicio de sesión funcionó, el empuje falló

La eliminación de ~/.docker/config.json ayudó. Sólo contenía, probablemente obsoleto, token de autorización.

No creo que tenga algo que ver con el sistema operativo subyacente. En mi caso funcionó anteriormente y el único cambio que puedo recordar fue la actualización del docker.io 1.12 de Ubuntu repo al docker-ce 17.06 Docker repo.


También recibí el mismo error, a continuación se muestra la solución que probé y está funcionando: 1. Ejecute el comando: aws ecr get-login --no-include-email --región ap-southeast-1 (cambie la región según tu repositorio) 2. obtendrás una salida como: docker login -u AWS -p xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx == https://youraccountid.dkr.ecr.ap-southeast-1.amazonaws.com

Elimine "https: //" y luego ejecute el comando como inicio de sesión de docker -u AWS -p xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx == youraccountid.dkr.ecr.ap-southeast-1.amazonaws.com

Y funcionará y podrás empujar la imagen.


También recibe el mensaje "Su token de autorización ha caducado" si tiene más de una credencial en ~ / .aws / credentials (ruta según su sistema operativo) y se olvida de agregar la marca --p.

Utilice este comando para obtener inicio de sesión:

aws ecr get-login --region eu-west-1 --p <yourprofilename>


Una advertencia: aws ecr get-login no parece conectarse a los servidores de AWS y parece funcionar incluso si tiene malas claves secretas / de acceso de AWS o incluso si olvidó ingresar sus claves secretas / de acceso de AWS como variables ambientales.

Aún así, felizmente le dará una contraseña larga sin proporcionar un error. El mensaje que recibe de AWS es un error de caducidad en lugar de una "autorización incorrecta" más correcta y útil.

Nota: Utilizando aws-cli versión 1.11.112.