本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Step Functions 中使用工作流工作室设置执行角色
您可以使用 Workflow Studio 为工作流程设置执行角色。每台Step Functions状态机都需要一个 AWS Identity and Access Management (IAM) 角色,该角色授予状态机对资源执行操作或调用第三方的权限APIs。 AWS 服务 此角色称为执行角色。
执行角色必须包含每个操作的IAM策略,例如,允许状态机调用AWS Lambda函数、运行AWS Batch作业或调用 Stripe 的策略API。 Step Functions在以下情况下,需要您提供执行角色:
-
您可以在控制台中创建状态机, AWS SDKs或者 AWS CLI 使用CreateStateMachineAPI。
主题
关于自动生成的角色
当您在 Step Functions 控制台中创建状态机时,Workflow Studio 可以自动为您创建一个包含必需 IAM 策略的执行角色。Workflow Studio 会分析您的状态机定义,并生成具有执行工作流所需的最低权限的策略。
Workflow Studio 可以为以下各项生成 IAM 策略:
-
HTTP调用第三方的@@ 任务APIs。
-
AWS 服务 使用经过优化的集成(例如 Invoke DynamoDB GetItem、或 AWS Glue StartJobRun)Lambda调用其他任务状态的任务状态。
-
运行嵌套工作流的 Task 状态。
-
分布式 Map 状态,包括用于启动子工作流执行、列出 Amazon S3 桶以及读取或写入 S3 对象的策略。
-
X-Ray 跟踪。在 Workflow Studio 中自动生成的每个角色都包含一个策略,该策略向状态机授予向 X-Ray 发送跟踪的权限。
-
在 Step Functions 中使用 CloudWatch 日志记录执行历史记录(当在状态机上启用日志记录时)。
Workflow Studio 无法为 AWS 服务 使用AWS SDK集成调用其他任务状态的任务状态生成IAM策略。
自动生成角色
-
打开 Step Functions 控制台
,然后选择创建状态机。 您也可以更新现有状态机。如果您要更新状态机,请参阅步骤 4。
-
在选择模板对话框中,选择空白。
-
选择 “选择” 以在中打开 “工作流工作室” 设计模式。
-
选择配置选项卡。
-
向下滚动到权限部分,然后执行以下操作:
-
对于执行角色,请确保保留默认选择创建新角色。
Workflow Studio 会自动为状态机定义中的每个有效状态生成所有必需的 IAM 策略。它会显示一条横幅,指明将创建具有完全权限的执行角色。
提示
要查看 Workflow Studio 为状态机自动生成的权限,请选择查看自动生成的权限。
注意
如果你删除 Step Functions 创建的IAM角色,Step Functions 以后将无法重新创建它。同样,如果您修改角色(例如,通过从IAM策略的主体中删除 Step Functions),Step Functions 以后将无法恢复其原始设置。
如果 Workflow Studio 无法生成所有必需的 IAM 策略,则会显示一条横幅,指明无法为某些操作自动生成权限。将创建仅具有部分权限的 IAM 角色。有关如何添加缺失权限的信息,请参阅解决角色生成问题。
-
如果要创建状态机,请选择创建。否则,请选择保存。
-
在出现的对话框中,选择确认。
Workflow Studio 会保存您的状态机并创建新的执行角色。
-
解决角色生成问题
在以下情况下,Workflow Studio 无法自动生成具有所有必需权限的执行角色:
-
状态机中出现错误。请务必在 Workflow Studio 中解决所有验证错误。另外,请务必解决在保存过程中遇到的任何服务器端错误。
-
您的状态机包含任务使用 AWS SDK集成。在这种情况下,Workflow Studio 无法自动生成 IAM 策略。Workflow Studio 会显示一条横幅,指明无法为某些操作自动生成权限。将创建仅具有部分权限的 IAM 角色。在查看自动生成的权限表中,选择状态中的内容,以了解有关您的执行角色缺少的策略的更多信息。Workflow Studio 仍然可以生成执行角色,但该角色不会包含所有操作的 IAM 策略。请参阅文档链接下的链接,编写您自己的策略,并在角色生成后将其添加到角色中。即使在保存状态机之后,这些链接也仍然可用。
在工作流工作室中测试HTTP任务的角色
您需要一个执行角色来测试HTTP任务状态。如果您没有具有足够权限的角色,请使用以下选项之一创建角色:
-
通过 Workflow Studio 自动生成一个角色(推荐)- 这是安全的选项。关闭测试状态对话框并按照自动生成角色中的说明操作。这需要您先创建或更新状态机,然后返回 Workflow Studio 测试状态。
-
使用具有管理员权限的角色-如果您有权创建对中的所有服务和资源具有完全访问权限的角色 AWS,则可以使用该角色来测试工作流程中的任何类型的状态。为此,您可以创建Step Functions服务角色并在IAM控制台中向其添加AdministratorAccess 策略https://console.aws.amazon.com/iam/
。
在 Workflow Studio 中测试优化的服务集成的角色
您需要为调用优化的服务集成的 Task 状态指定执行角色。如果您没有具有足够权限的角色,请使用以下选项之一创建角色:
-
通过 Workflow Studio 自动生成一个角色(推荐)- 这是安全的选项。关闭测试状态对话框并按照自动生成角色中的说明操作。这需要您先创建或更新状态机,然后返回 Workflow Studio 测试状态。
-
使用具有管理员权限的角色-如果您有权创建对中的所有服务和资源具有完全访问权限的角色 AWS,则可以使用该角色来测试工作流程中的任何类型的状态。为此,您可以创建Step Functions服务角色并在IAM控制台中向其添加AdministratorAccess 策略https://console.aws.amazon.com/iam/
。
在 Workflow Studio 中测试 AWS SDK服务集成的角色
对于调用AWS SDK集成的任务状态,你需要一个执行角色。如果您没有具有足够权限的角色,请使用以下选项之一创建角色:
-
通过 Workflow Studio 自动生成一个角色(推荐)- 这是安全的选项。关闭测试状态对话框并按照自动生成角色中的说明操作。这需要您先创建或更新状态机,然后返回 Workflow Studio 测试状态。执行以下操作:
-
关闭测试状态对话框
-
选择配置选项卡以查看配置模式。
-
向下滚动到权限部分。
-
Workflow Studio 会显示一条横幅,指明无法为某些操作自动生成权限。将创建仅具有部分权限的 IAM 角色。选择查看自动生成的权限。
-
查看自动生成的权限表会显示一行,列出与您要测试的 Task 状态相对应的操作。请参阅文档链接下的链接,将您自己的 IAM 策略编写到自定义角色中。
-
-
使用具有管理员权限的角色-如果您有权创建对中的所有服务和资源具有完全访问权限的角色 AWS,则可以使用该角色来测试工作流程中的任何类型的状态。为此,您可以创建Step Functions服务角色并在IAM控制台中向其添加AdministratorAccess 策略https://console.aws.amazon.com/iam/
。
在 Workflow Studio 中测试流状态的角色
您需要一个执行角色,以在 Workflow Studio 中测试流状态。流状态是指定向执行流的状态,例如 选择工作流程状态、并行工作流状态、映射工作流程状态、传递工作流程状态、等待工作流程状态、成功的工作流程状态 或 失败工作流状态。TestStateAPI不适用于地图或平行状态。您可以使用以下选项之一创建用于测试流状态的角色:
-
在你的 AWS 账户 (推荐)中使用任何角色 — Flow 状态不需要任何特定的IAM策略,因为它们不调用 AWS 操作或资源。因此,您可以在中使用任何IAM角色 AWS 账户。
-
在测试状态对话框中,从执行角色下拉列表中选择任意角色。
-
如果下拉列表中没有显示任何角色,请执行以下操作:
-
在IAM控制台中 https://console.aws.amazon.com/iam/
,选择 “角色”。 -
从列表中选择一个角色,然后ARN从角色详细信息页面复制该角色。您需要在 “测试状态” 对话框ARN中提供此信息。
-
在 “测试状态” 对话框中,ARN从 “执行角色” 下拉列表中选择 “输入角色”。
-
粘贴 ARN in 角色ARN。
-
-
-
使用具有管理员权限的角色-如果您有权创建对中的所有服务和资源具有完全访问权限的角色 AWS,则可以使用该角色来测试工作流程中的任何类型的状态。为此,您可以创建Step Functions服务角色并在IAM控制台中向其添加AdministratorAccess 策略https://console.aws.amazon.com/iam/
。