

# API Gateway 中的私有 REST API
<a name="apigateway-private-apis"></a>

私有 API 是指只能从 Amazon VPC 内部调用的 REST API。您可以使用[接口 VPC 端点](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)访问 API，该端点是您在 VPC 中创建的端点网络接口。接口端点由 AWS PrivateLink 提供支持，您可以使用该技术通过私有 IP 地址私密访问 AWS。

您还可以使用 Direct Connect 建立从本地网络到 Amazon VPC 的连接，然后通过该连接访问私有 API。在所有情况下，私有 API 的流量使用安全连接，并与公共互联网隔离开来。流量不会离开 Amazon 网络。

## 私有 API 的最佳实践
<a name="apigateway-private-api-best-practices"></a>

在创建私有 API 时，我们建议您使用以下最佳实践：
+ 使用单个 VPC 端点访问多个私有 API。这样可减少您可能需要的 VPC 端点的数量。
+ 将您的 VPC 端点与您的 API 关联。这样可创建 Route 53 别名 DNS 记录，并简化调用私有 API 的过程。
+ 为您的 VPC 开启私有 DNS。当您为 VPC 开启私有 DNS 后，就可以在 VPC 内调用 API，而无需传递 `Host` 或 `x-apigw-api-id` 标头。

  如果您启用私有 DNS，则无法访问公有 API 的默认端点。要访问公有 API 的默认端点，可以关闭私有 DNS，为 VPC 中的每个私有 API 创建一个私有托管区，然后在 Route 53 中预置所需的记录。这可让私有 API 进行解析，而您仍可以从 VPC 调用公有默认端点。有关更多信息，请参阅[创建私有托管区域](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html)。
+ 将私有 API 的访问权限限制为特定 VPC 或 VPC 端点。向 API 的资源策略中添加 `aws:SourceVpc` 或 `aws:SourceVpce` 条件来限制访问权限。
+ 为了最大程度地保障数据边界的安全，您可以创建 VPC 端点策略。这可以控制对 VPC 端点的访问，从而限制调用私有 API。

## 私有 API 的注意事项
<a name="apigateway-private-api-considerations"></a>

以下注意事项可能会影响您对私有 API 的使用：
+ 仅支持 REST API。
+ 您不能将私有 API 转换为边缘优化 API。
+ 私有 API 仅支持 TLS 1.2。不支持早期 TLS 版本。
+ 如果您使用 HTTP/2 协议发出请求，则系统会强制该请求使用 HTTP/1.1 协议。
+ 您不能将私有 API 的 IP 地址类型设置为仅支持 IPv4 地址调用私有 API。仅支持双堆栈。有关更多信息，请参阅 [API Gateway 中 REST API 的 IP 地址类型](api-gateway-ip-address-type.md)。
+ 要使用私有 API 发送流量，您可以使用 Amazon VPC 支持的所有 IP 地址类型。您可以通过配置 VPC 端点上的设置，发送双堆栈和 IPv6 流量。您无法使用 API Gateway 修改此项。有关更多信息，请参阅[为 VPC 添加 IPv6 支持](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6-add.html)。
+ 私有 API 的 VPC 端点与其他接口 VPC 端点的限制相同。有关更多信息，请参阅《AWS PrivateLink Guide》**中的 [Access an AWS service using an interface VPC endpoint](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)。有关将 API Gateway 用于共享 VPC 和共享子网的更多信息，请参阅《AWS PrivateLink 指南》**中的[共享子网](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#interface-endpoint-shared-subnets)。

## 私有 API 的后续步骤
<a name="apigateway-private-api-next-steps"></a>

 要了解如何创建私有 API 以及如何关联 VPC 端点，请参阅[创建私有 API](apigateway-private-api-create.md)。要了解在 CloudFormation 中创建依赖项以及在 AWS 管理控制台中创建私有 API 的教程，请参阅[教程：创建私有 REST API](private-api-tutorial.md)。