通过端点访问 Google API 的简介

本文档简要介绍用于访问 Google API 的 Private Service Connect 端点。

默认情况下,如果您有一个使用 Google 服务(例如 Cloud Storage)的应用,那么该应用将连接到该服务的默认 DNS 名称,例如 storage.googleapis.com。Google 服务的默认 DNS 名称会解析为可公开路由的 IP 地址。但是,从 Google Cloud 资源发送到这些 IP 地址的流量仍保留在 Google 的网络中。

通过 Private Service Connect,您可以使用 VPC 网络中的全局内部 IP 地址创建专用端点。您可以使用有意义的名称(例如 storage-vialink1.p.googleapis.combigtable-adsteam.p.googleapis.com)将这些 DNS 名称分配给这些内部 IP 地址。这些名称和 IP 地址均属于 VPC 网络以及通过 Cloud VPN 隧道或 VLAN 连接连接到该网络的任何本地网络的内部资源。您可以控制要将哪些流量引导至哪个端点,并且可以证明流量保留在 Google Cloud 中。

通过此选项,您可以访问 API 软件包中包含的所有 Google API 和服务。

图 1. 借助 Private Service Connect,您可以使用您的 VPC 网络专用的端点将流量发送到 Google API(点击可放大)。

功能和兼容性

下表汇总了用于访问 Google API 的端点支持的功能。

配置 详情
使用方配置(端点)
全球可达性 使用内部全球 IP 地址
Interconnect 流量
Cloud VPN 流量
自动 DNS 配置
IP 栈 IPv4
提供方
支持的服务 支持的全球 Google API

本地访问

用于访问 Google API 的 Private Service Connect 端点可以从支持的已连接本地主机进行访问。如需了解详情,请参阅从本地主机访问端点

Private Service Connect 和 Service Directory

端点会向 Service Directory 注册。Service Directory 是一个存储、管理和发布服务的平台。创建端点以访问 Google API 和服务时,您需要选择 Service Directory 区域和 Service Directory 命名空间。

Service Directory 区域

Service Directory 是一项区域级服务;您选择的区域定义了 Service Directory 控制平面所在的位置。区域之间没有功能上的差异,但出于管理原因您可能会有所偏好。

当您在 VPC 网络中为 Google API 创建第一个端点时,您选择的区域将用作该网络中创建的所有后续端点的默认区域。如果尚未为网络设置区域,并且未指定区域,则区域将设置为 us-central1。网络中的所有端点都必须使用相同的 Service Directory 区域。

Service Directory 命名空间

当您在 VPC 网络中为 Google API 创建第一个端点时,您选择的命名空间将用作该网络中创建的所有后续端点的默认命名空间。如果您尚未为网络设置命名空间,并且未指定命名空间,则使用系统生成的命名空间。网络中的所有端点都必须使用相同的 Service Directory 命名空间。您选择的命名空间只能用于访问 Google API 的端点。您可以对多个网络中的端点使用相同的命名空间。

创建端点时,系统会创建以下 DNS 配置:

  • p.googleapis.com 创建了一个 Service Directory 专用 DNS 区域

  • 系统会在 p.googleapis.com 中为一些常用 Google API 和服务(通过 Private Service Connect 提供且默认 DNS 名称以 googleapis.com 结尾)创建 DNS 记录

    如需查看在 p.googleapis.com 中为没有 DNS 记录的 API 和服务创建 DNS 记录的说明,请参阅创建 DNS 记录

可用的服务取决于您选择了 all-apis 还是 vpc-sc API 软件包

系统会为包含端点的每个 VPC 网络创建一个 Service Directory DNS 区域。

端点的 DNS 名称可以在 VPC 网络中的所有区域访问。

支持的 API

创建端点以访问 Google API 和服务时,您要选择需要访问的 API 软件包:所有 API (all-apis) 或 VPC-SC (vpc-sc):

