为本地主机配置专用 Google 访问通道

通过 Cloud VPN 隧道或 Cloud Interconnect 连接 (VLAN) 路由流量,本地主机的专用 Google 访问通道提供了一种让本地系统可以连接到 Google API 和服务的方法。本地主机的专用 Google 访问通道是通过互联网连接到 Google API 和服务的替代方案。

本文档介绍如何为本地主机启用专用 Google 访问通道。

这些说明也适用于 Bare Metal 解决方案地区扩展中的主机。除了在 DNS 配置部分中引用域名服务器外,这些说明中的术语“本地”等效于“Bare Metal 解决方案”。对于 DNS 域名服务器,您使用的 DNS 域名服务器可以是您在实际本地环境中的专属企业服务器、Google Cloud 上的 DNS 域名服务器,或者是公共 DNS 域名服务器(如果您允许 Bare Metal 解决方案机器连接到互联网)。

规范和要求

本地主机的专用 Google 访问通道有以下要求:

  • 专用 Google 访问通道不会自动启用任何 API。您必须通过 Google Cloud Console 中的“API 和服务”页面单独启用 Google API

  • 您必须将本地系统发送的 Google API 和服务流量定向到与 private.googleapis.comrestricted.googleapis.com 特殊域名关联的 IP 地址。请参阅网域选项,详细了解每个网域上可以访问的服务。

  • 您的本地网络必须使用 Cloud VPN 隧道或 Cloud Interconnect 连接 (VLAN) 连接到 VPC 网络

  • 本地网络连接的 VPC 网络必须具有 private.googleapis.comrestricted.googleapis.com 目标 IP 范围的相应路由。如需了解详情,请参阅 VPC 网络路由

  • 您的本地网络必须具有 private.googleapis.comrestricted.googleapis.com 目标 IP 范围的路由。这些路由必须将流量定向到连接到您的 VPC 网络的相应 Cloud VPN 隧道或 Cloud Interconnect 连接 (VLAN)。如需了解详情,请参阅使用 Cloud Router 路由器进行本地路由

权限

拥有网络管理员角色的项目所有者、编辑者和 IAM 成员可以创建或更新子网并分配 IP 地址。

如需详细了解角色,请参阅 IAM 角色文档。

网络配置

本地主机的专用 Google 访问通道对本地系统和本地系统向 Google API 和服务发送流量经过的 VPC 网络具有特定的网络要求

网域选项

本地主机的专用 Google 访问通道要求您将服务定向到以下特殊网域之一。您选择的特殊网域决定了您可以访问的服务:

  • private.googleapis.com (199.36.153.8/30) 提供对大多数 Google API 和服务的访问权限,包括支持 VPC Service Controls 以及不支持 VPC Service Controls 的 Cloud API 和 Developer API。在您配置服务边界时,系统会强制执行 VPC Service Controls。

  • restricted.googleapis.com (199.36.153.4/30) 仅提供对支持 VPC Service Controls 的 Cloud API 和 Developer API 的访问权限。如果您已配置服务边界,则系统会对这些服务强制执行 VPC Service Controls。禁止访问任何不支持 VPC Service Controls 的 Google API 或服务。

网域和 IP 地址范围 支持的服务 用法示例
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 和服务。

DNS 配置

您的本地网络必须配置 DNS 区域和记录,以便 Google 域名解析为 private.googleapis.comrestricted.googleapis.com 的 IP 地址集。您可以创建 Cloud DNS 代管专用区域并使用 Cloud DNS 入站服务器政策,也可以配置本地域名服务器。例如,您可以使用 BINDMicrosoft Active Directory DNS

*.googleapis.com 创建 DNS 区域和记录:

  1. googleapis.com 创建 DNS 区域。为此,请考虑创建 Cloud DNS 专用区域
  2. googleapis.com 区域中,根据所选网域创建以下 A 记录之一:

    • private.googleapis.comA 记录,指向以下 IP 地址:199.36.153.8199.36.153.9199.36.153.10199.36.153.11
    • restricted.googleapis.comA 记录,指向以下 IP 地址:199.36.153.4199.36.153.5199.36.153.6199.36.153.7

    如果您使用的是 Cloud DNS,请在 googleapis.com 专用区域中添加记录

  3. googleapis.com 区域中,为指向您在上一步中创建的 A 记录的 *.googleapis.com 创建 CNAME 记录。

