为 Step Functions 创建亚马逊VPC终端节点 - AWS Step Functions

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

为 Step Functions 创建亚马逊VPC终端节点

如果您使用 Amazon Virtual Private Cloud (AmazonVPC) 来托管 AWS 资源,则可以在您的亚马逊VPC和 AWS Step Functions 工作流程之间建立连接。您可以将此连接用于您的 Step Functions 工作流,而无需穿越公共 Internet。标准工作流程、快速工作流程和同步快速工作流程都支持 Amazon VPC 终端节点。

Amazon VPC 允许您在自定义虚拟网络中启动 AWS 资源。您可以使用VPC来控制您的网络设置,例如 IP 地址范围、子网、路由表和网络网关。有关的更多信息VPCs,请参阅 Amazon VPC 用户指南

要将您的亚马逊连接VPC到 Step Functions,您必须首先定义一个接口VPC终端节点,该终端节点允许您将您的服务VPC连接到其他 AWS 服务。该端点提供可靠、可扩展的连接,无需互联网网关、网络地址转换 (NAT) 实例或VPN连接。有关更多信息,请参阅 Amazon VPC 用户指南中的接口VPC终端节点 (AWS PrivateLink)

创建端点

您可以VPC使用、 AWS Command Line Interface (AWS CLI)、a AWS Management Console、或 AWS Step Functions API,在中创建 AWS Step Functions 终端节点 AWS CloudFormation。 AWS SDK

有关使用亚马逊VPC控制台或创建和配置终端节点的信息 AWS CLI,请参阅亚马逊VPC用户指南中的创建接口终端节点

注意

创建终端节点时,请将 Step Functions 指定VPC为要连接的服务。在 Amazon VPC 控制台中,服务名称因 AWS 地区而异。例如,如果您选择美国东部(弗吉尼亚州北部),则标准工作流和快速工作流的服务名称为 com.amazonaws.us-east-1.state,同步快速工作流的服务名称为 com.amazonaws.us-east-1.sync-states

注意

可以在不覆盖SDK直通私DNS有中的VPC端点的情况下使用终端节点。但是,如果要覆盖同步 Express 工作流程中的终端节点,则需要将DisableHostPrefixInjection配置设置为true。SDK示例(Java SDK V2):

SfnClient.builder() .endpointOverride(URI.create("https://vpce-{vpceId}.sync-states.us-east-1.vpce.amazonaws.com")) .overrideConfiguration(ClientOverrideConfiguration.builder() .advancedOptions(ImmutableMap.of(SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION, true)) .build()) .build();

有关使用创建和配置端点的信息 AWS CloudFormation,请参阅《AWS CloudFormation 用户指南》中的AWSEC2::: VPCEndpoint 资源。

亚马逊VPC终端节点政策

要控制对 Step Functions 的连接访问权限,您可以在创建亚马逊终端节点时附加 AWS Identity and Access Management (IAM) VPC 终端节点策略。您可以通过附加多个终端节点策略来创建复杂的IAM规则。有关更多信息,请参阅:

Step Functions 的 Amazon Virtual Private Cloud 端点策略

您可以为 Step Functions 创建亚马逊VPC终端节点策略,在其中指定以下内容:

  • 可执行操作的主体。

  • 可执行的操作。

  • 可对其执行操作的资源。

以下示例显示了 Amazon VPC 终端节点策略,该策略允许一个用户创建状态机,而拒绝所有其他用户删除状态机的权限。示例策略还授予所有 用户执行权限。

{ "Version": "2012-10-17", "Statement": [ { "Action": "*Execution", "Resource": "*", "Effect": "Allow", "Principal": "*" }, { "Action": "states:CreateStateMachine", "Resource": "*", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/MyUser" } }, { "Action": "states:DeleteStateMachine", "Resource": "*", "Effect": "Deny", "Principal": "*" } ] }

有关创建端点策略的更多信息,请参阅以下内容: