AWS 服务 通过以下方式访问 AWS PrivateLink - Amazon Virtual Private Cloud

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

AWS 服务 通过以下方式访问 AWS PrivateLink

您 AWS 服务 使用终端节点访问。默认服务端点是公共接口,因此您必须向您的服务端点添加互联网网关,VPC这样流量才能从传送VPC到 AWS 服务。如果此配置不符合您的网络安全要求,则无需使用 AWS PrivateLink Internet 网关VPC,即可像在您的网络安全要求中 AWS 服务 一样进行连接。VPC

您可以使用VPC终端节点私密访问与之 AWS 服务 集 AWS PrivateLink 成的内容。您无需使用互联网网关即可构建和管理应用程序堆栈的所有层。

定价

您需要按在每个可用区配置接口VPC终端节点的每小时计费。您还需要按处理的 GB 数据付费。有关更多信息,请参阅AWS PrivateLink 定价

概述

您可以 AWS 服务 通过他们的公共服务端点进行访问,也可以 AWS 服务 使用连接到支持的终端节点 AWS PrivateLink。本概述比较了这些方法。

通过公有服务端点进行访问

下图显示了实例如何 AWS 服务 通过公共服务终端节点进行访问。 AWS 服务 从公有子网中的实例到的流量将路由到的 Internet 网关,VPC然后路由到 AWS 服务。 AWS 服务 从私有子网中的实例到的流量将路由到网NAT关,然后路由到的 Internet 网关VPC,然后再路由到。 AWS 服务当这些流量通过互联网网关时,它不会离开网络。 AWS

流向的流量VPC通过互联网网关 AWS 服务 离开您,但仍留在 AWS 网络中。
通过 Connect AWS PrivateLink

下图显示了实例是如何 AWS 服务 通过访问 AWS PrivateLink的。首先,创建接口VPC终端节点,用于在您的子网VPC和 AWS 服务 正在使用的网络接口之间建立连接。发往的 AWS 服务 流量使用解析到端点网络接口的私有 IP 地址DNS,然后使用终端节点与之间的连接发送到VPC终端节点网络接口的私有 IP 地址 AWS 服务。 AWS 服务

来自子网的流量使用接口VPC终端节点连接到 AWS 服务。

AWS 服务 自动接受连接请求。该服务无法通过VPC终端节点发起对资源的请求。

DNS主机名

大多数都 AWS 服务 提供公共区域终端节点,其语法如下。

protocol://service_code.region_code.amazonaws.com

例如,us-east-2 CloudWatch 中亚马逊的公共终端节点如下所示。

https://monitoring.us-east-2.amazonaws.com

使用 AWS PrivateLink,您可以使用私有终端节点向服务发送流量。当您创建接口VPC终端节点时,我们会创建区域和区域DNS名称,您可以使用这些名称与 AWS 服务 来自您的VPC进行通信。

您的接口VPC终端节点的区域DNS名称采用以下语法:

endpoint_id.service_id.region.vpce.amazonaws.com

区域DNS名称的语法如下:

endpoint_id-az_name.service_id.region.vpce.amazonaws.com

在为创建接口VPC终端节点时 AWS 服务,可以启用私有DNS。使用 privateDNS,您可以继续使用公有终端节点的DNS名称向服务发出请求,同时通过接口终VPC端节点利用私有连接。有关更多信息,请参阅 DNS分辨率

以下describe-vpc-endpoints命令显示接口终端节点的DNS条目。

aws ec2 describe-vpc-endpoints --vpc-endpoint-id vpce-099deb00b40f00e22 --query VpcEndpoints[*].DnsEntries

以下是启用私有DNS名称的 Amazon 接口终端节点 CloudWatch 的输出示例。第一个条目是私有区域端点。接下来的三个条目是私有分区端点。最后一个条目来自隐藏的私有托管区,该区域可将对公有端点的请求解析为端点网络接口的私有 IP 地址。

[ [ { "DnsName": "vpce-099deb00b40f00e22-lj2wisx3.monitoring.us-east-2.vpce.amazonaws.com", "HostedZoneId": "ZC8PG0KIFKBRI" }, { "DnsName": "vpce-099deb00b40f00e22-lj2wisx3-us-east-2c.monitoring.us-east-2.vpce.amazonaws.com", "HostedZoneId": "ZC8PG0KIFKBRI" }, { "DnsName": "vpce-099deb00b40f00e22-lj2wisx3-us-east-2a.monitoring.us-east-2.vpce.amazonaws.com", "HostedZoneId": "ZC8PG0KIFKBRI" }, { "DnsName": "vpce-099deb00b40f00e22-lj2wisx3-us-east-2b.monitoring.us-east-2.vpce.amazonaws.com", "HostedZoneId": "ZC8PG0KIFKBRI" }, { "DnsName": "monitoring.us-east-2.amazonaws.com", "HostedZoneId": "Z06320943MMOWYG6MAVL9" } ] ]

