拉取AWS公共SageMaker XGBoost镜像时遇权限拒绝问题排查
问题原因及解决方案
核心问题:角色边界中的ECR资源ARN格式错误
你的角色边界(Permissions Boundary)里的ECR资源配置存在格式错误,导致即使附加了全权限策略,边界仍会限制对目标镜像的访问:
- 错误的ARN:
arn:aws:ecr:us-west-2:246618743249:repository/246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.0-1 - 正确的ECR仓库ARN格式应为:
arn:aws:ecr:<region>:<account-id>:repository/<repository-name>
ECR仓库的ARN不包含镜像标签(:1.0-1),也不需要添加完整的镜像域名前缀(246618743249.dkr.ecr.us-west-2.amazonaws.com/)——标签是镜像的标识,不属于仓库资源的一部分。
修复步骤
修正角色边界的ECR资源配置
将角色边界中的ECR资源条目替换为正确格式,可选择两种方式:- 精细控制:授权目标仓库及所有镜像
{ "Action": [ "ecr:*" ], "Resource": [ "arn:aws:ecr:us-west-2:246618743249:repository/sagemaker-xgboost", "arn:aws:ecr:us-west-2:246618743249:image/sagemaker-xgboost:*" ], "Effect": "Allow" } - 简化配置:直接授权所有ECR资源
{ "Action": [ "ecr:*" ], "Resource": "*", "Effect": "Allow" }
- 精细控制:授权目标仓库及所有镜像
理解权限评估逻辑
AWS权限检查顺序是:先验证角色边界是否允许操作,再检查附加的策略。即便你附加了ecr:*全权限策略,只要角色边界未授权对应资源,操作就会被拒绝。额外验证点
- 确认SageMaker Pipeline使用的角色确实是你配置的这个角色
- 验证目标镜像
246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.0-1在us-west-2区域存在(可通过ECR控制台查看)
内容的提问来源于stack exchange,提问作者awscoder
相关产品推荐
相关产品推荐

