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