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

如何配置AWS Base账户IAM组与Dev账户AdminRole的信任关系?

解决AWS跨账户角色信任IAM组的问题

嘿,我来帮你搞定这个跨账户角色信任的问题!你现在遇到的核心问题是:IAM角色的信任策略不能直接把IAM组作为Principal——AWS的IAM系统里,组不是可被直接信任的身份实体,只有用户、角色、AWS账户根、服务这类实体才行,所以你直接用组ARN的策略是不会生效的。

下面给你两个可行的解决方案,你可以根据自己的情况选择:

方案一:信任Base账户+组权限控制(推荐)

这个方法更高效,适合用户数量多的场景,分两步操作:

1. 配置Dev账户AdminRole的信任策略

修改信任策略,允许Base账户的所有身份(通过账户根ARN)来AssumeRole:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::BASE_ACCOUNT_ID:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

记得把BASE_ACCOUNT_ID替换成你Base账户的12位数字ID。

2. 在Base账户给admins组添加授权策略

在Base账户的admins组中创建一个IAM策略,允许组内的用户调用sts:AssumeRole去访问Dev账户的AdminRole:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::DEV_ACCOUNT_ID:role/AdminRole"
    }
  ]
}

同样替换DEV_ACCOUNT_ID为你Dev账户的12位ID。

这样一来,只有admins组的用户能获得AssumeRole的权限,而Dev账户的角色信任Base账户的所有身份,但只有被Base账户授权的用户才能成功切换角色,既满足了需求又保证了安全性。

方案二:直接指定用户ARN(适合用户少或命名有规律的场景)

如果你的用户命名有统一规律(比如user1到user56),也可以在Dev账户的信任策略里直接列出所有用户的ARN,或者用通配符匹配:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::BASE_ACCOUNT_ID:user/user1",
          "arn:aws:iam::BASE_ACCOUNT_ID:user/user2",
          // 依次添加到user56
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

不过这个方法的缺点是后续新增用户时需要手动更新信任策略,维护成本较高,所以更推荐方案一。

测试验证

配置完成后,你可以用AWS CLI命令测试是否能成功切换角色:

aws sts assume-role --role-arn arn:aws:iam::DEV_ACCOUNT_ID:role/AdminRole --role-session-name test-admin-session

如果返回包含Credentials的结果,说明配置成功了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:10:11