8

给出以下命令时出现以下错误。

aws ecr get-login --region eu-central-1

错误

An error occurred (AccessDeniedException) when calling the GetAuthorizationToken operation: User: arn:aws:iam::314xxxx91079:user/git is not authorized to perform: ecr:GetAuthorizationToken on resource: *

我的管理员已授予我访问此“GetAuthorizationToken”资源的权限。

我认为问题很可能是 'arn:aws:iam::314xxxx91079:user/git' 用户被用于此命令。当我登录到 aws 控制台时,我看到我的用户名 (IAM) 如下。

amit@iproxxx.com

如何使“获取登录”以使用此用户名而不是用户/git。我对 aws cli 很陌生,这个命令恰好是构建步骤之一。

4

4 回答 4

24

对于较新的版本,只需使用

aws ecr get-login-password \
        --region us-east-1 | docker login \
        --username AWS \
        --password-stdin <account-id>.dkr.ecr.us-east-1.amazonaws.com
于 2020-03-04T13:08:09.083 回答
7

AWS cli 命令看起来不错,输出应该类似于下面

Sample output: 

docker login -u AWS -p password https://aws_account_id.dkr.ecr.eu-central-1.amazonaws.com

请检查您是否正确设置了 cli 使用的 AWS 凭证。

如果没有完成,请尝试以下配置凭据

aws configure

AWS Access Key ID [None]: Access Key
AWS Secret Access Key [None]: Secret Key
Default region name [None]: eu-central-1
Default output format [None]: json

注意:这应该是您的默认配置文件,否则为 ecr get-login 命令传递配置文件名称

aws ecr get-login --region eu-central-1 --profile <profile name>

希望这可以帮助 !!!

于 2019-01-17T11:09:07.807 回答
5

使用较新版本的 AWS CLI,我们可以请求 ECR docker loginget-login-password的密码并将密码通过管道传输到 Docker login,例如:

aws ecr get-login-password \
    --region us-east-1 \
| docker login \
    --username AWS \
    --password-stdin 123456789101.dkr.ecr.us-east-1.amazonaws.com

文档:https ://awscli.amazonaws.com/v2/documentation/api/latest/reference/ecr/get-login-password.html

使用 CLI V2,以下语法将引发错误:

$(aws ecr get-login --no-include-email --region us-east-1)
 aws ecr get-login --no-include-email --region us-east-1
 usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
 To see help text, you can run:
 aws help
 aws <command> help
 aws <command> <subcommand> help
 aws: error: argument operation: Invalid choice, valid choices are:
于 2021-02-26T10:01:23.123 回答
0

请在下面找到将本地 docker 镜像推送到 AWS ECR 的步骤,我们可以成功登录:

  1. C:>aws ecr get-login-password --no-verify 我们将获取密码。请在密码栏下方找到

  2. C:\docker login --username AWS --password eyJwYXlsb2Fk...kRBVEFfS0VZIn0= https://123456789012.dkr.ecr.us-east-1.amazonaws.com

  3. docker tag user-mysql account_id.dkr.ecr.us-east-1.amazonaws.com/dockerregistry

  4. 在 ECR 上推送图像:C:\docker push account_id.dkr.ecr.us-east-1.amazonaws.com/dockerregistry

用户名:AWS
密码:eyJwYXlsb2Fk...kRBVEFfS0VZIn0=
ProxyEndpoint:https
://123456789012.dkr.ecr.us-west-2.amazonaws.com 端点:https://123456789012.dkr.ecr.us-west-2。 amazonaws.com
ExpiresAt : 9/26/2017 6:08:23 AM
命令 : docker login --username AWS --password eyJwYXlsb2Fk...kRBVEFfS0VZIn0= https://123456789012.dkr.ecr.us-west-2.amazonaws .com

于 2020-05-27T20:16:04.560 回答