如何排查 AWS Step Functions 中的“全球服务主体 states.amazonaws.com 或区域服务主体均未得到授权承担所提供的角色”错误?
上次更新日期:2022 年 8 月 4 日
尝试运行自己的 AWS Step Functions 状态机时,我收到以下错误消息:“全球服务主体 states.amazonaws.com 或区域服务主体均未得到授权承担所提供的角色。” 我该如何排查此问题?
解决方法
验证您的状态机承担的 AWS Identity and Access Management (IAM) 角色是否配置了所需的信任关系
必须在 IAM 角色的信任策略中将以下其中一项作为受信任实体列出:
- AWS 区域端点:states.
.amazonaws.com - AWS 全球端点:states.amazonaws.com
要查看和编辑状态机承担的 IAM 角色的信任策略,请按照修改角色信任策略 (控制台) 中的说明进行操作。有关更多信息,请参阅 AWS Step Functions 如何与 IAM 配合使用。
注意:调用 StartExecution API 操作时,Step Functions 将使用在操作运行时间持续时间内与状态机关联的 IAM 角色。如果状态机承担的 IAM 角色在操作运行时发生了更改,则该 API 操作不会使用 IAM 角色。
验证状态机所承担的 IAM 角色是否仍然存在
1. 打开 Step Functions 控制台。
2. 在左侧导航窗格中,选择状态机。
3. 选择状态机的名称。
4. 在详细信息部分中,选择 IAM 角色 ARN 下的链接。如果 IAM 角色存在,则该角色将在 IAM 控制台中打开。如果 IAM 角色不存在,IAM 控制台将打开一个页面,显示未找到实体。
如果状态机承担的 IAM 角色不存在,请使用不同名称创建新的 IAM 角色且该角色包含所需的权限。然后,配置状态机以承担您创建的新 IAM 角色。有关更多信息,请参阅 AWS Step Functions 如何与 IAM 配合使用。
重要提示:您创建的新 IAM 角色的名称必须与之前的 IAM 角色不同。