API 软件包仅支持 TCP 上基于 HTTP 的协议(HTTP、HTTPS 和 HTTP/2)。不支持所有其他协议,包括 MQTT 和 ICMP。

API 软件包 支持的服务 用法示例
all-apis

启用对大多数 Google API 和服务的 API 访问权限,无论这些 Google API 和服务是否受 VPC Service Controls 支持。包括对 Google 地图、Google Ads、Google Cloud 以及大多数其他 Google API(包括以下列表)的 API 访问权限。不支持 Google Workspace Web 应用,例如 Gmail 和 Google 文档。不支持任何交互式网站。

与以下域名匹配的域名:

  • accounts.google.com(只有 OAuth 身份验证所需的路径)
  • *.aiplatform-notebook.cloud.google.com
  • *.aiplatform-notebook.googleusercontent.com
  • appengine.google.com
  • *.appspot.com
  • *.backupdr.cloud.google.com
  • backupdr.cloud.google.com
  • *.backupdr.googleusercontent.com
  • backupdr.googleusercontent.com
  • *.cloudfunctions.net
  • *.cloudproxy.app
  • *.composer.cloud.google.com
  • *.composer.googleusercontent.com
  • *.datafusion.cloud.google.com
  • *.datafusion.googleusercontent.com
  • *.dataproc.cloud.google.com
  • dataproc.cloud.google.com
  • *.dataproc.googleusercontent.com
  • dataproc.googleusercontent.com
  • dl.google.com
  • gcr.io*.gcr.io
  • *.googleapis.com
  • *.gstatic.com
  • *.ltsapis.goog
  • *.notebooks.cloud.google.com
  • *.notebooks.googleusercontent.com
  • packages.cloud.google.com
  • pkg.dev*.pkg.dev
  • pki.goog*.pki.goog
  • *.run.app
  • source.developers.google.com
  • storage.cloud.google.com

在以下情况下选择 all-apis

  • 您没有使用 VPC Service Controls。
  • 您正在使用 VPC Service Controls,但还需要访问 VPC Service Controls 不支持的 Google API 和服务。 1

vpc-sc

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

阻止对不支持 VPC Service Controls 的 Google API 和服务进行访问。不支持 Google Workspace API 或 Google Workspace Web 应用,例如 Gmail 和 Google 文档。

如果您需要访问 VPC Service Controls 支持的 Google API 和服务,请选择 vpc-scvpc-sc 软件包不允许访问不支持 VPC Service Controls 的 Google API 和服务。1

1如果您需要将用户限制为只可使用支持 VPC Service Controls 的 Google API 和服务,请使用 vpc-sc。虽然 VPC Service Controls 是针对兼容和已配置的服务强制执行的,但无论您使用哪个软件包,vpc-sc 都会针对数据渗漏提供额外的风险缓释措施。使用 vpc-sc 会拒绝对 VPC Service Controls 不支持的 Google API 和服务的访问权限。如需了解详情,请参阅 VPC Service Controls 文档中的设置专用连接

IP 地址要求

在 VPC 网络上配置 Private Service Connect 时,您需要提供用于端点的 IP 地址。

此地址会计入全局内部 IP 地址的项目配额

IP 地址必须符合以下规范:

  • 它必须是单个 IP 地址,而不是地址范围。

  • 输入必须是有效的 IPv4 地址它可以是 RFC 1918 地址,也可以是非 RFC 1918 地址。Private Service Connect 不支持 IPv6 地址。

  • 它不能位于 VPC 网络中配置的子网范围内。

  • 它不能位于 VPC 网络内任何子网的主要或次要 IP 地址范围内,也不能位于使用 VPC 网络对等互连的 VPC 网络内。

  • 它不能与本地 VPC 网络中的 /32 自定义静态路由重叠。例如,如果 VPC 网络具有 10.10.10.10/32 的自定义静态路由,则您不能为专用 Service Connect 预留地址 10.10.10.10

  • 如果您已将对等互连网络配置为导出自定义路由并且您已配置 VPC 网络以导入自定义路由,则 IP 地址不能与 /32 对等互连自定义静态路由重叠。

  • 如果本地 VPC 网络是自动模式网络,或者如果它与自动模式网络对等互连,则 IP 地址不得处于任何自动模式 IP 范围(在 10.128.0.0/9 中)。

  • 它不能在本地 VPC 网络中分配的 IP 范围内。但是,它可能位于对等互连 VPC 网络的已分配 IP 范围内。

  • 如果端点与目的地为 /32 的自定义动态路由重叠,则端点优先。

  • 如果端点 IP 地址位于自定义静态路由自定义动态路由对等互连自定义路由的目的地范围内,且该路由具有一个比 /32 短的子网掩码,则端点的优先级更高。

使用场景

您可以在同一 VPC 网络中创建多个端点。发送到特定端点的总带宽没有限制。由于端点使用全球内部 IP 地址,因此您的 VPC 网络或使用 Cloud VPN 隧道或 Cloud Interconnect 进行连接的本地网络中的任何资源都可以使用它们。

通过多个端点,您可以使用 Cloud Router 和防火墙规则指定不同的网络路径。

  • 您可以创建防火墙规则,以阻止某些虚拟机通过端点访问 Google API,但允许其他虚拟机访问。

  • 您可以在虚拟机实例上配置禁止流向互联网的所有流量的防火墙规则;发送到 Private Service Connect 端点的流量仍然到达 Google。

  • 如果您的本地主机使用 Cloud VPN 隧道或 VLAN 连接连接到 VPC,则您可以在通过隧道或 VLAN 发送一些请求的同时通过公共互联网发送另一些请求。此配置可以让您绕过专用 Google 访问通道不支持的服务(例如 Google 图书)的隧道或 VLAN。

    如需创建此配置,请创建一个 Private Service Connect 端点,使用 Cloud Router 路由器自定义路由通告来通告端点 IP 地址,并启用 Cloud DNS 入站转发政策。应用可以使用端点名称通过 Cloud VPN 隧道或 VLAN 连接发送一些请求,并使用默认 DNS 名称通过互联网发送其他请求。

  • 如果您使用多个 VLAN 连接将本地网络连接到 VPC 网络,则可以通过一个 VLAN 发送部分本地流量,通过其他 VLAN 发送其余流量,如图 2 所示。这样,您可以使用自己的广域网络而不是 Google 的网络,还可以控制数据移动以满足地理位置要求。

    如需创建此配置,请创建两个端点。在管理第一个 VLAN 的 Cloud Router 的 BGP 会话上为第一个端点创建自定义路由通告,并在管理第二个 VLAN 的 Cloud Router 的 BGP 会话上为第二个端点创建不同的自定义路由通告。配置为使用端点名称的本地主机通过相应的 VLAN 连接发送流量。

  • 您还可以在主动/主动拓扑中使用多个 VLAN 连接。如果您在管理 VLAN 的 Cloud Router 路由器上使用自定义路由通告为 BGP 会话通告相同的端点 IP 地址,则从本地系统发送到端点的数据包将使用 ECMP 跨 VLAN 路由。

    图 2. 通过配置 Private Service Connect、Cloud Router 和本地主机,您可以控制使用哪个 VLAN 连接将流量发送到 Google API。

价格

如需了解 Private Service Connect 的价格,请参阅 VPC 价格页面

配额

您可以创建用于访问 Google API 的 Private Service Connect 端点的数量由 PSC Google APIs Forwarding Rules per VPC Network 配额控制。如需了解详情,请参阅配额

组织政策限制条件

Organization Policy Administrator 可以使用 constraints/compute.disablePrivateServiceConnectCreationForConsumers 限制条件来定义一组端点类型,以禁止用户为这些类型的端点创建转发规则。

如需了解如何创建使用此限制条件的组织政策,请参阅禁止使用方按连接类型部署端点

后续步骤