我正在使用 aws cli,并且我的 IAM 用户拥有完整的管理员权限。我们公司需要 MFA,因此我的 IAM 用户有 MFA 强制策略。要使用 cli,我使用以下命令获取令牌aws sts get-session-token
.
这一切都让我可以很好地使用 aws cli,直到我尝试获取 AWS 容器注册表的 docker 登录信息。然后我得到一个错误...
$ aws ecr get-login --registry-ids XXXXX
An error occurred (AccessDeniedException) when calling the GetAuthorizationToken operation: User: arn:aws:iam::XXXXX:user/yyyyy is not authorized to perform: ecr:GetAuthorizationToken on resource: *
如果我暂时从 IAM 用户中删除 MFA 强制策略,则该命令会成功。
所以问题是,我该如何使用aws ecr get-login
启用了 MFA 强制执行吗?
您首先需要获取会话令牌。这可以通过以下方式完成:
aws sts get-session-token --serial-number <arn-of-the-mfa-device> --token-code <code-generated-by-MFA-device>
可以通过转到 AWS 控制台的 IAM 部分中的用户详细信息来找到 arn-of-the-mfa-device。
上述命令的输出将为您提供一个会话令牌以及其他访问凭据以供使用。然后你应该运行:
aws configure set aws_session_token <the-session-token-in-the-output-of-above-command>
之后,像往常一样进行 aws ecr 登录。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)