服务的专用访问选项

Google Cloud 可提供多种专用访问选项。每个选项都允许具有内部 IP 地址的虚拟机 (VM) 实例访问特定 API 和服务。请选择支持您需要访问的 API 和服务的选项。

下表概述了每种选项。您可以配置其中一个或所有选项。这些选项独立运作,互不相关。

选项 客户端 连接 支持的服务 用途
专用 Google 访问通道
没有外部 IP 地址的 Google Cloud 虚拟机实例 通过 Virtual Private Cloud (VPC) 网络的默认互联网网关连接到标准外部 IP 地址专用 Google 访问通道网域和 VIP 以访问 Google API 和服务。 支持大多数 Google API 和服务。此外,还支持访问 App Engine 应用。 使用此选项可以连接到 Google API 和服务,无需为您的 Google Cloud 资源提供外部 IP 地址。
本地主机的专用 Google 访问权限
具有或不具有外部 IP 地址的本地主机。 使用一个特定于专用 Google 访问通道的网域和 VIP 从本地网络通过 Cloud VPN 隧道或 Cloud Interconnect 连接到 Google API 和服务。 您可以访问的 Google 服务取决于您所使用的特定于专用 Google 访问通道的网域。 使用此选项可以通过 VPC 网络连接到 Google API 和服务。此方法不要求本地主机具有外部 IP 地址。
专用服务访问通道
具有或不具有外部 IP 地址的 Google Cloud 虚拟机实例。 通过 VPC 网络对等连接连接到 Google 或第三方代管的 VPC 网络。 支持部分 Google 或第三方服务 使用此选项可以连接到特定 Google 和第三方服务,无需为您的 Google Cloud 和 Google 或第三方资源分配外部 IP 地址。
无服务器 VPC 访问通道
具有或不具有外部 IP 地址的 Google Cloud 虚拟机实例。 通过内部 VPC 连接直接从无服务器 Google 服务连接。 Cloud Run(全代管式)、App Engine 标准环境和 Cloud Functions 使用此选项可从 Google Cloud 上的无服务器环境直接连接到使用内部 IP 地址的 VPC 网络中的资源。

专用 Google 访问通道

仅具有内部 IP 地址(无外部 IP 地址)的虚拟机实例可以使用专用 Google 访问通道,从而可以访问 Google API 和服务的外部 IP 地址。数据包的源 IP 地址可以是网络接口的主要内部 IP 地址,也可以是分配给接口的别名 IP 范围内的地址。如果停用专用 Google 访问通道,则虚拟机实例将无法再访问 Google API 和服务,而只能在 VPC 网络内发送流量。

专用 Google 访问通道对具有外部 IP 地址的实例没有影响。根据互联网访问要求,具有外部 IP 地址的实例可以访问互联网。它们不需要任何特殊配置就能将请求发送到 Google API 和服务的外部 IP 地址。

您可以在子网层级启用专用 Google 访问通道;它是 VPC 网络中子网的一项设置。如需为子网启用专用 Google 访问权限并查看相关要求,请参阅配置专用 Google 访问权限

支持的服务

使用专用 Google 访问通道的实例将可以访问 Cloud API 和 Developer API 以及大多数 Google Cloud 服务,但以下服务除外

  • App Engine Memcache
  • Filestore
  • Memorystore

不过,专用服务访问通道可能支持其中一项或多项服务。

示例

以下示例中的 VPC 网络满足专用 Google 访问通道的路由要求,因为它具有通往 Google API 和服务的外部 IP 地址的路由,其下一批跃点是默认互联网网关。专用 Google 访问通道会针对 subnet-a 启用,但不会针对 subnet-b 启用。

专用 Google 访问通道的实现方式(点击可放大)

以下列表给出了有关上图的详细信息:

  • VPC 网络中的防火墙规则已配置为允许流向 0.0.0.0/0 的出站流量(或至少是流向 Google API 和服务的服务器 IP 的流量)。
  • VM A1 可以访问 Google API 和服务(包括 Cloud Storage),因为其网络接口位于已启用专用 Google 访问通道的 subnet-a 中。专用 Google 访问通道适用于该实例,因为该实例只有一个内部 IP 地址。
  • VM B1 无法访问 Google API 和服务,因为它只有内部 IP 地址,并且针对 subnet-b 停用了专用 Google 访问通道。
  • VM A2VM B2 都可以访问 Google API 和服务(包括 Cloud Storage),因为它们均具有外部 IP 地址。专用 Google 访问通道对这些实例是否可以访问 Google API 和服务没有影响,因为这些实例都具有外部 IP 地址。

