在 aws-cli 上进行身份验证时出现 UnrecognizedClientException 错误

cut*_*ade 9 command-line-interface amazon-web-services aws-cli alpine-linux

当我拉出一个干净的 Alphine Linux Docker 镜像时,安装aws-cli在它上面并尝试验证我自己,aws ecr get-authorization-token --region eu-central-1我不断收到以下错误:

调用 GetAuthorizationToken 操作时发生错误 ( UnrecognizedClientException ):请求中包含的安全令牌 无效

我已经检查了似乎没问题的时区,并且该命令在我的本地机器上正常工作。

这些是我运行来设置的命令aws-cli apk add --update python python-dev py-pip pip install awscli --upgrade export AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX export AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

有什么明显的我遗漏了吗?

jon*_*ris 12

就我而言,我的~/.aws/credentials文件有一个旧文件aws_session_token,未通过aws configureCLI 命令更新。一旦我打开文件并vi ~/.aws/credentials删除了该aws_session_token条目,我就不再遇到UnrecognizedClientException. 我猜测 AWS CLI在运行 AWS CLI 命令时首先优先考虑 和 ,如果aws_session_token文件aws access key id中存在的话。aws secret access keyaws_session_token~/.aws/credentials


cut*_*ade 9

毕竟这是一个访问问题!事实证明,如果您创建一个具有完全管理员访问权限的新 IAM 用户,它默认无法访问您使用其他帐户创建的 ECR 注册表。使用来自该其他账户的 IAM 凭证解决了该问题。


小智 7

在获得 权限之前,您无权访问这些资源aws-cli,为此您可以使用以下步骤。

登录您的 AWS 账户,单击您的账户名称,选择我的安全凭证,单击访问密钥并下载凭证

PowerShell以管理员身份打开并按照命令进行操作。

$ aws configure
$ AWS Access Key ID [****************E5TA]=xxxxxxxxxx
$ AWS Secret Access Key [****************7gNT]=xxxxxxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)


Пре*_*виќ 6

对我有用的是:在管道的第一部分添加参数--profile < your-profile-name > ,之后在每个 ECR 命令中您需要提供该参数。