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

AWS跨账户扮演角色时,如何为用户获取Access Token访问ECR?

答:不需要在两个账户都创建用户!

这是AWS跨账户访问的典型场景,完全不需要在dev账户重复创建根账户下的用户,正确的做法是通过IAM角色的信任关系来实现跨账户访问ECR,具体步骤如下:

  • 第一步:在dev账户创建IAM角色
    在dev账户的IAM控制台新建一个角色,选择「另一AWS账户」作为可信实体,填入根账户的账户ID(如果只想允许特定用户访问,也可以直接指定该用户的ARN)。

  • 第二步:给dev账户的角色附加ECR权限
    给这个角色添加适合的ECR权限策略:

    • 如果需要完整操作权限,可直接使用AWS托管策略 AmazonEC2ContainerRegistryFullAccess
    • 如果只需要拉取镜像权限,可以自定义策略,允许ecr:GetDownloadUrlForLayer、ecr:BatchGetImage、ecr:BatchCheckLayerAvailability等核心动作
  • 第三步:给根账户的用户添加角色扮演权限
    回到根账户,给需要访问dev账户ECR的IAM用户附加一个权限策略,允许该用户调用sts:AssumeRole动作,目标资源是dev账户中刚才创建的角色ARN。示例策略片段:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "sts:AssumeRole",
                "Resource": "arn:aws:iam::DEV_ACCOUNT_ID:role/YOUR_DEV_ROLE_NAME"
            }
        ]
    }
    
  • 第四步:使用临时凭证访问dev账户ECR
    根账户的用户可以通过AWS CLI或者SDK调用sts:AssumeRole获取临时凭证,之后用这些临时凭证操作dev账户的ECR。比如CLI命令:

    aws sts assume-role --role-arn arn:aws:iam::DEV_ACCOUNT_ID:role/YOUR_DEV_ROLE_NAME --role-session-name ECR-Access-Session
    

    拿到返回的AccessKeyId、SecretAccessKey和SessionToken后,即可将其配置为临时凭证来访问dev账户的ECR资源。

补充说明

你之前的误区在于想直接用根账户用户的Access Token访问dev账户,但AWS跨账户访问的标准安全方式是角色扮演——临时凭证有效期可控,比长期Access Token更安全,而且完全不需要在目标账户创建对应的用户。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:37:09