本地主机的专用 Google 访问权限

本地主机通过将本地网络中的 Cloud VPNCloud Interconnect 连接到 Google Cloud,可以访问 Google API 和服务。本地主机可以从以下类型的源 IP 地址发送流量:

  • 专用 IP 地址,例如 RFC 1918 地址
  • 以非公开方式使用的公共 IP 地址,但 Google 拥有的公共 IP 地址除外(适用于本地主机的专用 Google 访问通道不支持将 Google 公共 IP 地址重复用作本地网络中的源)。

如需为本地主机启用专用 Google 访问通道,您必须在本地和 VPC 网络中配置 DNS、防火墙规则和路由。您无需像为 Google Cloud 虚拟机实例启用专用 Google 访问通道一样,为 VPC 网络中的任何子网启用专用 Google 访问通道。

本地主机必须使用 restricted.googleapis.comprivate.googleapis.com 网域的虚拟 IP 地址 (VIP) 连接到 Google API 和服务。如需了解详情,请参阅特定于专用 Google 访问通道的网域和 VIP

Google 公开发布可将网域解析为 VIP 范围的 DNS A 记录。即使范围中有外部 IP 地址,Google 也不会为其发布路由。因此,您必须在 Cloud Router 路由器上添加自定义路由通告,并在您的 VPC 网络中为 VIP 目标指定相应的自定义静态路由。

路由必须具有与其中一个 VIP 范围相匹配的目标,并且下一个跃点是默认的互联网网关。发送到 VIP 范围的流量会保留在 Google 的网络中,而不会穿越公共互联网,因为 Google 不会在外部发布目标为 VIP 范围的路由。

如需了解配置信息,请参阅为本地主机配置专用 Google 访问通道

特定于专用 Google 访问通道的网域和 VIP

下表介绍了域名及其 VIP 范围。您必须针对适用于本地主机的专用 Google 访问通道使用以下某个 VIP。

网域和 IP 地址范围 支持的服务 用法示例
默认域名

Google API 和服务的所有域名,private.googleapis.comrestricted.googleapis.com 除外。

各种 IP 地址范围,您可以通过引用默认网域的 IP 地址来确定一组默认 IP 地址使用的可能 IP 地址范围
启用对大多数 Google API 和服务的 API 访问权限,无论这些 Google API 和服务是否受 VPC Service Controls 支持。包括对 Google 地图、Google Ads、Google Cloud Platform 以及名称以 googleapis.com 结尾的大多数其他 Google API 的 API 访问权限。不支持 Google Workspace Web 应用。 如果您没有为 private.googleapis.comrestricted.googleapis.com 配置 DNS 记录,则系统会使用默认网域
private.googleapis.com

199.36.153.8/30
启用对大多数 Google API 和服务的 API 访问权限,无论这些 Google API 和服务是否受 VPC Service Controls 支持。包括对 Google 地图、Google Ads、Google Cloud Platform 以及大多数其他 Google API(包括以下列表)的 API 访问权限。不支持 Google Workspace Web 应用。

域名结尾为:
  • googleapis.com
  • googleadapis.com
  • ltsapis.goog
  • gcr.io
  • gstatic.com
  • appspot.com
  • cloudfunctions.net
  • pki.goog
  • cloudproxy.app
  • run.app
  • datafusion.googleusercontent.com
  • datafusion.cloud.google.com
主机名/域名匹配:
  • packages.cloud.google.com
  • gcr.io
  • appengine.google.com
  • pki.goog
使用 private.googleapis.com 通过一组仅可从 Google Cloud 路由的 IP 地址访问 Google API 和服务。在以下情况下选择 private.googleapis.com
  • 您没有使用 VPC Service Controls。
  • 您正在使用 VPC Service Controls,但还需要访问 VPC Service Controls 不支持的 Google API 和服务。
restricted.googleapis.com

199.36.153.4/30
启用对 VPC Service Controls 所支持的 Google API 和服务的 API 访问权限。

阻止对不支持 VPC Service Controls 的 Google API 和服务的访问权限。不支持 Google Workspace Web 应用或 Google Workspace API。
使用 restricted.googleapis.com 通过一组仅可从 Google Cloud 路由的 IP 地址访问 Google API 和服务。如果您需要访问 VPC Service Controls 支持的 Google API 和服务时,请选择 restricted.googleapis.com - restricted.googleapis.com 不允许访问不支持 VPC Service Controls 的 Google API 和服务。

