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

如何配置策略允许跨账号EKS集群从ECR仓库拉取镜像

问题根因

当前配置失效的核心原因是AWS跨账号访问的双向权限要求没有满足,加上临时会话身份的匹配规则问题:

  1. 仅配置了ECR侧的仓库访问权限,未给EKS节点实例角色配置访问跨账号ECR的权限
  2. EKS节点实际使用STS临时身份(assumed-role格式)发起请求,原有策略未覆盖所有该角色的临时会话场景

正确配置步骤

1. 给EKS所属账号的节点实例角色添加访问权限

AWS跨账号访问要求访问方和资源方同时授权,首先在EKS所在账号(账号ID:02182452XXXX)找到节点使用的实例角色,添加如下权限策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:BatchGetImage",
                "ecr:DescribeImages",
                "ecr:DescribeRepositories",
                "ecr:GetDownloadUrlForLayer"
            ],
            "Resource": "arn:aws:ecr:us-east-2:226427918358:repository/external-pull-test"
        }
    ]
}

你场景中的节点实例角色ARN为:arn:aws:iam::02182452XXXX:role/aws-dev-eks-cluster-crpiXXXX091410594876160000000c

2. 调整目标ECR账号的仓库权限策略

修改ECR侧的仓库策略,增加条件匹配所有该角色的STS临时会话,覆盖集群所有节点的访问场景:

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "AllowPull",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::02182452XXXX:role/aws-dev-eks-cluster-crpiXXXX091410594876160000000c"
            },
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:BatchGetImage",
                "ecr:DescribeImages",
                "ecr:DescribeRepositories",
                "ecr:GetDownloadUrlForLayer"
            ],
            "Condition": {
                "ArnLike": {
                    "aws:PrincipalArn": "arn:aws:sts::02182452XXXX:assumed-role/aws-dev-eks-cluster-crpiXXXX091410594876160000000c/*"
                }
            }
        }
    ]
}

验证

配置完成后等待2分钟左右权限全局生效,删除报错的Pod重建即可正常拉取镜像。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:15:07