拉取ECR的emr-6.3.0-latest基础镜像提示pull access denied怎么办
缺失配置排查项
- 先完成ECR的Docker客户端登录
即便配置了IAM权限,也需要先通过AWS CLI完成对应镜像仓库的登录认证,执行以下命令:
你可以执行aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 755674844232.dkr.ecr.us-east-1.amazonaws.comaws sts get-caller-identity确认当前CLI使用的凭证和你绑定权限的IAM用户一致。 - 补全IAM权限配置
除了ecr:BatchGetImage之外,你还需要额外添加两个权限:- 全局级别的
ecr:GetAuthorizationToken,资源必须配置为*,用于获取ECR登录凭证 - 对应镜像仓库的
ecr:GetDownloadUrlForLayer,用于拉取镜像层文件
参考权限策略如下:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ecr:GetAuthorizationToken", "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": "arn:aws:ecr:us-east-1:755674844232:repository/spark/*" } ] } - 全局级别的
- 确认区域匹配
你拉取的镜像托管在us-east-1区域,需要保证AWS CLI的操作区域和权限配置中的区域都是us-east-1,跨区域调用会触发权限报错。 - 中国区账号适配
上述镜像地址是全球区的EMR官方镜像地址,如果你使用的是AWS中国区账号,需要替换为中国区对应的EMR镜像仓库地址和区域参数。
内容的提问来源于stack exchange,提问作者GeetT
相关产品推荐
相关产品推荐

