在 Step Functions 中使用工作流程工作室设置执行角色 - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在 Step Functions 中使用工作流程工作室设置执行角色

可以使用工作流程工作室设置工作流程的执行角色。每台 Step Functions 状态机都需要一个 Amazon Identity and Access Management(IAM)角色,来向状态机授予对 Amazon Web Services 服务和资源执行操作或调用 HTTPS API 的权限。此角色称为执行角色

对于每个操作,此执行角色都必须包含 IAM 策略,例如,可让状态机调用 Amazon Lambda 函数、运行 Amazon Batch 任务或调用 Stripe API 的策略。在以下情况下,Step Functions 要求您提供执行角色:

  • 您在控制台、Amazon SDK 或 Amazon CLI 中使用 CreateStateMachine API 创建状态机。

  • 您在控制台、Amazon SDK 或 Amazon CLI 中使用 TestState API 测试状态。

关于自动生成的角色

当您在 Step Functions 控制台中创建状态机时,Workflow Studio 可以自动为您创建一个包含必需 IAM 策略的执行角色。Workflow Studio 会分析您的状态机定义,并生成具有执行工作流所需的最低权限的策略。

Workflow Studio 可以为以下各项生成 IAM 策略:

Workflow Studio 无法为使用 Amazon SDK 集成调用其他 Amazon Web Services 服务的 Task 状态生成 IAM 策略。

自动生成角色

  1. 打开 Step Functions 控制台,从菜单中选择状态机,然后选择创建状态机

    您也可以更新现有状态机。如果您要更新状态机,请参阅步骤 4。

  2. 选择从空白创建

  3. 为状态机命名,然后选择继续,在 Workflow Studio 中编辑状态机。

  4. 选择配置选项卡。

  5. 向下滚动到权限部分,然后执行以下操作:

    1. 对于执行角色,请确保保留默认选择创建新角色

      Workflow Studio 会自动为状态机定义中的每个有效状态生成所有必需的 IAM 策略。它会显示一条横幅,指明将创建具有完全权限的执行角色

      “配置”选项卡的说明性屏幕截图,其中包含自动生成的权限的预览。
      提示

      要查看 Workflow Studio 为状态机自动生成的权限,请选择查看自动生成的权限

      注意

      如果您删除了 Step Functions 创建的 IAM 角色,Step Functions 在以后无法重新创建该角色。同样,如果您修改了该角色(例如,通过在 IAM 策略中从主体中删除 Step Functions),Step Functions 在以后也无法还原其原始设置。

      如果 Workflow Studio 无法生成所有必需的 IAM 策略,则会显示一条横幅,指明无法为某些操作自动生成权限。将创建仅具有部分权限的 IAM 角色。有关如何添加缺失权限的信息,请参阅解决角色生成问题

    2. 如果要创建状态机,请选择创建。否则,请选择保存

    3. 在出现的对话框中,选择确认

      Workflow Studio 会保存您的状态机并创建新的执行角色。

解决角色生成问题

在以下情况下,Workflow Studio 无法自动生成具有所有必需权限的执行角色:

  • 状态机中出现错误。请务必在 Workflow Studio 中解决所有验证错误。另外,请务必解决在保存过程中遇到的任何服务器端错误。

  • 您的状态机包含使用 Amazon SDK 集成的任务。在这种情况下,Workflow Studio 无法自动生成 IAM 策略。Workflow Studio 会显示一条横幅,指明无法为某些操作自动生成权限。将创建仅具有部分权限的 IAM 角色。在查看自动生成的权限表中,选择状态中的内容,以了解有关您的执行角色缺少的策略的更多信息。Workflow Studio 仍然可以生成执行角色,但该角色不会包含所有操作的 IAM 策略。请参阅文档链接下的链接,编写您自己的策略,并在角色生成后将其添加到角色中。即使在保存状态机之后,这些链接也仍然可用。

在 Workflow Studio 中测试 HTTP 任务的角色

