

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

# 通过 AWS PrivateLink 访问虚拟设备
<a name="vpce-gateway-load-balancer"></a>

您可以使用网关负载均衡器将流量分配到网络虚拟设备队列。这些设备可用于安全检查、合规性、策略控制和其他网络服务。您可以在创建 VPC 端点服务时指定网关负载均衡器。其他 AWS 主体通过创建网关负载均衡器端点访问端点服务。

**定价**  
按照您的网关负载均衡器端点在每个可用区预置的每一小时向您收取费用。此外，您还需按照处理的数据 GB 付费。有关更多信息，请参阅 [AWS PrivateLink 定价](https://aws.amazon.com/privatelink/pricing/)。

**Topics**
+ [概览](#gwlbe-overview)
+ [IP 地址类型](#gwlbe-ip-address-type)
+ [路由](#gateway-load-balancer-endpoints-routing)
+ [创建网关负载均衡器端点服务](create-gateway-load-balancer-endpoint-service.md)
+ [创建网关负载均衡器端点](gateway-load-balancer-endpoints.md)

有关更多信息，请参阅[网关负载均衡器](https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/)。

## 概览
<a name="gwlbe-overview"></a>

下图说明了应用程序服务器如何通过 AWS PrivateLink 访问安全设备。应用程序服务器在服务使用者 VPC 的子网中运行。您在同一 VPC 的另一个子网中创建网关负载均衡器端点。通过互联网网关进入服务使用者 VPC 的所有流量首先会路由到网关负载均衡器端点，以便进行检查，然后再路由到目标子网。同样，离开应用程序服务器的所有流量会被路由到网关负载均衡器端点以进行检查，然后通过互联网网关被路由回应用程序服务器。

![\[使用网关负载均衡器端点访问安全设备。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/privatelink/images/gateway-load-balancer-endpoint.png)


**从互联网到应用程序服务器的流量（蓝色箭头）：**

1. 流量通过互联网网关进入服务使用者 VPC。

1. 根据路由表配置，将流量发送到网关负载均衡器端点。

1. 通过安全设备，将流量发送到网关负载均衡器以进行检查。

1. 检查完成后，将流量发送回网关负载均衡器端点。

1. 根据路由表配置，将流量发送到应用程序服务器。

**从应用程序服务器到互联网的流量（橙色箭头）：**

1. 根据路由表配置，将流量发送到网关负载均衡器端点。

1. 通过安全设备，将流量发送到网关负载均衡器以进行检查。

1. 检查完成后，将流量发送回网关负载均衡器端点。

1. 根据路由表配置，将流量发送到互联网网关。

1. 流量被路由回互联网。

## IP 地址类型
<a name="gwlbe-ip-address-type"></a>

服务提供商可通过 IPv4、IPv6 或 IPv4 和 IPv6 向服务使用者提供其服务端点，即使其安全设备仅支持 IPv4。如果您启用双堆栈支持，则现有使用者可继续使用 IPv4 访问您的服务，并且新的使用者可选择使用 IPv6 访问您的服务。

如果网关负载均衡器端点支持 IPv4，则端点网络接口具有 IPv4 地址。如果网关负载均衡器端点支持 IPv6，则端点网络接口具有 IPv6 地址。无法从互联网访问端点网络接口的 IPv6 地址。如果您使用 IPv6 地址描述端点网络接口，请注意已启用 `denyAllIgwTraffic`。

**为端点服务启用 IPv6 的要求**
+ 端点服务的 VPC 和子网必须具有关联的 IPv6 CIDR 块。
+ 端点服务的所有网关负载均衡器必须使用双堆栈 IP 地址类型。安全设备不需要支持 IPv6 流量。

**为网关负载均衡器端点启用 IPv6 的要求**
+ 端点服务必须具有包含 IPv6 支持的 IP 地址类型。
+ 网关负载均衡器端点的 IP 地址类型必须与网关负载均衡器端点的子网兼容，如下所述：
  + **IPv4** – 将 IPv4 地址分配给端点网络接口。仅当所有选定子网都具有 IPv4 地址范围时，才支持此选项。
  + **IPv6** – 将 IPv6 地址分配给端点网络接口。仅当所有选定子网均为仅限 IPv6 的子网时，才支持此选项。
  + **Dualstack**（双堆栈）– 将 IPv4 和 IPv6 地址分配给端点网络接口。仅当所有选定子网都具有 IPv4 和 IPv6 地址范围时，才支持此选项。
+ 服务使用者 VPC 中子网的路由表必须路由 IPv6 流量，而这些子网的网络 ACL 必须允许 IPv6 流量。

## 路由
<a name="gateway-load-balancer-endpoints-routing"></a>

若要将流量路由到端点服务，请使用其 ID 将网关负载均衡器端点指定为路由表中的目标。在上图中，将路由添加到路由表，如下所示。使用 Gateway Load Balancer 端点作为目标时，不能将前缀列表指定为目的地。在这些表中，双堆栈配置包含 IPv6 路由。

**互联网网关的路由表**  
此路由表必须具有将发往应用程序服务器的流量发送到网关负载均衡器端点的路由。


| 目标位置 | 目标 | 
| --- | --- | 
| VPC IPv4 CIDR | 本地 | 
| VPC IPv6 CIDR | 本地 | 
| 应用程序子网 IPv4 CIDR | vpc-endpoint-id | 
| 应用程序子网 IPv6 CIDR | vpc-endpoint-id | 

**包含应用程序服务器的子网的路由表**  
此路由表必须具有将来自应用程序服务器的所有流量发送到网关负载均衡器端点的路由。


| 目标位置 | 目标 | 
| --- | --- | 
| VPC IPv4 CIDR | 本地 | 
| VPC IPv6 CIDR | 本地 | 
| 0.0.0.0/0 | vpc-endpoint-id | 
| ::/0 | vpc-endpoint-id | 

**包含网关负载均衡器端点的子网的路由表**  
此路由表必须将从检查返回的流量发送到最终目标位置。如果流量来自互联网，本地路由会将流量发送到应用程序服务器。如果流量来自应用程序服务器，则添加将所有流量发送到互联网网关的路由。


| 目标位置 | 目标 | 
| --- | --- | 
| VPC IPv4 CIDR | 本地 | 
| VPC IPv6 CIDR | 本地 | 
| 0.0.0.0/0 | internet-gateway-id | 
| ::/0 | internet-gateway-id | 

# 创建检查系统作为网关负载均衡器端点服务
<a name="create-gateway-load-balancer-endpoint-service"></a>

您可以创建由 AWS PrivateLink（称为*端点服务*）支持的您自己的服务。您是服务提供商，而创建与您的服务之间的连接的 AWS 主体是服务使用者。

端点服务需要网络负载均衡器或网关负载均衡器。在这种情况下，您将使用网关负载均衡器创建端点服务。有关使用网络负载均衡器创建端点服务的更多信息，请参阅 [创建端点服务](create-endpoint-service.md)。

**Topics**
+ [注意事项](#considerations-gateway-load-balancer-endpoint-service)
+ [先决条件](#prerequisites-gateway-load-balancer-endpoint-service)
+ [创建端点服务](#create-endpoint-service-glb)
+ [使您的端点服务可用](#share-gateway-load-balancerendpoint-service)

## 注意事项
<a name="considerations-gateway-load-balancer-endpoint-service"></a>
+ 端点服务在您创建端点服务的区域可用。
+ 当服务使用者检索有关端点服务的信息时，他们只能看到与服务提供商共有的可用区。当服务提供商与服务使用者处于不同的账户中时，`us-east-1a` 等可用区名称可能会映射到每个 AWS 账户 中不同的实际可用区。您可以使用可用区 ID 一致地标识服务的可用区。有关更多信息，请参阅 *Amazon EC2 用户指南*中的 [AZ ID](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#az-ids)。
+ 您的 AWS PrivateLink 资源上有配额。有关更多信息，请参阅 [AWS PrivateLink 配额](vpc-limits-endpoints.md)。

## 先决条件
<a name="prerequisites-gateway-load-balancer-endpoint-service"></a>
+ 在应提供服务的可用区中创建具有至少两个子网的服务提供商 VPC。将一个子网用于安全设备实例，另一个用于网关负载均衡器。
+ 在服务提供商 VPC 中创建网关负载均衡器。如果您计划在端点服务上启用 IPv6 支持，则必须在网关负载均衡器上启用双堆栈支持。有关更多信息，请参阅[网关负载均衡器入门](https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/getting-started.html)。
+ 在服务提供商 VPC 中启动安全设备，并将其注册到负载均衡器目标组。

## 创建端点服务
<a name="create-endpoint-service-glb"></a>

按照以下步骤，使用网关负载均衡器创建端点服务。

**使用控制台创建端点服务**

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

1. 在导航窗格中，选择 **Endpoint services**（端点服务）。

1. 选择 **Create endpoint service**（创建端点服务）。

1. 在 **Load balancer type**（负载均衡器类型）选项中选择 **Gateway**（网关）。

1. 对于 **Available load balancers**（可用负载均衡器），选择您的网关负载均衡器。

1. 在 **Require acceptance for endpoint**（需要接受以使用端点）选项中，选择 **Acceptance required**（需要接受）以要求手动接受对端点服务的连接请求。否则，将自动接受它们。

1. 对于 **Supported IP address types**（支持的 IP 地址类型），执行以下任一操作：
   + 选择 **IPv4** – 启用端点服务以接受 IPv4 请求。
   + 选择 **IPv6** – 启用端点服务以接受 IPv6 请求。
   + 选择 **IPv4** 和 **IPv6** – 启用端点服务以接受 IPv4 和 IPv6 请求。

1. （可选）若要添加标签，请选择 **Add new tag**（添加新标签），然后输入该标签的键和值。

1. 选择 **Create**（创建）。

**使用命令行创建端点服务**
+ [create-vpc-endpoint-service-configuration](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-vpc-endpoint-service-configuration.html) (AWS CLI)
+ [New-EC2VpcEndpointServiceConfiguration](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2VpcEndpointServiceConfiguration.html) (Tools for Windows PowerShell)

## 使您的端点服务可用
<a name="share-gateway-load-balancerendpoint-service"></a>

服务提供商必须执行以下操作才能向服务使用者提供服务。
+ 添加权限以允许每个服务使用者连接到您的端点服务。有关更多信息，请参阅 [管理权限](configure-endpoint-service.md#add-remove-permissions)。
+ 为服务使用者提供您的服务名称和支持的可用区，以便他们能够创建接口端点以连接到您的服务。有关更多信息，请参阅下面的过程。
+ 接受服务使用者的端点连接请求。有关更多信息，请参阅 [接受或拒绝连接请求](configure-endpoint-service.md#accept-reject-connection-requests)。

AWS 主体可以通过创建网关负载均衡器端点来私密地连接到您的端点服务。有关更多信息，请参阅 [创建网关负载均衡器端点](gateway-load-balancer-endpoints.md)。

# 使用网关负载均衡器端点访问检查系统
<a name="gateway-load-balancer-endpoints"></a>

您可以创建网关负载均衡器端点以连接到由 AWS PrivateLink 支持的[端点服务](concepts.md#concepts-endpoint-services)。

对于您在 VPC 中指定的每个子网，我们将在子网中创建一个端点网络接口，并为其分配子网地址范围内的私有 IP 地址。端点网络接口是由请求者管理的网络接口；您可以在您的 AWS 账户 中查看，但无法自行管理。

您需要根据每小时使用量付费并支付数据处理费用。有关更多信息，请参阅 [Gateway Load Balancer 端点定价](https://aws.amazon.com/privatelink/pricing/#Gateway_Load_Balancer_Endpoint_pricing)。

**Topics**
+ [注意事项](#considerations-gateway-load-balancer-endpoints)
+ [先决条件](#prerequisites-gateway-load-balancer-endpoints)
+ [创建端点](#create-gateway-load-balancer-endpoint)
+ [配置路由](#configure-routing-gateway-load-balancer-endpoint)
+ [管理标签](#add-remove-gateway-load-balancer-endpoint-tags)
+ [删除网关负载均衡器端点](#delete-gateway-load-balancer-endpoint)

## 注意事项
<a name="considerations-gateway-load-balancer-endpoints"></a>
+ 您只能在服务使用者 VPC 中选择一个可用区。此后则无法更改此子网。若要在不同子网中使用网关负载均衡器端点，您必须创建新的网关负载均衡器端点。
+ 您可以为每个服务的每个可用区创建单个网关负载均衡器端点，但必须选择网关负载均衡器支持的可用区。当服务提供商与服务使用者处于不同的账户中时，`us-east-1a` 等可用区名称可能会映射到每个 AWS 账户 中不同的实际可用区。您可以使用可用区 ID 一致地标识服务的可用区。有关更多信息，请参阅 *Amazon EC2 用户指南*中的 [AZ ID](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#az-ids)。
+ 只有在服务提供商接受连接请求后，您才能使用端点服务。服务无法通过 VPC 端点发起对您的 VPC 中的资源的请求。端点仅返回对由您的 VPC 中的资源启动的流量的响应。
+ 每个可用区的每个网关负载均衡器端点可支持高达 10 Gbps 的带宽并自动纵向扩展到高达 100 Gbps。
+ 如果端点服务与多个网关负载均衡器关联，那么对于某个特定的可用区，网关负载均衡器端点将仅与每个可用区的一个负载均衡器的建立连接。
+ 要将流量保持在同一可用区内，我们建议您在将向其发送流量的每个可用区中创建网关负载均衡器端点。
+ 当流量通过网关负载均衡器端点进行路由时，不支持网络负载均衡器客户端 IP 保留，即使目标与网络负载均衡器位于同一 VPC 中亦是如此。
+ 如果应用程序服务器和网关负载均衡器端点位于同一个子网中，则 NACL 规则将针对从应用程序服务器到网关负载均衡器端点的流量进行评估。
+ 如果您将网关负载均衡器与仅限出口的互联网网关一起使用，则 IPv6 流量将被丢弃。相反，应使用互联网网关和入站防火墙规则。
+ 您的 AWS PrivateLink 资源上有配额。有关更多信息，请参阅 [AWS PrivateLink 配额](vpc-limits-endpoints.md)。

## 先决条件
<a name="prerequisites-gateway-load-balancer-endpoints"></a>
+ 在您将从中访问服务的可用区中，创建一个包含至少两个子网的服务使用者 VPC。将一个子网用于应用程序服务器，另一个用于网关负载均衡器端点。
+ 若要验证端点服务支持哪些可用区，请使用控制台或 [describe-vpc-endpoint-services](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoint-services.html) 命令描述端点服务。
+ 如果您的资源位于具有网络 ACL 的子网中，请验证网络 ACL 是否允许端点网络接口与 VPC 中的资源之间的流量。

## 创建端点
<a name="create-gateway-load-balancer-endpoint"></a>

按照以下步骤，创建可连接到检查系统端点服务的网关负载均衡器端点。

**使用控制台创建网关负载均衡器端点**

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

1. 在导航窗格中，选择 **Endpoints**（端点）。

1. 选择**创建端点**。

1. 对于**类型**，选择**使用 NLB 和 GWLB 的端点服务**。

1. 对于 **Service name**，输入服务的名称，然后选择 **Verify service**（验证服务）。

1. 对于 **VPC**，选择您将从中访问端点服务的 VPC。

1. 对于**子网**，选择要在其中创建端点网络接口的一个子网。

1. 对于 **IP address type**（IP 地址类型），可从以下选项中进行选择：
   + **IPv4** – 将 IPv4 地址分配给端点网络接口。仅当选定子网具有 IPv4 地址范围时，才支持此选项。
   + **IPv6** – 将 IPv6 地址分配给端点网络接口。仅当选定子网为仅限 IPv6 的子网时，才支持此选项。
   + **双堆栈** – 将 IPv4 和 IPv6 地址分配给端点网络接口。仅当选定子网具有 IPv4 和 IPv6 地址范围时，才支持此选项。

1. （可选）若要添加标签，请选择 **Add new tag**（添加新标签），然后输入该标签的键和值。

1. 选择**创建端点**。初始状态为 `pending acceptance`。

**使用命令行创建网关负载均衡器端点。**
+ [create-vpc-endpoint](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-vpc-endpoint.html) (AWS CLI)
+ [New-EC2VpcEndpoint](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2VpcEndpoint.html) (Tools for Windows PowerShell)

## 配置路由
<a name="configure-routing-gateway-load-balancer-endpoint"></a>

按照以下过程为服务使用者 VPC 配置路由表。这使安全设备能够对发往应用程序服务器的入站流量执行安全检查。有关更多信息，请参阅 [路由](vpce-gateway-load-balancer.md#gateway-load-balancer-endpoints-routing)。

**使用控制台配置路由**

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

1. 在导航窗格中，选择 **Route Tables**（路由表）。

1. 为互联网网关选择路由表，并执行以下操作：

   1. 依次选择 **Actions**（操作）、**Edit routes**（编辑路由）。

   1. 如果您支持 IPv4，请选择 **Add route**（添加路由）。对于 **Destination**（目标），输入应用程序服务器子网的 IPv4 CIDR 块。在 **Target**（目标）选项中，选择 VPC 端点。

   1. 如果您支持 IPv6，请选择 **Add route**（添加路由）。对于 **Destination**（目标），输入应用程序服务器子网的 IPv6 CIDR 块。在 **Target**（目标）选项中，选择 VPC 端点。

   1. 选择**保存更改**。

1. 为包含应用程序服务器的子网选择路由表，并执行以下操作：

   1. 依次选择 **Actions**（操作）、**Edit routes**（编辑路由）。

   1. 如果您支持 IPv4，请选择 **Add route**（添加路由）。在 **Destination**（目标位置）字段，输入 **0.0.0.0/0**。在 **Target**（目标）选项中，选择 VPC 端点。

   1. 如果您支持 IPv6，请选择 **Add route**（添加路由）。在 **Destination**（目标位置）字段，输入 **::/0**。在 **Target**（目标）选项中，选择 VPC 端点。

   1. 选择**保存更改**。

1. 为包含网关负载均衡器端点的子网选择路由表，并执行以下操作：

   1. 依次选择 **Actions**（操作）、**Edit routes**（编辑路由）。

   1. 如果您支持 IPv4，请选择 **Add route**（添加路由）。在 **Destination**（目标位置）字段，输入 **0.0.0.0/0**。在 **Target**（目标）选项中，选择互联网网关。

   1. 如果您支持 IPv6，请选择 **Add route**（添加路由）。在 **Destination**（目标位置）字段，输入 **::/0**。在 **Target**（目标）选项中，选择互联网网关。

   1. 选择**保存更改**。

**使用命令行配置路由**
+ [create-route](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-route.html) (AWS CLI)
+ [New-EC2Route](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Route.html) (Tools for Windows PowerShell)

## 管理标签
<a name="add-remove-gateway-load-balancer-endpoint-tags"></a>

您可以对网关负载均衡器端点进行标记，以帮助您识别它或根据组织的需要对其进行分类。

**使用控制台管理标签**

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

1. 在导航窗格中，选择**端点**。

1. 选择接口端点。

1. 依次选择 **Actions**（操作）、**Manage tags**（管理标签）。

1. 若要添加标签，请选择 **Add new tag**（添加新标签），然后输入标签的键和值。

1. 若要删除标签，请选择标签的键和值右侧的 **Remove**（删除）。

1. 选择 **Save**（保存）。

**使用命令行管理标签**
+ [create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html) 和 [delete-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-tags.html) (AWS CLI)
+ [New-EC2Tag](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Tag.html) 和 [Remove-EC2Tag](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2Tag.html) (Tools for Windows PowerShell)

## 删除网关负载均衡器端点
<a name="delete-gateway-load-balancer-endpoint"></a>

用完端点后，您可以将其删除。删除网关负载均衡器端点也会删除端点网络接口。如果路由表中存在指向端点的路由，则无法删除网关负载均衡器端点。

**删除网关负载均衡器端点**

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

1. 在导航窗格中，选择 **Endpoints**（端点）并选择您的端点。

1. 依次选择 **Actions**（操作）、**Delete Endpoint**（删除端点）。

1. 在确认屏幕中，选择 **Yes, Delete**（是的，删除）。

**删除网关负载均衡器端点**
+ [delete-vpc-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-vpc-endpoints.html) (AWS CLI)
+ [Remove-EC2VpcEndpoint](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2VpcEndpoint.html) (AWS Tools for Windows PowerShell)