

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

# 网关端点
<a name="gateway-endpoints"></a>

网关 VPC 端点可提供与 Amazon S3 和 DynamoDB 的可靠连接，而无需为您的 VPC 提供互联网网关或 NAT 设备。与其他类型的 VPC 终端节点不同 Amazon PrivateLink，网关终端节点不使用。

Amazon S3 和 DynamoDB 同时支持网关端点和接口端点。有关各选项的比较，请参阅以下内容：
+ [适用于 Amazon S3 的 VPC 端点类型](https://docs.amazonaws.cn/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#types-of-vpc-endpoints-for-s3)
+ [适用于 Amazon DynamoDB 的 VPC 端点类型](https://docs.amazonaws.cn/amazondynamodb/latest/developerguide/privatelink-interface-endpoints.html#types-of-vpc-endpoints-for-ddb)

**定价**  
使用网关端点不会发生任何额外费用。

**Topics**
+ [概述](#gateway-endpoint-overview)
+ [路由](#gateway-endpoint-routing)
+ [安全性](#gateway-endpoint-security)
+ [IP 地址类型](#gateway-endpoint-ip-address-type)
+ [DNS 记录 IP 类型](#gateway-endpoint-dns-record-ip-type)
+ [Amazon S3 的端点](vpc-endpoints-s3.md)
+ [适用于 DynamoDB 的端点](vpc-endpoints-ddb.md)

## 概述
<a name="gateway-endpoint-overview"></a>

您可以通过 Amazon S3 和 DynamoDB 的公有服务端点或网关端点访问。本概述比较了这些方法。

**通过互联网网关访问**  
下图显示了实例如何通过其公有服务端点访问 Amazon S3 和 DynamoDB。从公有子网中的实例流向 Amazon S3 或 DynamoDB 的流量路由到 VPC 的互联网网关，然后路由到服务。私有子网中的实例无法向 Amazon S3 或 DynamoDB 发送流量，因为根据定义，私有子网没有通往互联网网关的路由。若要使私有子网中的实例能够向 Amazon S3 或 DynamoDB 发送流量，您需要向公有子网添加 NAT 设备并将私有子网中的流量路由到 NAT 设备。当流向 Amazon S3 或 DynamoDB 的流量通过互联网网关时，它不会离开网络。 Amazon 

![\[流量通过互联网网关离开您的 VPC，但仍留在 Amazon 网络中。\]](http://docs.amazonaws.cn/vpc/latest/privatelink/images/without-gateway-endpoints.png)


**通过网关端点进行访问**  
下图显示了实例如何通过网关端点访问 Amazon S3 和 DynamoDB。从您的 VPC 流向 Amazon S3 或 DynamoDB 的流量将路由到网关端点。每个子网路由表都必须有一条路由，该路由使用服务的前缀列表将以服务为目的地的流量发送到网关端点。有关更多信息，请参阅《*Amazon VPC 用户指南*》中的 [Amazon托管的前缀列表](https://docs.amazonaws.cn/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html)。

![\[来自 VPC 的流量将路由到网关端点。\]](http://docs.amazonaws.cn/vpc/latest/privatelink/images/gateway-endpoints.png)


## 路由
<a name="gateway-endpoint-routing"></a>

创建网关端点时，选择您启用的子网的 VPC 路由表。以下路由将自动添加到您选择的各个路由表。目的地是所拥有服务的前缀列表 Amazon ，目标是网关终端节点。


| 目标位置 | Target | 
| --- | --- | 
| prefix\$1list\$1id | gateway\$1endpoint\$1id | 

**注意事项**
+ 您可以查看我们添加到您的路由表中的端点路由，但不能修改或删除它们。要向路由表添加端点路由，请将其与网关端点关联。当您取消路由表与网关端点的关联或删除网关端点时，我们会删除端点路由。
+ 与网关端点关联的路由表关联的子网中的所有实例会自动使用该网关端点来访问该服务。未与这些路由表关联的子网中的实例使用公有服务端点，而不是网关端点。
+ 路由表既可以有通往 Amazon S3 的端点路由，也可以有通往 DynamoDB 的端点路由。您可以在多个路由表中拥有通往同一服务（Amazon S3 或 DynamoDB）的端点路由。您不能在一个路由表中拥有通往同一服务（Amazon S3 或 DynamoDB）的多个端点路由。
+ 我们使用与流量匹配的最明确路由以判断数据流的路由方式 (最长前缀匹配)。对于带有端点路由的路由表，这意味着以下内容：
  + 如果存在一条向互联网网关发送所有互联网流量 (0.0.0.0/0) 的路由，端点路由优先于以当前区域中的服务（Amazon S3 或 DynamoDB）为目的地的流量。发往不同地点的流量 Amazon Web Services 服务 使用互联网网关。
  + 以不同区域的服务（Amazon S3 或 DynamoDB）为目的地的流量会流向互联网网关，因为前缀列表特定于某个区域。
  + 如果在同一区域中存在为服务（Amazon S3 或 DynamoDB）指定确切 IP 地址范围的路由，则该路由优先于端点路由。

## 安全性
<a name="gateway-endpoint-security"></a>

当您的实例通过网关端点访问 Amazon S3 或 DynamoDB 时，它们会使用其公有端点访问服务。这些实例的安全组必须允许进出服务的流量。以下是出站规则的示例。它引用服务的[前缀列表](https://docs.amazonaws.cn/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html)的 ID。


| 目标位置 | 协议 | 端口范围 | 
| --- | --- | --- | 
| prefix\$1list\$1id | TCP | 443 | 

这些实例 ACLs 的子网网络还必须允许进出服务的流量。以下是出站规则的示例。您不能在网络 ACL 规则中引用前缀列表，但可以从其前缀列表中获取服务的 IP 地址范围。


| 目标位置 | 协议 | 端口范围 | 
| --- | --- | --- | 
| service\$1cidr\$1block\$11 | TCP | 443 | 
| service\$1cidr\$1block\$12 | TCP | 443 | 
| service\$1cidr\$1block\$13 | TCP | 443 | 

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

IP 地址类型决定哪个前缀列表与您的路由表相关联。

**IPv6 为网关终端节点启用的要求**
+ 网关端点的 IP 地址类型必须与网关端点的子网兼容，如下所述：
  + **IPv4**— 将服务的 IPv4 前缀列表添加到您的路由表中。
  + **IPv6**— 将服务的 IPv6 前缀列表添加到您的路由表中。仅当所有选定的子网仅为子网时， IPv6 才支持此选项。
  + **Dualstack** — 将服务的 IPv4 前缀列表添加到您的路由表中，并将服务的 IPv6 前缀列表添加到您的路由表中。仅当所有选定的子网同时具有 IPv4 和 IPv6 地址范围时，才支持此选项。

## DNS 记录 IP 类型
<a name="gateway-endpoint-dns-record-ip-type"></a>

默认情况下，网关终端节点会根据您调用的服务终端节点返回 DNS 记录。如果您使用 IPv4 服务终端节点（例如）创建网关终端节点`s3.us-east-2.amazonaws.com`，Amazon S3 会向您的客户端返回 A 记录，您的路由表中的所有子网都会使用 IPv4。

相反，如果您使用双栈服务终端节点（例如）创建网关终端节点，Amazon S3 会向您的客户端返回 A 和 AAAA 记录，而您的路由表中的子网使用和。`s3.dualstack.us-east-2.amazonaws.com` IPv4 IPv6

**注意**  
对于目录存储桶或 S3 Express One Zone，数据平面的网关端点将`s3express-use2-az1.dualstack.us-east-2.amazonaws.com`分别为`s3express-use2-az1.us-east-2.amazonaws.com`和。

DNS 记录 IP 类型会影响流量路由到客户端的方式。如果您使用 IPv4 服务终端节点创建网关终端节点，然后调用 dualstack 服务终端节点，则使用 AAAA 记录的流量将不会通过网关终端节点路由。如果存在兼容路径，则流量将被丢弃或路由到 IPv6兼容的路径上。如果您使用服务定义的 DNS 记录 IP 类型，请确保您的服务可以处理来自多个服务端点的可变调用。

您可以自定义 DNS 记录 IP 类型以选择为特定终端节点返回哪些记录，而不是[服务定义](https://docs.amazonaws.cn/AWSEC2/latest/APIReference/API_DnsOptionsSpecification.html)的默认 DNS 记录 IP 类型设置。下表显示支持的 DNS 记录 IP 类型和返回的记录类型：


| DNS 记录 IP 类型 | 返回的记录类型 | 
| --- | --- | 
| IPv4 | A | 
| IPv6 | AAAA | 
| 双堆栈 | A 和 AAAA | 
| 服务定义 | 记录取决于服务端点 | 

要选择 DNS 记录 IP 类型，必须为终端节点服务使用兼容的 IP 地址类型。下表显示了网关终端节点每种 IP 地址类型支持的 DNS 记录 IP 类型：


| IP 地址类型 | 支持的 DNS 记录 IP 类型 | 
| --- | --- | 
| IPv4 | IPv4，服务定义\$1 | 
| IPv6 | IPv6，服务定义\$1 | 
| 双堆栈 | IPv4、 IPv6、Dualstack、服务定义\$1 | 

\$1 表示默认 DNS 记录 IP 类型。

**注意**  
 要使用网关终端节点服务定义以外的 DNS 记录 IP 类型，您必须在 VPC 设置中允许`enableDnsSupport`和`enableDnsHostnames`属性。

您无法更改 DynamoDB 网关终端节点的 DNS 记录 IP 类型。DynamoDB 仅支持服务定义的 DNS 记录 IP 类型。

接口端点的 DNS 记录 IP 类型行为有所不同。有关更多信息，请参阅[接口端点的 DNS 记录 IP 类型](privatelink-access-aws-services.md#aws-services-dns-record-ip-type)。