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

AWS ECR跨账号拉取权限配置报错问题咨询

解决AWS ECR跨账号拉取镜像的权限策略错误问题

你碰到的这个报错,核心原因是ECR仓库权限策略里的Principal不能直接填写账号ID,AWS要求必须使用标准的IAM实体ARN(亚马逊资源名称)来指定被授权的对象。下面给你两种正确的配置方案,以及关键注意事项:

方案1:允许账号B的所有实体访问(适合快速测试或信任整个账号的场景)

把Principal设置为账号B的根用户ARN,格式是arn:aws:iam::账号B-ID:root。以下是完整的仓库权限策略示例:

{
  "Version": "2008-10-17",
  "Statement": [
    {
      "Sid": "AllowCrossAccountPull",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::账号B-ID:root"
      },
      "Action": [
        "ecr:GetDownloadUrlForLayer",
        "ecr:BatchGetImage",
        "ecr:BatchCheckLayerAvailability"
      ],
      "Resource": "arn:aws:ecr:你的区域:账号A-ID:repository/你的仓库名"
    }
  ]
}
  • 注意替换账号B-ID、你的区域、账号A-ID、你的仓库名为实际信息。
  • Action里的三个权限是拉取镜像必需的最小权限集合,不要额外添加不必要的权限。

方案2:仅允许账号B的特定IAM角色访问(更安全的生产级配置)

如果不想开放整个账号B的权限,只允许某个专门用于拉取镜像的IAM角色访问,可以把Principal设置为该角色的ARN。比如账号B有个角色ECRImagePullerRole,策略示例如下:

{
  "Version": "2008-10-17",
  "Statement": [
    {
      "Sid": "AllowSpecificRolePull",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::账号B-ID:role/ECRImagePullerRole"
      },
      "Action": [
        "ecr:GetDownloadUrlForLayer",
        "ecr:BatchGetImage",
        "ecr:BatchCheckLayerAvailability"
      ],
      "Resource": "arn:aws:ecr:你的区域:账号A-ID:repository/你的仓库名"
    }
  ]
}

关键额外配置(容易忽略的点)

光在账号A的ECR仓库配置策略还不够,账号B的IAM实体(用户/角色)本身需要有允许调用这些ECR动作的权限。比如给账号B的ECRImagePullerRole添加以下IAM权限策略:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecr:GetDownloadUrlForLayer",
        "ecr:BatchGetImage",
        "ecr:BatchCheckLayerAvailability",
        "ecr:GetAuthorizationToken"
      ],
      "Resource": "*"
    }
  ]
}
  • ecr:GetAuthorizationToken是获取登录凭证必需的权限,必须包含。

验证配置是否生效

配置完成后,用账号B的身份执行以下命令测试:

aws ecr get-login-password --region 你的区域 | docker login --username AWS --password-stdin 账号A-ID.dkr.ecr.你的区域.amazonaws.com

如果登录成功,就可以尝试拉取镜像了。

内容的提问来源于stack exchange,提问作者Amandil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:32:09