某些 Google API 和服务是使用其他域名提供,其中包括 *.gcr.io*.gstatic.compki.goog。请参阅网络要求中的“网域和 IP 地址范围表”,以确定是否可以使用 private.googleapis.comrestricted.googleapis.com 访问其他网域的服务。接下来,对于每个其他网域,请执行以下操作:

  1. 为其他网域创建 DNS 区域(例如 gcr.io)。如果您使用的是 Cloud DNS,请确保此区域与您的 googleapis.com 专用区域位于同一项目中。
  2. 在此 DNS 区域中:
    • 为网域(区域)名称本身创建 A 记录;例如 gcr.io。将此 A 记录指向您选择的自定义域名(private.googleapis.comrestricted.googleapis.com)对应的四个 IP 地址。
    • 为其他网域的所有可能的主机名创建 CNAME 记录,格式为一个星号和一个点后跟网域(区域)名称,例如 *.gcr.io。将此 CNAME 记录指向同一区域中的 A 记录。例如,将 *.gcr.io 指向 gcr.io

如果您已使用 Cloud DNS 实现 DNS 配置,则需要配置本地系统,以便它们可以对您的 Cloud DNS 代管专用区域进行查询:

  • 在本地网络连接到的 VPC 网络中,创建入站服务器政策
  • 在您的本地网络所连接的 VPC 网络中,于您的 Cloud VPN 隧道和 Cloud Interconnect 连接 (VLAN) 所在的地区找到入站转发器入口点
  • 配置本地系统和本地 DNS 域名服务器,以将 googleapis.com 和任何其他域名转发到 VPC 网络所连接的 Cloud VPN 隧道或 Cloud Interconnect 连接 (VLAN) 所在地区中的入站转发器入口点

VPC 网络路由

您的本地网络所连接的 VPC 网络必须具有 private.googleapis.comrestricted.googleapis.com 使用的 IP 地址范围的路由。这些路由必须使用默认互联网网关的下一个跃点。

对于 private.googleapis.comrestricted.googleapis.com 网域使用的 IP 地址范围,Google 不会在互联网上发布路由。因此,即使 VPC 网络中的路由将流量发送到默认互联网网关的下一个跃点,发送到 199.36.153.8/30199.36.153.4/30 的数据包仍会保留在 Google 网络中。

如果您的本地网络所连接的 VPC 网络包含默认路由,其下一个跃点是默认互联网网关,则该路由满足本地主机的专用 Google 访问通道的路由要求。

VPC 网络自定义路由

如果您替换或更改了默认路由,请确保已为 private.googleapis.comrestricted.googleapis.com 使用的目标 IP 范围配置了自定义静态路由。如需检查给定网络中 Google API 和服务的自定义路由配置,请按照以下说明操作。

