

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

# 为 Step Functions 创建 Amazon VPC 端点
<a name="vpc-endpoints"></a>

如果您使用亚马逊虚拟私有云（Amazon VPC）托管 AWS 资源，则可以在您的亚马逊 VPC 和 AWS Step Functions 工作流程之间建立连接。您可以将此连接用于您的 Step Functions 工作流，而无需穿越公共 Internet。标准工作流、快速工作流和同步快速工作流都支持 Amazon VPC 端点。

Amazon VPC 允许您在自定义虚拟网络中启动 AWS 资源。可以使用 VPC 控制您的网络设置，例如 IP 地址范围、子网、路由表和网络网关。有关更多信息 VPCs，请参阅 [Amazon VPC 用户指南](https://docs.aws.amazon.com/vpc/latest/userguide/)。

要将您的 Amazon VPC 连接到 Step Functions，您必须首先定义一个*接口 VPC 终端节点*，该终端节点允许您将您的 VPC 与其他 AWS 服务连接起来。该端点提供了可靠且可扩展的连接，无需互联网网关、网络地址转换 (NAT) 实例或 VPN 连接。有关更多信息，请参阅 *Amazon VPC 用户指南*中的[接口 VPC 端点 (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html)。

## 创建端点
<a name="vpc-endpoint-create"></a>

您可以使用、 AWS Command Line Interface (AWS CLI)、 AWS 软件开发工具包 AWS 管理控制台、 AWS Step Functions API 或在 VPC 中创建 AWS Step Functions 终端节点 CloudFormation。

有关使用 Amazon VPC 控制台或 AWS CLI创建和配置端点的信息，请参阅 *Amazon VPC 用户指南*中的[创建接口端点](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint)。

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

**注意**  
无需通过[私有 DNS](https://docs.aws.amazon.com/vpc/latest/privatelink/verify-domains.html) 覆盖开发工具包中的端点即可使用 VPC 端点。但是，如果要覆盖同步快速工作流的开发工具包中的端点，则需要将 `DisableHostPrefixInjection` 配置设置为 `true`。示例（Java 开发工具包 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();
```

有关使用创建和配置终端节点的信息 CloudFormation，请参阅*CloudFormation 用户指南*中的 [AWS:: EC2:: VPCEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html) 资源。

## Amazon VPC 端点策略
<a name="vpc-endpoint-policy"></a>

要控制对 Step Functions 的连接访问权限，您可以在创建亚马逊 VPC 终端节点时附加 AWS Identity and Access Management (IAM) 终端节点策略。您可以通过附加多个端点策略来创建复杂的 IAM 规则。有关更多信息，请参阅:
+  [Step Functions 的 Amazon Virtual Private Cloud 端点策略](#vpc-iam) 
+  [在 Step Functions 中为非管理员用户创建精细权限](concept-create-iam-advanced.md) 
+  [使用 VPC 端点控制对服务的访问](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) 

## Step Functions 的 Amazon Virtual Private Cloud 端点策略
<a name="vpc-iam"></a>

您可以为 Step Functions 创建 Amazon VPC 端点策略，并在其中指定以下内容：
+ 可执行操作的主体。
+ 可执行的操作。
+ 可对其执行操作的资源。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
              "states:ListExecutions", "states:StartExecution", "states:StopExecution", "states:DescribeExecution"
            ],
            "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": "*"
        }
    ]
}
```

有关创建端点策略的更多信息，请参阅以下内容：
+  [在 Step Functions 中为非管理员用户创建精细权限](concept-create-iam-advanced.md) 
+  [使用 VPC 端点控制对服务的访问](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) 