支持的服务

本地主机仅可使用用于访问这些主机的域名和 VIP 所支持的服务。如需了解详情,请参阅特定于专用 Google 访问通道的网域和 VIP

示例

在以下示例中,本地网络通过 Cloud VPN 隧道连接到 VPC 网络。从本地主机到 Google API 的流量经由隧道传输到 VPC 网络。流量到达 VPC 网络后,将通过使用默认互联网网关作为下一跃点的路由发送。该下一跃点允许流量离开 VPC 网络并传送到 restricted.googleapis.com (199.36.153.4/30)。

面向混合云的专用 Google 访问通道用例(点击可放大)
  • 本地 DNS 配置会将 *.googleapis.com 请求映射到解析为 199.36.153.4/30restricted.googleapis.com
  • Cloud Router 已配置为使用自定义路由通告通过 Cloud VPN 隧道通告 199.36.153.4/30 IP 地址范围。流向 Google API 的流量会经由隧道路由到 VPC 网络。
  • 系统向 VPC 网络添加了自定义静态路由,该路由会将目的地为 199.36.153.4/30 的流量定向到默认互联网网关(作为下一个跃点)。然后,Google 会将流量路由到相应的 API 或服务。
  • 如果您针对 *.googleapis.com 创建了一个映射到 199.36.153.4/30 的 Cloud DNS 管理的专用地区,且已授权该地区供您的 VPC 网络使用,则对 googleapis.com 网域内任何内容的请求都将发送到 restricted.googleapis.com 使用的 IP 地址。通过此配置只能访问受支持的 API,这可能会导致无法访问其他服务。Cloud DNS 不支持部分替换。如果您需要使用部分替换,请使用 BIND

专用服务访问通道

Google 和第三方(统称为服务提供方)可以提供托管在 VPC 网络中且具有内部 IP 地址的服务。通过专用服务访问通道,您可以访问这些内部 IP 地址。如果您希望 VPC 网络中的虚拟机实例使用内部 IP 地址而不是外部 IP 地址,这将非常有用。如需详细了解如何使用专用服务访问通道,请参阅配置专用服务访问通道

如需使用专用服务访问通道,您必须先分配内部 IP 地址范围,然后创建专用连接。分配的范围是预留的 CIDR 块,不能在您的本地 VPC 网络中使用。它仅为服务提供方预留,可防止您的 VPC 网络与服务提供方的 VPC 网络重叠。创建专用连接时,您必须指定分配。

专用连接将您的 VPC 网络与服务提供方的 VPC 网络相链接。此连接允许 VPC 网络中的虚拟机实例使用内部 IP 地址访问具有内部 IP 地址的服务资源。您的实例可以具有外部 IP 地址,但专用服务访问通道不需要且不使用外部 IP 地址。

如果服务提供方提供多种服务,您只需要一个专用连接。创建专用连接时,您会使用 Service Networking API 进行创建。但是,Google Cloud 将此连接实现为 VPC 网络与服务提供方 VPC 网络之间的 VPC 网络对等互连连接。例如,您的 VPC 网络将其显示为对等互连连接,若要删除该专用连接,您必须删除对等互连连接。

您只能对支持专用服务访问通道的服务使用该通道。创建专用连接之前,请向服务提供方咨询。

服务提供方网络

在专用连接的服务提供方一端是一个 VPC 网络,您可以在其中预配服务资源。服务提供方的网络专门为您创建,并且仅包含您的资源。

服务提供方网络中的资源类似于您的 VPC 网络中的其他资源。例如,VPC 网络中的其他资源可以通过内部 IP 地址来对其进行访问。您还可以在 VPC 网络中创建防火墙规则,控制对服务提供方网络的访问。

如需详细了解服务提供方,请参阅 Service Infrastructure 文档中的启用专用服务访问通道。本文档仅供参考,并非启用或使用专用服务访问通道所需要。

专用服务访问通道和本地连接

在混合网络场景中,本地网络通过 Cloud VPNCloud Interconnect 连接连接到 VPC 网络。默认情况下,本地主机无法使用专用服务访问通道访问服务提供方的网络。

在 VPC 网络中,您可以使用自定义静态或动态路由将流量正确定向到本地网络。但是,服务提供方的网络不包含这些路由。创建专用连接后,VPC 网络和服务提供方网络仅交换子网路由。

