You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从SageMaker推送Docker镜像至ECR时遇AccessDenied错误

解决方法

1. 清除当前SageMaker角色的AWS凭证

SageMaker环境会自动把执行角色的凭证注入到环境变量中,先在终端清除这些变量:

unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY
unset AWS_SESSION_TOKEN

2. 配置个人IAM用户凭证

确保你的IAM用户已拥有ECR推送权限(比如附加AmazonEC2ContainerRegistryFullAccess策略),然后在终端执行:

aws configure

按提示依次输入你的AWS Access Key ID、AWS Secret Access Key、目标区域(如us-east-x)和可选的输出格式(如json)。

3. 重新登录ECR并推送镜像

配置完成后,重新登录目标ECR仓库:

aws ecr get-login-password --region us-east-x | docker login --username AWS --password-stdin ${account_id}.dkr.ecr.us-east-x.amazonaws.com

再执行推送命令:

docker push ${fullname}

4. 可选:临时使用个人凭证执行单条命令

若不想全局配置,可在推送时临时指定个人凭证:

AWS_ACCESS_KEY_ID="你的访问密钥ID" AWS_SECRET_ACCESS_KEY="你的秘密访问密钥" docker push ${fullname}

替代方案:给SageMaker执行角色添加权限

如果不需要切换用户,直接给AmazonSageMaker-ExecutionRole-xxxxxxxxxxxx角色添加包含以下权限的策略:

  • ecr:InitiateLayerUpload
  • ecr:UploadLayerPart
  • ecr:CompleteLayerUpload
  • ecr:PutImage

内容的提问来源于stack exchange,提问作者sam.hay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 02:54:22