DNS分辨率

我们为您的接口VPC终端节点创建的DNS记录是公开的。因此,这些DNS名称是可以公开解析的。但是,来自外部的DNS请求VPC仍会返回终端节点网络接口的私有 IP 地址,因此,除非您有权访问终端节点服务,否则这些 IP 地址不能用于访问终端节点服务VPC。

私人 DNS

如果您DNS为接口VPC终端节点启用私有功能,并且同时启用VPC了DNS主机名和DNS解析,则我们会为您创建一个隐藏的 AWS托管私有托管区域。托管区域包含服务的默认DNS名称记录集,该记录集可将其解析为您的VPC终端节点网络接口的私有 IP 地址。因此,如果您的现有应用程序 AWS 服务 使用公共区域终端节点向发送请求,则这些请求现在会通过终端节点网络接口,而无需您对这些应用程序进行任何更改。

我们建议您为的VPC终端节点启用私有DNS名称 AWS 服务。这样可以确保使用公共服务终端节点的请求(例如通过的请求)解析到您的VPC终端节点。 AWS SDK

Amazon 为您提供了一个名为 R oute 53 Resolver 的DNS服务器。VPCRoute 53 解析器会自动解析本地VPC域名并在私有托管区域中进行记录。但是,你不能从外部使用 Route 53 Resolver。VPC如果您想从本地网络访问VPC终端节点,可以使用 Route 53 解析器终端节点和解析器规则。有关更多信息,请参阅AWS Transit Gateway 与 AWS PrivateLink 和集成 Amazon Route 53 Resolver

子网和可用区

您可以为每个可用区配置一个子网的VPC终端节点。我们为您子网中的终端节点创建VPC终端节点网络接口。我们根据端点的 IP 地址类型为其子网中的每个VPC端点网络接口分配 IP 地址。端点网络接口的 IP 地址在其VPC终端节点的生命周期内不会更改。

在生产环境中,为提高可用性和弹性,我们建议采取以下措施:

  • 为每个VPC终端节点配置至少两个可用区,并在这些可用区 AWS 服务 中部署必须访问的 AWS 资源。

  • 为VPC终端节点配置私有DNS名称。

  • 使用 AWS 服务 其区域DNS名称(也称为公共终端节点)进行访问。

下图显示了在单个可用区中 CloudWatch 具有VPC终端节点网络接口的 Amazon 终端节点。当任何子网中的任何资源 CloudWatch使用其公有终端节点VPC访问 Amazon 时,我们会将流量解析到终端节点网络接口的 IP 地址。这包括来自其他可用区子网的流量。但是,如果可用区 1 受损,则可用区 2 中的资源将无法访问 Amazon CloudWatch。

为单个可用区 CloudWatch 启用的 Amazon 接口VPC终端节点。

下图显示了在两个可用区中 CloudWatch 具有VPC终端节点网络接口的 Amazon 终端节点。当任何子网中的任何资源使用其公共终端节点VPC访问 Amazon CloudWatch 时,我们会选择一个健康的终端节点网络接口,使用轮询算法在它们之间切换。然后,我们会将流量解析到选定端点网络接口的 IP 地址。

适用于多个可用区域的 Ama CloudWatch zon 接口VPC终端节点。

如果它更适合您的用例,则可以通过使用同一可用区中的端点网络接口,将流量从您的资源发送到 AWS 服务 。为此,请使用端点网络接口的私有区域端点或 IP 地址。

使用私有区域VPC端点的流量接口终端节点。

IP 地址类型

AWS 服务 即使他们不支持IPv6通过其公共端点,也可以IPv6通过其私有端点提供支持。支持的端点IPv6可以用AAAA记录响应DNS查询。

IPv6为接口终端节点启用的要求
  • AWS 服务 必须使其服务端点可用IPv6。有关更多信息,请参阅 查看IPv6支持

  • 接口端点的 IP 地址类型必须与接口端点的子网兼容,如下所述:

    • IPv4— 为您的端点网络接口分配IPv4地址。仅当所有选定的子网都有IPv4地址范围时,才支持此选项。

    • IPv6— 为您的端点网络接口分配IPv6地址。仅当所有选定的子网仅为子网时,IPv6才支持此选项。

    • Dualstack — 将IPv4和IPv6地址分配给您的端点网络接口。仅当所有选定的子网同时具有IPv4和IPv6地址范围时,才支持此选项。

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