AWS API 网关私有 API 自定义域名



AWS 文档说,

私有 API 不支持自定义域名。

来源: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-private-apis.html

这到底是什么意思?我可以将自定义域名附加到私有 API。

但是,我遇到了SSL证书的问题。

API 网关有 4 个选项:

  • HTTP 接口
  • WebSockets API
  • 休息接口
  • REST API 私有

REST API私有与 REST API 相同,只是只能从 VPC 内部访问。要从 VPC 内部访问 REST API,需要一个接口 VPC 终端节点。如果您不使用接口 VPC 终端节点,则可以通过 NAT 访问 API 网关上的 REST API,该 NAT 通过互联网网关或仅通过互联网网关访问。无论哪种情况,这都是互联网上的公共 REST API。

使用 VPC 接口终端节点时,AWS 会生成自定义域名。此域名在 VPC 中用于查找终端节点并重定向到 REST API。因此,此时无法指定自己的自定义域名。可以为面向公众的 REST API 指定自定义域名。

由于无法指定自己的自定义域名,因此无法使用自己的自定义证书。

由于 VPC 接口终端节点在内部称为 API 网关,因此使用 TLS 1.2。这也不能改变。

如果要使用自己的证书,则需要定义自己的域名,并使用 API 网关中定义的面向公众的 REST API。

或者,您可以使用 VPC 内部的自定义域名,为此域名生成证书。将证书放在 NGINX 等代理服务器上,使用代理在接口端点前面。接口终端节点使用弹性网络接口 (ENI(,因此具有安全组,您可以使用安全组将流量限制为来自代理。在这种情况下,证书将驻留在代理上,TLS 将在代理服务器上终止。然后,代理服务器将通过新连接访问 REST API。

对专用终结点使用自定义域的一个选项是将(面向内部的(应用程序负载均衡器放在 API 网关前面。 将侦听器添加到 ALB 时,可以选择指定证书。然后,您将域作为 Route53 中的别名指向您的 ALB。 总结一下:

  1. 创建指向 ENI IP 地址的目标组com.amazonaws.eu-west-1.execute-api
  2. 创建面向内部的应用程序负载均衡器
  3. 将目标组添加为侦听器,指定默认 SSL/TLS 证书 与您的域。
  4. 将您的域指向 Route53 中的 ALB 别名
  5. (可选(您可以将网络负载均衡器放在您的前面 ALB,如果您需要给 ALB 一些本地地址。在这种情况下, 您将域指向本地(私有(地址,而不是 ALB 别名。创建指向 ALB 的新目标组,并将其添加为 NLB 中的侦听器。

最新更新