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

AWS IAM跨账号角色切换失败:Boto3调用AssumeRole遭权限拒绝

问题分析与解决方案

核心问题

你的猜测方向没错,但本质不是身份显示格式的问题,而是账号B的target_role信任策略未正确匹配当前身份上下文。Pod通过OIDC获取worker_role后,实际使用的是该角色的临时会话身份(即arn:aws:sts::accountA:assumed-role/worker_role/xxx),虽然信任策略里指定了worker_role的ARN,但仍出现权限拒绝,大概率是以下原因导致:

可能的原因及修复方案

1. 账号B的信任策略存在语法错误

你提供的信任策略片段缺少闭合括号和Version字段,完整的合法信任策略应该是这样:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::accountA:role/worker_role"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

如果策略结构不完整(比如未闭合的JSON括号、缺少必填的Version),AWS无法正确解析,直接导致权限拒绝。

2. 账号A的worker_role缺少AssumeRole权限

Pod已经获取到worker_role的身份,但该角色本身需要被允许调用sts:AssumeRole去访问账号B的target_role。需要在账号A的worker_role的权限策略(注意不是信任关系)中添加以下语句:

{
  "Effect": "Allow",
  "Action": "sts:AssumeRole",
  "Resource": "arn:aws:iam::accountB:role/target_role"
}

这里要区分清楚:信任关系是控制谁能扮演该角色,而权限策略是控制该角色能执行哪些操作,不要搞混。

3. 精准匹配临时会话身份(可选方案)

如果前两个方案无效,可以尝试在账号B的信任策略中,直接匹配临时会话身份的ARN前缀,或者通过条件验证源角色:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringLike": {
          "aws:PrincipalArn": "arn:aws:sts::accountA:assumed-role/worker_role/*"
        }
      }
    }
  ]
}

或者更精准地匹配源角色ARN:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceArn": "arn:aws:iam::accountA:role/worker_role"
        }
      }
    }
  ]
}

验证步骤

  • 在Pod内执行aws sts get-caller-identity,确认当前身份确实是arn:aws:sts::accountA:assumed-role/worker_role/xxx格式
  • 检查账号B的target_role信任策略,确保JSON格式完全合法,没有语法错误
  • 检查账号A的worker_role权限策略,确认包含对arn:aws:iam::accountB:role/target_role的sts:AssumeRole权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 13:42:43