

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

# AWS PrivateLink 概念
<a name="concepts"></a>

您可以使用 Amazon VPC 定义虚拟私有云（VPC），这是一个逻辑隔离虚拟网络。您可以允许 VPC 中的客户端连接到该 VPC 外部的目的地。例如，向 VPC 添加互联网网关以允许访问互联网，或添加 VPN 连接以允许访问您的本地网络。或者，使用 AWS PrivateLink 允许您的 VPC 中的客户端 VPCs 使用私有 IP 地址连接到其他 VPC 中的服务和资源，就好像这些服务和资源直接托管在您的 VPC 中一样。

以下是开始使用 AWS PrivateLink时需要理解的重要概念。

**Topics**
+ [架构图](#architecture-diagram)
+ [提供商](#concepts-service-providers)
+ [服务或资源使用者](#concepts-service-consumers)
+ [AWS PrivateLink 连接](#privatelink-connections)
+ [私有托管区](#concepts-private-hosted-zones)

## 架构图
<a name="architecture-diagram"></a>

下图简要概述了 AWS PrivateLink 工作原理。使用者创建 VPC 端点以连接到由提供商托管的端点服务和资源。

![\[服务使用者创建接口 VPC 端点以连接到由提供商托管的端点服务和资源。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/privatelink/images/privatelink-concepts.png)


## 提供商
<a name="concepts-service-providers"></a>

了解与提供商相关的概念。

### 服务提供商
<a name="concepts-service-provider"></a>

服务的所有者为*服务提供商*。服务提供商包括 AWS、 AWS 合作伙伴和其他 AWS 账户。服务提供商可以使用 AWS 资源（例如 EC2 实例）或使用本地服务器托管其服务。

### 资源提供商
<a name="concepts-resource-provider"></a>

资源（例如数据库或 Amazon EC2 实例）的所有者是资源提供商。资源提供者包括 AWS 服务、 AWS 合作伙伴和其他 AWS 账户。资源提供者可以将其资源托管在本地 VPCs 或本地。

**Topics**
+ [服务提供商](#concepts-service-provider)
+ [资源提供商](#concepts-resource-provider)
+ [端点服务](#concepts-endpoint-services)
+ [服务名称](#concepts-service-names)
+ [服务状态](#concepts-service-states)
+ [资源配置](#concepts-resource-configuration)
+ [资源网关](#concepts-resource-gateway)

### 端点服务
<a name="concepts-endpoint-services"></a>

服务提供商创建了*端点服务*，以使其服务在区域中可用。在创建端点服务时，服务提供商必须指定负载均衡器。负载均衡器接收来自服务使用者的请求并将请求路由到您的服务。

默认情况下，您的端点服务对服务使用者不可用。您必须添加允许特定 AWS 委托人连接到您的终端节点服务的权限。

### 服务名称
<a name="concepts-service-names"></a>

每个端点服务都由服务名称标识。在创建 VPC 端点时，服务使用者必须指定服务名称。服务使用者可以查询的服务名称 AWS 服务。服务提供商必须与服务使用者共享其服务名称。

### 服务状态
<a name="concepts-service-states"></a>

以下是端点服务可能具有的状态：
+ 待处理 - 正在创建端点服务。
+ 可用 - 端点服务可用。
+ 失败 - 无法创建端点服务。
+ 正在删除 - 服务提供商删除了端点服务，删除正在进行中。
+ 已删除 - 端点服务已删除。

### 资源配置
<a name="concepts-resource-configuration"></a>

资源提供商创建*资源配置*以共享资源。资源配置是一个逻辑对象，它代表单个资源（例如数据库）或一组资源。资源可以是 IP 地址、域名目标或 [Amazon Relational Database Service](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)（Amazon RDS）数据库。

与其他账户共享时，资源提供者必须通过 [AWS Resource Access Manager](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html)(AWS RAM) 资源共享共享资源，以允许其他账户中的特定 AWS 委托人通过资源 VPC 终端节点连接到资源。

资源配置可以与服务网络相关联，服务网络主体通过服务网络 VPC 端点连接到该服务网络。

### 资源网关
<a name="concepts-resource-gateway"></a>

资源网关是进入共享资源的 VPC 的入口点。提供商创建资源网关以共享 VPC 中的资源。

## 服务或资源使用者
<a name="concepts-service-consumers"></a>

服务或资源的用户为*服务使用者*。消费者可以从自己 VPCs 或从本地访问终端节点服务和资源。

**Topics**
+ [VPC 端点](#concepts-vpc-endpoints)
+ [端点网络接口](#concepts-endpoint-network-interfaces)
+ [端点策略](#concepts-endpoint-policies)
+ [端点状态](#concepts-endpoint-states)

### VPC 端点
<a name="concepts-vpc-endpoints"></a>

使用者可以创建 *VPC 端点*以将其 VPC 连接到端点服务或资源。在创建 VPC 端点时，使用者必须指定端点服务、资源或服务网络。VPC 端点有多种类型。您可以创建需要的 VPC 端点类型。
+ `Interface` - 创建一个*接口端点*以将 TCP 或 UDP 流量发送到端点服务。发往端点服务的流量使用 DNS 进行解析。
+ `GatewayLoadBalancer` - 创建*网关负载均衡器端点*以将流量发送到使用私有 IP 地址的虚拟设备实例集。您使用路由表将流量从您的 VPC 路由到网关负载均衡器端点。网关负载均衡器将流量分配到虚拟设备，并且可以根据需求进行扩展。
+ `Resource` - 创建*资源端点*以访问与您共享且位于其他 VPC 中的资源。资源端点可让您私有且安全地访问资源，例如数据库、Amazon EC2 实例、应用程序端点、域名目标或 IP 地址，这些资源可能位于其他 VPC 的私有子网或本地环境中。资源端点不需要负载均衡器，可让您直接访问资源。
+ `Service network` - 创建 *service-network 端点*以访问您创建或与您共享的服务网络。您可以使用单个服务网络端点私有且安全地访问与服务网络关联的多个资源和服务。

还有另一种类型的 VPC 端点 `Gateway` ，它会创建一个*网关端点*来向 Amazon S3 或 DynamoDB 发送流量。与其他类型的 VPC 终端节点不同 AWS PrivateLink，网关终端节点不使用。有关更多信息，请参阅 [网关端点](gateway-endpoints.md)。

### 端点网络接口
<a name="concepts-endpoint-network-interfaces"></a>

*端点网络接口*是一个请求者管理的网络接口，其用作发往端点服务、资源或服务网络的流量的入口点。对于您在创建 VPC 端点时指定的每个子网，我们将在子网中创建一个端点网络接口。

如果 VPC 终端节点支持 IPv4，则其终端节点网络接口具有 IPv4地址。如果 VPC 终端节点支持 IPv6，则其终端节点网络接口具有IPv6 地址。无法通过互联网访问端点网络接口 IPv6 的地址。使用地址描述端点网络接口时，请注意该 IPv6 地址已启`denyAllIgwTraffic`用。

### 端点策略
<a name="concepts-endpoint-policies"></a>

*VPC 端点策略*是一种 IAM 资源策略，您可以将其附加到接口端点。此策略确定哪些主体可以使用 VPC 端点访问端点服务。默认 VPC 端点策略允许所有主体通过 VPC 端点对所有资源执行所有操作。

### 端点状态
<a name="concepts-endpoint-states"></a>

创建接口 VPC 端点时，端点服务会收到连接请求。服务提供商可以接受或拒绝请求。如果服务提供商接受请求，则服务使用者进入“可用”状态后即可使用 VPC 端点。

以下是 VPC 端点可能具有的状态：
+ PendingAcceptance -连接请求处于待处理状态。如果手动接受请求，则此为初始状态。
+ 待处理 - 服务提供商接受了连接请求。如果自动接受请求，则此为初始状态。如果服务使用者修改 VPC 端点，则 VPC 端点将返回此状态。
+ 可用 - VPC 端点可供使用。
+ 已拒绝 – 服务提供商拒绝了连接请求。服务提供商也可以在连接可用后拒绝连接。
+ 已过期 - 连接请求已过期。
+ 失败 - VPC 端点不可用。
+ 正在删除 - 服务提供商删除了 VPC 端点，删除正在进行中。
+ 已删除 - VPC 端点已删除。

 AWS PrivateLink API 使用驼峰式大小写返回可能的状态。

## AWS PrivateLink 连接
<a name="privatelink-connections"></a>

来自您的 VPC 的流量使用 VPC 端点和端点服务或资源之间的连接发送到端点服务或资源。VPC 端点和端点服务或资源之间的流量保留在 AWS 网络内，无需遍历公有互联网。

服务提供商可添加[权限](configure-endpoint-service.md#add-remove-permissions)，以便服务使用者可以访问端点服务。服务使用者可启动连接，而服务提供商可接受或拒绝连接请求。资源所有者或服务网络所有者通过与消费者共享资源配置或服务网络， AWS Resource Access Manager 以便使用者可以访问资源或服务网络。

通过接口 VPC 端点，使用者可以使用[端点策略](vpc-endpoints-access.md)来控制哪些 IAM 主体可以使用 VPC 端点访问端点服务或资源。

## 私有托管区
<a name="concepts-private-hosted-zones"></a>

*托管区*是 DNS 记录的容器，用于定义如何路由域或子域的流量。对于*公有托管区*，记录指定如何在互联网上路由流量。对于*私有托管区域*，记录会指定如何在您的中路由流量 VPCs。

您可以配置 Amazon Route 53 以将域流量路由到 VPC 端点。有关更多信息，请参阅 [Routing traffic to a VPC endpoint using your domain name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-vpc-interface-endpoint.html)（使用域名将流量路由到 VPC 端点）。

您可以使用 Route 53 来配置水平分割 DNS，其中公共网站和由提供支持的终端节点服务使用相同的域名。 AWS PrivateLink来自使用者 VPC 的公有主机名 DNS 请求将解析到端点网络接口的私有 IP 地址，但来自 VPC 外部的请求会继续解析到公有端点。有关更多信息，请参阅[用于路由流量和为 AWS PrivateLink 部署启用失效转移的 DNS 机制](https://aws.amazon.com/blogs/apn/reviewing-dns-mechanisms-for-routing-traffic-and-enabling-failover-for-aws-privatelink-deployments/)。