使用 VPC Service Controls 的专用 Google 访问通道

专用 Google 访问通道提供与 VPC 网络或本地网络中主机的专用连接,这些主机使用专用 IP 地址访问 Google API 和服务。您可以将 VPC Service Controls 服务边界扩展到这些网络中的主机,以控制对受保护资源的访问权限。

对于 VPC 网络中的主机,它们必须只有专用 IP 地址(没有公共 IP 地址),且位于启用了专用 Google 访问通道的子网中。

要使本地主机访问受限的 Google API 服务,对 Google API 的请求必须通过 VPC 网络(可以通过 Cloud VPN 隧道或 Cloud Interconnect 连接)发送。

在这两种情况下,对 Google API 和服务的所有请求都必须发送到虚拟 IP 地址 (VIP) 范围 199.36.153.4/30 (restricted.googleapis.com)。IP 地址范围不会公布到互联网。发送到 VIP 的流量只会留在 Google 的网络中。

VPC 网络示例

在以下示例中,服务边界包含两个项目:一个项目具有授权的 VPC 网络,另一个项目具有受保护的 Cloud Storage 资源。在 VPC 网络中,虚拟机实例必须位于启用了专用 Google 访问通道的子网中,并且只需要访问 VPC Service Controls 受限服务。从授权 VPC 网络中的虚拟机实例到 Google API 和服务的查询会解析至 restricted.googleapis.com,并且可以访问受保护的资源。

使用 VPC Service Controls 的专用 Google 访问通道(点击可放大)
使用 VPC Service Controls 的专用 Google 访问通道(点击可放大)
  • 已在 VPC 网络中配置 DNS 以将 *.googleapis.com 请求映射到解析至 199.36.153.4/30restricted.googleapis.com
  • 向 VPC 网络添加了自定义静态路由,以便将目标为 199.36.153.4/30 的流量引向作为下一个跃点的 default-internet-gateway。即使将 default-internet-gateway 用作下一个跃点,流量也会通过 Google 的网络私密地路由到相应 API 或服务。
  • VPC 网络已获得访问 My-authorized-gcs-project 的权限,因为这两个项目都位于同一服务边界内。

本地网络示例

您可以通过以下任一方式使用静态路由:在本地路由器中配置静态路由,或者从 Cloud Router 通过边界网关协议 (BGP) 公布受限 Google API 地址范围。

要将适用于本地主机的专用 Google 访问通道与 VPC Service Controls 配合使用,请为本地主机设置专用连接,然后配置 VPC Service Controls。为连接您的本地网络的 VPC 网络所属的项目定义服务边界。

在以下场景中,项目 sensitive-buckets 中的存储分区只能从项目 main-project 中的虚拟机实例和连接的本地应用访问。本地主机可以访问项目 sensitive-buckets 中的存储分区,因为流量经过的 VPC 网络与 sensitive-buckets 位于同一服务边界内。

  • 本地 DNS 配置会将 *.googleapis.com 请求映射到解析为 199.36.153.4/30restricted.googleapis.com
  • Cloud Router 已配置为通过 VPN 隧道通告 199.36.153.4/30 IP 地址范围。流向 Google API 的流量会经由隧道路由到 VPC 网络。
  • 向 VPC 网络添加了自定义静态路由,以便将目标为 199.36.153.4/30 的流量引向作为下一个跃点的 default-internet-gateway。即使将 default-internet-gateway 用作下一个跃点,流量也会通过 Google 的网络私密地路由到相应 API 或服务。
  • VPC 网络已获得访问 sensitive-buckets 项目的授权,本地主机具有相同的访问权限。
  • 本地主机无法访问位于服务边界外的其他资源。

要想访问受限资源,连接到本地网络的项目必须是该服务边界的成员。 如果相关项目通过边界网桥连接,则本地访问也会起作用。

后续步骤