本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
跨账户存取 .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
:*" ] } ] }