需要一个执行角色来测试 HTTP Task 状态。如果您没有具有足够权限的角色,请使用以下选项之一创建角色:

  • 通过 Workflow Studio 自动生成一个角色(推荐)- 这是安全的选项。关闭测试状态对话框并按照自动生成角色中的说明操作。这需要您先创建或更新状态机,然后返回 Workflow Studio 测试状态。

  • 使用具有管理员权限的角色:如果您有权创建对 Amazon 中的所有服务和资源具有完全访问权限的角色,可以使用该角色来测试工作流中的任何状态类型。为此,您可以创建一个 Step Functions 服务角色,并在 IAM 控制台 https://console.aws.amazon.com/iam/ 中向其添加 AdministratorAccess 策略

在 Workflow Studio 中测试优化的服务集成的角色

调用经优化的服务集成的 Task 状态需要执行角色。如果您没有具有足够权限的角色,请使用以下选项之一创建角色:

  • 通过 Workflow Studio 自动生成一个角色(推荐)- 这是安全的选项。关闭测试状态对话框并按照自动生成角色中的说明操作。这需要您先创建或更新状态机,然后返回 Workflow Studio 测试状态。

  • 使用具有管理员权限的角色:如果您有权创建对 Amazon 中的所有服务和资源具有完全访问权限的角色,可以使用该角色来测试工作流中的任何状态类型。为此,您可以创建一个 Step Functions 服务角色,并在 IAM 控制台 https://console.aws.amazon.com/iam/ 中向其添加 AdministratorAccess 策略

在 Workflow Studio 中测试 Amazon SDK 服务集成的角色

调用 Amazon SDK 集成的 Task 状态执行角色。如果您没有具有足够权限的角色,请使用以下选项之一创建角色:

  • 通过 Workflow Studio 自动生成一个角色(推荐)- 这是安全的选项。关闭测试状态对话框并按照自动生成角色中的说明操作。这需要您先创建或更新状态机,然后返回 Workflow Studio 测试状态。执行以下操作:

    1. 关闭测试状态对话框

    2. 选择配置选项卡以查看配置模式。

    3. 向下滚动到权限部分。

    4. Workflow Studio 会显示一条横幅,指明无法为某些操作自动生成权限。将创建仅具有部分权限的 IAM 角色。选择查看自动生成的权限

    5. 查看自动生成的权限表会显示一行,列出与您要测试的 Task 状态相对应的操作。请参阅文档链接下的链接,将您自己的 IAM 策略编写到自定义角色中。

  • 使用具有管理员权限的角色:如果您有权创建对 Amazon 中的所有服务和资源具有完全访问权限的角色,可以使用该角色来测试工作流中的任何状态类型。为此,您可以创建一个 Step Functions 服务角色,并在 IAM 控制台 https://console.aws.amazon.com/iam/ 中向其添加 AdministratorAccess 策略

在 Workflow Studio 中测试流状态的角色

您需要一个执行角色,以在 Workflow Studio 中测试流状态。流状态是指定向执行流的状态,例如 Choice 工作流程状态Parallel 工作流程状态Map 状态工作流程。Pass 工作流程状态Wait 工作流程状态Succeed 工作流程状态Fail 工作流程状态TestState API 不适用于 Map 或 Parallel 状态。您可以使用以下选项之一创建用于测试流状态的角色:

  • 使用 Amazon Web Services 账户中的任何角色(推荐):流状态不需要任何特定的 IAM 策略,因为它们不调用 Amazon 操作或资源。因此,您可以使用 Amazon Web Services 账户中的任何 IAM 角色。

    1. 测试状态对话框中,从执行角色下拉列表中选择任意角色。

    2. 如果下拉列表中没有显示任何角色,请执行以下操作:

      1. 在 IAM 控制台 https://console.aws.amazon.com/iam/ 中,选择角色

      2. 从列表中选择一个角色,然后从角色详细信息页面复制其 ARN。您需要在测试状态对话框中提供此 ARN。

      3. 测试状态对话框中,从执行角色下拉列表中选择输入角色 ARN

      4. 将 ARN 粘贴到角色 ARN 中。

  • 使用具有管理员权限的角色:如果您有权创建对 Amazon 中的所有服务和资源具有完全访问权限的角色,可以使用该角色来测试工作流中的任何状态类型。为此,您可以创建一个 Step Functions 服务角色,并在 IAM 控制台 https://console.aws.amazon.com/iam/ 中向其添加 AdministratorAccess 策略