本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 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 会分析您的状态机定义,并生成具有执行工作流所需的最低权限的策略。
Studio 可以生成的工作流程 IAM 针对以下内容的政策:
-
HTTP调用第三方的@@ 任务APIs。
-
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。
-
在选择模板对话框中,选择空白。
-
选择 “选择” 以在中打开 “工作流工作室” 设计模式。
-
选择配置选项卡。
-
向下滚动到权限部分,然后执行以下操作:
-
对于执行角色,请确保保留默认选择创建新角色。
工作流程 Studio 会自动生成所有必需的内容 IAM 状态机定义中每个有效状态的策略。它会显示一条横幅,指明将创建具有完全权限的执行角色。
提示
要查看 Workflow Studio 为状态机自动生成的权限,请选择查看自动生成的权限。
注意
如果你删除 Step Functions 创建的IAM角色,Step Functions 以后将无法重新创建它。同样,如果您修改角色(例如,通过从IAM策略的主体中删除 Step Functions),Step Functions 以后将无法恢复其原始设置。
如果 Workflow Studio 无法生成所有必需 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 中测试优化的服务集成的角色
您需要为调用优化的服务集成的 Task 状态指定执行角色。如果您没有具有足够权限的角色,请使用以下选项之一创建角色:
-
通过 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 中测试流状态。流状态是指定向执行流的状态,例如 选择工作流程状态、并行工作流状态、映射工作流程状态、传递工作流程状态、等待工作流程状态、成功的工作流程状态 或 失败工作流状态。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/
。