我尝试通过向用户提供AmazonEC2ContainerRegistryFullAccess
政策来遵循AWS向我的用户设置ECR授权的说明。
然而,当我尝试在我的电脑上运行aws ecr get-login
时,我收到一条错误消息,我没有获得许可。
An error occurred (AccessDeniedException) when calling the GetAuthorizationToken operation: User: arn:aws:iam::ACCOUNT_NUMBER:user/MY_USER is not authorized to perform: ecr:GetAuthorizationToken on resource: *
我做错了什么?
答案 0 :(得分:28)
您必须将政策附加到您的IAM角色。
我附加了AmazonEC2ContainerRegistryFullAccess并且它有效。
答案 1 :(得分:7)
我发现当启用2FA时,没有选项可以使用aws ecr get-login,一旦我从我的帐户中删除了2FA,我就获得了授权令牌
答案 2 :(得分:3)
就像错误描述中所显示的那样,我必须在策略中允许执行操作“ GetAuthorizationToken”。
{
"Sid": "VisualEditor2",
"Effect": "Allow",
"Action": "ecr:GetAuthorizationToken",
"Resource": "*"
}
注意:这不是我的完整政策,而是声明的一个小节。
答案 3 :(得分:1)
当我尝试将容器推入存储库时,我在ECS上也遇到了同样的问题。
要解决此问题,我将我的IAM角色附加为AmazonECS_FullAccess
答案 4 :(得分:1)
这是我的男朋友EC2InstanceProfileForImageBuilderECRContainerBuilds
答案 5 :(得分:0)
在按照所有步骤操作后,这里是一个完整的答案-我能够使用ECR
该错误可能有2个含义:
1)您无权,因为您没有附加用户的ECR策略 2)您无权,因为您正在使用2FA并且使用cli是不安全的,除非您设置了临时会话令牌
这是获得访问权限的所有步骤的列表(包括处理2FA)
如果您启用了2FA
aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token
。 arn-of-the-mfa-device
可以在您的个人资料的2FA部分中找到。令牌是从设备生成的令牌。AccessKeyId
,SecretAccessKey
和SessionToken
更新awrecretails。 AWS建议您使用任一个cron作业来刷新令牌,这意味着如果您正在进行令牌测试,则您的产品资源很可能未启用2FA。您可以通过提供--duration-seconds
来增加会话,但最多只能使用36个小时。在authenticate-mfa-cli 这应该可以完成
答案 6 :(得分:0)
答案 7 :(得分:0)
我遇到了同样的问题,但是以前我将permission boundary
仅设置为s3,这会导致问题。
删除了permission boundary
,它就像一个魅力
答案 8 :(得分:0)
对我来说:
- Effect: Allow
Sid: VisualEditor2
Action:
- ecr:GetAuthorizationToken
- ecr:BatchGetImage
- ecr:GetDownloadUrlForLayer
Resource: "*"