`Authorization Token has expired` issue AWS-CLI on MacOS Sierra
I’m trying to push a docker image to the AWS ECR repository using the aws-cli.
- I just run the
- execute the output (which returns
- then try to push a docker image then I get the
denied: Your Authorization Token has expired. Please run
'aws ecr get-login' to fetch a new one.
I don’t know whats going wrong, I’m pushing to the right repo, the time on my mac is correct.
This was working before, but since I reinstalled my mac and upgraded to macOS Sierra it’s not working anymore, so probably related to that.
aws --version output:
aws-cli/1.11.34 Python/2.7.10 Darwin/16.3.0 botocore/1.4.91
The complete output of the commands I run:
$ 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.
3 Solutions collect form web for “`Authorization Token has expired` issue AWS-CLI on MacOS Sierra”
Latest versions of Docker use a new credentials storage feature which has a bug where doing a
docker login with a URL that specifies a protocol will result in token expiration errors. This issue will be fixed in Docker 1.13.
For the time being, the workaround is to execute your login commands without specifying the protocol.
So in the command blob returned by
aws ecr get-login:
docker login -u AWS -p AQECAHh....b6Wk -e none https://1234567890.dkr.ecr.eu-west-1.amazonaws.com
Should be replaced with this:
docker login -u AWS -p AQECAHh....b6Wk -e none 1234567890.dkr.ecr.eu-west-1.amazonaws.com
https://should make docker work for the time being.
Neither of solutions above worked for my but I found that when I set region in ecr login command it worked.
aws ecr get-login --region us-west-2
I was using the stable version of docker for mac
I just upgraded to the beta version
Version 1.13.0-rc4-beta34.1 (14853)
and now it all works as intended.
So if there are people with the same issue, make sure you use docker for mac version 1.13 or higher, if 1.13 isn’t released yet, switch to the beta version.