跨账户存取 .sync 集成模式 - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

跨账户存取 .sync 集成模式

在工作流中使用 .sync 服务集成模式时,Step Functions 会对调用的跨账户资源进行轮询,以确认任务是否完成。这会导致实际任务完成时间与 Step Functions 确认任务完成时间之间出现轻微延迟。目标 IAM 角色需要 .sync 调用所需的权限来完成轮询循环。为此,目标 IAM 角色必须拥有允许源账户承担的信任策略。此外,目标 IAM 角色还需要完成轮询循环所需的权限。

注意

嵌套快速工作流当前尚不支持 arn:aws:states:::states:startExecution.sync。请改用 arn:aws:states:::aws-sdk:sfn:startSyncExecution

.sync 调用的信任策略更新

更新目标 IAM 角色的信任策略,如下面的示例所示。sts:ExternalId 字段进一步控制谁可担任该角色。状态机的名称必须仅包含 Amazon Security Token Service AssumeRole API 支持的字符。有关更多信息,请参阅 Amazon Security Token Service API 参考AssumeRole中的。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "arn:aws:iam::sourceAccountID:role/InvokeRole", }, "Condition": { "StringEquals": { "sts:ExternalId": "arn:aws:states:us-east-2:sourceAccountID:stateMachine:stateMachineName" } } } ] }

.sync 调用所需的权限

要授予状态机所需的权限,请更新目标 IAM 角色所需的权限。有关更多信息,请参阅 集成服务的 IAM 策略。不需要示例策略中的 Amazon EventBridge 权限。例如,要启动状态机,请添加以下权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:region:accountID:stateMachine:stateMachineName" ] }, { "Effect": "Allow", "Action": [ "states:DescribeExecution", "states:StopExecution" ], "Resource": [ "arn:aws:states:region:accountID:execution:stateMachineName:*" ] } ] }