您必须导出 VPC 网络的自定义路由,使服务提供方的网络可以导入这些路由,并将流量正确地路由到您的本地网络。

如需导出自定义路由,您必须创建专用连接,然后修改底层 VPC 对等互连配置以导出自定义路由。如需了解如何创建专用连接,请参阅配置专用服务访问通道。如需了解如何导出自定义路由,请参阅更新对等互连连接

支持的服务

以下 Google 服务支持专用服务访问通道:

示例

在下例中,客户 VPC 网络为 Google 服务分配了地址范围 10.240.0.0/16,并建立了一个专用连接来使用分配的范围。每个 Google 服务都利用分配的块创建一个子网,在特定区域中预配新的资源,例如 Cloud SQL 实例。

专用服务访问通道(点击可放大)
  • 分配给专用连接的分配范围是 10.240.0.0/16。通过此分配,Google 服务可以创建子网来预配新资源。
  • 在专用连接的 Google 服务端,Google 会为客户创建一个项目。该项目是独立的,这意味着没有其他客户共享该项目,并且客户只需要为客户预配的资源付费。
  • 每项 Google 服务都会创建一个子网,用于预配资源。子网的 IP 地址范围通常是服务选择的 /24 CIDR 块,来自分配的 IP 地址范围。您无法修改服务提供方的子网。服务在现有区域子网(以前由该服务创建)中预配新资源。如果子网已满,该服务便会在同一区域中创建新子网。
  • 如果服务支持,客户网络中的虚拟机实例可以访问任何区域中的服务资源。一些服务可能不支持跨区域通信。例如,虚拟机实例只能与位于同一区域的 Cloud SQL 实例进行通信。如需了解详情,请查看相关服务的文档。
  • 仍需支付跨地区流量的出站费用(此情况下,虚拟机实例与不同地区的资源进行通信)。
  • 为 Cloud SQL 实例分配的 IP 地址是 10.240.0.2。在客户 VPC 网络中,目标为 10.240.0.2 的请求会路由到专用连接,再路由到服务提供方的网络。到达服务网络后,服务网络会包含将请求定向到正确资源的路由。
  • VPC 网络之间的流量在 Google 网络内部传输,而不是通过公共互联网传输。

无服务器 VPC 访问通道

借助无服务器 VPC 访问通道,您可以从 Google Cloud 上的无服务器环境直接连接到 VPC 网络。此连接使您的无服务器环境能够通过内部 IP 地址访问 VPC 网络中的资源。

借助无服务器 VPC 访问通道,您可以在 Google Cloud 项目中创建连接器,并将其挂接到 VPC 网络。然后,您可配置无服务器服务(例如 Cloud Run 服务、App Engine 应用或 Cloud Functions),将此连接器用于内部网络流量。

无服务器 VPC 访问通道仅允许通过无服务器环境发起请求。由虚拟机发起的请求必须使用无服务器服务的外部地址;如需了解详情,请参阅专用 Google 访问通道

无服务器 VPC 访问通道不支持旧版网络。如需了解详情,请参阅配置无服务器 VPC 访问通道

支持的服务

以下 Google 服务支持无服务器 VPC 访问通道连接器:

  • Cloud Run(全代管式)
  • App Engine 标准环境
    • 除 PHP 5 之外的所有运行时
  • Cloud Functions

示例

在以下示例中,App Engine、Cloud Functions 和 Cloud Run 使用无服务器 VPC 访问通道连接器向 VPC 网络中的内部资源发送请求。

无服务器 VPC 访问通道示例(点击可放大)
无服务器 VPC 访问通道示例(点击可放大)
  • 无服务器 VPC 访问通道连接器与无服务器服务位于同一项目和区域中。
  • 连接器挂接到包含目标资源的 VPC 网络。如果您使用 VPC 网络对等互连,则连接器可以访问其他 VPC 网络和 Google Cloud 项目中的资源。
  • 为连接器分配的 IP 范围为 10.8.0.0/28。从连接器发送到目标位置的请求具有此范围内的源 IP 地址。
  • App Engine、Cloud Functions 和 Cloud Run 通过向其内部 IP 地址(10.0.0.410.1.0.2)发送请求来访问目标资源。目标资源可以位于任何区域。出站流量费用适用于从连接器发送到其他区域的资源的流量。
  • 从无服务器环境发送到内部 IP 地址的请求在内部通过无服务器 VPC 访问通道连接器传输到目标资源。发送到外部 IP 地址的请求通过互联网传输。

后续步骤