控制台

  1. 转到 Google Cloud Console 中的“路由”页面。
    转到“路由”页面
  2. 使用“过滤表”文本字段根据以下条件过滤路由列表,需将 NETWORK_NAME 替换为本地网络所连接的 VPC 网络的名称:
    • 网络:NETWORK_NAME
    • 下一个跃点类型:default internet gateway
  3. 查看每个路由的“目标 IP 范围”列。查找与其目标范围与以下范围匹配的路由:
    • 199.36.153.8/30(如果您选择了 private.googleapis.com
    • 199.36.153.4/30(如果您选择了 restricted.googleapis.com

gcloud

使用以下 gcloud 命令,需将 NETWORK_NAME 替换为本地网络所连接的 VPC 网络的名称:

gcloud compute routes list \
    --filter="default-internet-gateway NETWORK_NAME"

除非您使用 --format 标志自定义命令,否则路由以表格式列出。在 DEST_RANGE 列中查找其目标范围与以下范围匹配的路由:

  • 199.36.153.8/30(如果您选择了 private.googleapis.com
  • 199.36.153.4/30(如果您选择了 restricted.googleapis.com

如果您需要在 VPC 网络中创建路由,请参阅添加静态路由

使用 Cloud Router 路由器进行本地路由

本地网络中的路由必须配置为将 private.googleapis.comrestricted.googleapis.com 网域使用的 IP 地址范围的流量定向到 VPC 网络所连接的下一个跃点 Cloud VPN 隧道或 Cloud Interconnect 连接 (VLAN)。

您可以使用 Cloud Router 路由器自定义路由通告通告以下目标的路由:

  • 199.36.153.8/30(如果您选择了 private.googleapis.com
  • 199.36.153.4/30(如果您选择了 restricted.googleapis.com

控制台

如需为 Cloud Router 路由器上的所有 BGP 会话更新路由通告模式(使用自定义 BGP 通告的 BGP 会话本身除外),请执行以下操作

  1. 转到 Google Cloud Console 中的“Cloud Router 路由器”页面。
    Cloud Router 路由器列表
  2. 针对将您的本地网络连接到 VPC 网络的 Cloud VPN 隧道或 Cloud Interconnect 连接 (VLAN),选择管理其 BGP 会话的 Cloud Router 路由器。
  3. 在 Cloud Router 路由器的详情页面中,选择修改
  4. 展开通告的路由部分。
  5. 对于路由,选择创建自定义路由
  6. 如果您想要使用 Cloud Router 路由器的默认行为,请选择通告向 Cloud Router 路由器公开的所有子网以通告 Cloud Router 路由器所有可用的子网路由。
  7. 选择添加自定义路由以添加通告路由。
  8. 配置路由通告。
    • 来源 - 选择自定义 IP 范围以指定自定义 IP 范围。
    • IP 地址范围 - 指定:
      • 199.36.153.8/30(如果您选择了 private.googleapis.com
      • 199.36.153.4/30(如果您选择了 restricted.googleapis.com
    • 说明 - 添加说明。
  9. 添加完路由后,选择保存

如需更新特定 BGP 会话的路由通告模式,请执行以下操作:

  1. 转到 Google Cloud Console 中的“Cloud Router 路由器”页面。
    Cloud Router 路由器列表
  2. 针对将您的本地网络连接到 VPC 网络的 Cloud VPN 隧道或 Cloud Interconnect 连接 (VLAN),选择管理其 BGP 会话的 Cloud Router 路由器。
  3. 在 Cloud Router 路由器的详情页面中,选择要更新的 BGP 会话。
  4. 在 BGP 会话详情页面中,点击修改
  5. 对于路由,选择创建自定义路由
  6. 如果您想要使用 Cloud Router 路由器的默认行为,请选择通告向 Cloud Router 路由器公开的所有子网以通告 Cloud Router 路由器所有可用的子网路由。
  7. 选择添加自定义路由以添加通告路由。
  8. 配置路由通告。
    • 来源 - 选择自定义 IP 范围以指定自定义 IP 范围。
    • IP 地址范围 - 指定:
      • 199.36.153.8/30(如果您选择了 private.googleapis.com
      • 199.36.153.4/30(如果您选择了 restricted.googleapis.com
    • 说明 - 添加说明。
  9. 添加完路由后,选择保存

gcloud

  1. 针对将您的本地网络连接到 VPC 网络的 Cloud VPN 隧道或 Cloud Interconnect 连接 (VLAN),找到管理其 BGP 会话的 Cloud Router 路由器的名称和地区。

  2. 使用 compute routers update 针对 Cloud Router 路由器的所有 BGP 会话更新路由通告模式,但使用自定义 BGP 通告的 BGP 会话本身除外:

    gcloud compute routers update ROUTER_NAME \
        --region=REGION \
        --advertisement-mode=CUSTOM \
        --set-advertisement-groups=ALL_SUBNETS \
        --set-advertisement-ranges=CUSTOM_RANGES
    

    如果您已对 Cloud Router 路由器使用 CUSTOM 通告模式,则可以附加新的通告范围。这将针对 Cloud Router 路由器的所有 BGP 会话更新路由通告模式,但使用自定义 BGP 通告的 BGP 会话本身除外:

    gcloud compute routers update ROUTER_NAME \
        --region=REGION \
        --add-advertisement-ranges=CUSTOM_RANGES
    
  3. 或者,使用 compute routers update-bgp-peer 在 Cloud Router 路由器上配置特定的 BGP 对等端:

    gcloud compute routers update ROUTER_NAME \
        --region=REGION \
        --peer-name=PEER_NAME \
        --advertisement-mode=CUSTOM \
        --set-advertisement-groups=ALL_SUBNETS \
        --set-advertisement-ranges=CUSTOM_RANGES
    

    如果您已对 Cloud Router 路由器上的 BGP 会话使用 CUSTOM 通告模式,则可以附加新的通告范围

    gcloud compute routers update ROUTER_NAME \
        --region=REGION \
        --peer-name=PEER_NAME \
        --add-advertisement-ranges=CUSTOM_RANGES
    

    在上述命令中,将以下内容替换为有效值:

防火墙注意事项

您的本地网络所连接的 VPC 网络中的 Google Cloud 防火墙规则对以下各项没有影响:

  • 通过 VPC 网络所连接的 Cloud VPN 隧道发送的数据包
  • 通过 VPC 网络所连接的 Cloud Interconnect 连接 (VLAN) 发送的数据包
  • 通向 VPC 网络中 Cloud DNS 入站转发器 IP 地址的传入数据包

您应确保本地系统的防火墙配置允许发往以下目标的出站流量和来自以下来源的已建立的响应:

  • 199.36.153.8/30(如果您使用 private.googleapis.com
  • 199.36.153.4/30(如果您使用 restricted.googleapis.com
  • 任何 Cloud DNS 入站转发器 IP 地址(如果您使用 Cloud DNS 进行 DNS 配置

后续步骤