当我尝试运行 AWS Step Functions 状态机时,收到以下错误: “全球服务主体 states.amazonaws.com 和区域服务主体都未获得代入所提供角色的授权。”
解决方法
验证您是否为状态机代入的 IAM 角色配置了所需的信任关系
在 AWS Identity and Access Management (IAM) 角色的信任策略中,必须将以下端点之一列为可信实体:
- AWS 区域端点:states.region.amazonaws.com
- AWS 全球端点:states.amazonaws.com
使用 IAM 控制台更新 IAM 角色的信任策略,使该策略包含前面的端点之一。
**注意:**调用 StartExecution API 操作时,Step Functions 使用在 API 操作运行时期间与状态机关联的 IAM 角色。如果您在操作运行时期间更改 IAM 角色,则 Step Functions 不会在 API 操作上使用 IAM 角色。
验证您的状态机代入的 IAM 角色是否仍然存在
完成以下步骤:
- 打开 Step Functions 控制台。
- 在导航窗格中,选择 State machines(状态机)。
- 对于 Names(名称),选择您的状态机的名称。
- 在 Details(详细信息)部分中,选择 IAM 角色 ARN 下的链接。如果 IAM 角色存在,则该角色将在 IAM 控制台中打开。如果 IAM 角色不存在,则 IAM 控制台会打开一个页面,显示未找到实体。
如果您的状态机代入的 IAM 角色不存在,则使创建一个新的 IAM 角色,并且该角色包含所需的权限。然后,配置您的状态机以代入新的 IAM 角色。
**重要事项:**新 IAM 角色的名称必须与之前的 IAM 角色不同。
有关详细信息,请参阅 AWS Step Functions 如何与 IAM 配合使用。
相关信息
使用 AWS Step Functions 和 AWS Lambda 创建无服务器工作流程