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

为何指定单一State Machine ARN的IAM信任策略无法生效?

问题分析与解决:State Machine信任策略ArnEquals失效的原因
  • 核心原因:Step Functions执行状态机时,发起sts:AssumeRole请求的sts:SourceArn是状态机执行实例的ARN,格式为arn:aws:states:eu-west-1:123456789123:execution:resource-1:<随机执行ID>,而非你指定的状态机本身ARNarn:aws:states:eu-west-1:123456789123:stateMachine:resource-1。因此用ArnEquals直接匹配状态机ARN会完全不匹配,导致权限被拒绝。

  • 精准限制特定状态机的解决方案:
    不用ArnEquals,改用ArnLike并指定更精确的通配符,只匹配该状态机下的所有执行实例:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "states.amazonaws.com"
          },
          "Action": "sts:AssumeRole",
          "Condition": {
            "ArnLike": {
              "sts:SourceArn": "arn:aws:states:eu-west-1:123456789123:execution:resource-1:*"
            }
          }
        }
      ]
    }
    

    这样既能确保只有目标状态机的执行实例能扮演该角色,又能匹配到实际传递的SourceArn。

  • 补充说明:官方文档里的类似示例,往往是基于状态机执行ARN的匹配逻辑,只是可能没明确说明SourceArn是执行实例ARN而非状态机ARN,容易造成误解。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 01:55:18