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

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

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

规范和要求

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

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

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

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

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

  • 本地网络所连接的 VPC 网络必须具有适当的路由才能访问本地网络。为这些路由连接到您的本地网络的下一个跃点 Cloud VPN 隧道或 VLAN 连接必须位于发出请求的区域内。如果下一个跃点位于与发出专用 Google 访问通道请求不同的区域,则来自专用 Google 访问通道的响应将不会到达本地网络。

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

  • 如需允许本地环境中的 IPv6 客户端使用 private.googleapis.comrestricted.googleapis.com 访问 Google API,您必须配置与 VPC 网络的连接以支持 IPv6。如需了解详情,请参阅以下页面:

  • 本地客户端可以从任何 IPv6 GUA 或 ULA 地址发送请求,但 ULA 范围 fda3:e722:ac3:cc00::/64 除外,该范围预留供内部使用。

权限

拥有 Network Admin 角色的项目 Owner、Editor 和 IAM 主账号可以创建或更新子网并分配 IP 地址。

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

网络配置

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

网域选项

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

private.googleapis.comrestricted.googleapis.com VIP 仅支持 TCP 上基于 HTTP 的协议(HTTP、HTTPS 和 HTTP/2)。不支持所有其他协议,包括 MQTT 和 ICMP。

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

private.googleapis.com

199.36.153.8/30

2600:2d00:0002:2000::/64

启用对大多数 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

使用 private.googleapis.com 通过一组仅可从 Google Cloud 路由的 IP 地址访问 Google API 和服务。

在以下情况下选择 private.googleapis.com

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

restricted.googleapis.com

199.36.153.4/30

2600:2d00:0002:1000::/64

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

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

使用 restricted.googleapis.com 通过一组仅可从 Google Cloud 路由的 IP 地址访问 Google API 和服务。

如果您需要访问 VPC Service Controls 支持的 Google API 和服务,请选择 restricted.googleapis.com

restricted.googleapis.com 网域不允许访问不支持 VPC Service Controls 的 Google API 和服务。1

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

private.googleapis.comrestricted.googleapis.com 的 IPv6 支持

以下 IPv6 地址范围可用于将来自 IPv6 客户端的流量定向到 Google API 和服务:

  • private.googleapis.com2600:2d00:0002:2000::/64
  • restricted.googleapis.com2600:2d00:0002:1000::/64

如果您要使用 private.googleapis.comrestricted.googleapis.com 网域,并且具有使用 IPv6 地址的客户端,请考虑配置 IPv6 地址。同时配置了 IPv4 地址的 IPv6 客户端可以使用 IPv4 地址访问 Google API 和服务。并非所有服务都接受来自 IPv6 客户端的流量。

DNS 配置

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

以下部分介绍如何使用 DNS 区域将数据包发送到与所选 VIP 地址关联的 IP 地址。

为 VIP 配置 DNS 记录时,请仅使用以下步骤中说明的 IP 地址。请勿混用 private.googleapis.comrestricted.googleapis.com VIP 中的地址;这样做可能会导致间歇性故障,因为系统提供的服务会因数据包的目的地而异。

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

  1. googleapis.com 创建专用 DNS 区域。为此,请考虑创建 Cloud DNS 专用区域
  2. googleapis.com 区域中,根据您选择使用的网域,为 private.googleapis.comrestricted.googleapis.com 创建以下 DNS 记录。

    • 对于 private.googleapis.com

      1. private.googleapis.com 创建 A 记录,指向以下 IP 地址:199.36.153.8199.36.153.9199.36.153.10199.36.153.11

      2. 如需使用 IPv6 地址连接到 API,还要为 private.googleapis.com 配置 AAAA 记录,指向 2600:2d00:0002:2000::

    • 对于 restricted.googleapis.com

      1. restricted.googleapis.com 创建 A 记录,指向以下 IP 地址:199.36.153.4199.36.153.5199.36.153.6199.36.153.7

      2. 如需使用 IPv6 地址连接到 API,还要为 restricted.googleapis.com 创建 AAAA 记录,指向 2600:2d00:0002:1000::

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

  3. googleapis.com 区域中,为 *.googleapis.com 创建 CNAME 记录,指向您已配置的网域:private.googleapis.comrestricted.googleapis.com

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

  1. DOMAIN 创建 DNS 区域(例如 gcr.io)。如果您使用的是 Cloud DNS,请确保此区域与您的 googleapis.com 专用区域位于同一项目中。

  2. 在此 DNS 区域中,根据您选择使用的网域,为 private.googleapis.comrestricted.googleapis.com 创建以下 DNS 记录:

    • 对于 private.googleapis.com

      1. DOMAIN 创建 A 记录,指向以下 IP 地址:199.36.153.8199.36.153.9199.36.153.10199.36.153.11

      2. 如需使用 IPv6 地址连接到 API,还要为 DOMAIN 创建 AAAA 记录,指向 2600:2d00:0002:2000::

    • 对于 restricted.googleapis.com

      1. DOMAIN 创建 A 记录,指向以下 IP 地址:199.36.153.4199.36.153.5199.36.153.6199.36.153.7

      2. 如需使用 IPv6 地址连接到 API,还要为 restricted.googleapis.com 创建 AAAA 记录,指向 2600:2d00:0002:1000::

  3. DOMAIN 区域中,为 *.DOMAIN 创建一个 CNAME 记录,指向 DOMAIN。例如,为 *.gcr.io 创建一个 CNAME 记录,指向 gcr.io

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

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

VPC 网络路由

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

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

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

VPC 网络自定义路由

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

控制台

  1. 在 Google Cloud 控制台中,转到路由页面。

    进入“路由”

  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 隧道或 VLAN 连接。

您可以使用 Cloud Router 路由器自定义路由通告来通告 private.googleapis.comrestricted.googleapis.com 网域使用的 IP 地址范围的路由。

IPv6 路由仅在启用了 IPv6 的 BGP 会话中通告。

控制台

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

  1. 在 Google Cloud 控制台中,前往 Cloud Router 路由器页面。

    前往“Cloud Router 路由器”

  2. 针对将您的本地网络连接到 VPC 网络的 Cloud VPN 隧道或 VLAN 连接,选择管理其 BGP 会话的 Cloud Router 路由器。

  3. 在 Cloud Router 路由器的详情页面中,选择修改

  4. 展开通告的路由部分。

  5. 对于路由,选择创建自定义路由

  6. 如果要通告 Cloud Router 路由器所有可用的子网路由,请选择通告向 Cloud Router 公开的所有子网。此设置会将默认配置复制到您的自定义配置。

  7. 对于要添加的每个通告路由,请执行以下操作:

    1. 选择添加自定义路由
    2. 对于来源,选择自定义 IP 范围
    3. 对于 IP 地址范围,输入您要使用的范围之一:
      • 如果您使用 private.googleapis.com
        • 对于 IPv4 连接:199.36.153.8/30
        • 对于 IPv6 连接:2600:2d00:0002:2000::/64
      • 如果您使用 restricted.googleapis.com
        • 对于 IPv4 连接:199.36.153.4/30
        • 对于 IPv6 连接:2600:2d00:0002:1000::/64
    4. 点击完成
  8. 添加完路由后,选择保存

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

  1. 在 Google Cloud 控制台中,前往 Cloud Router 路由器页面。

    前往“Cloud Router 路由器”

  2. 针对将您的本地网络连接到 VPC 网络的 Cloud VPN 隧道或 VLAN 连接,选择管理其 BGP 会话的 Cloud Router 路由器。

  3. 在 Cloud Router 路由器的详情页面中,选择要更新的 BGP 会话。

  4. 在 BGP 会话详情页面中,点击修改

  5. 对于路由,选择创建自定义路由

  6. 如果您想要使用 Cloud Router 路由器的默认行为,请选择通告向 Cloud Router 路由器公开的所有子网以通告 Cloud Router 路由器所有可用的子网路由。

  7. 对于要添加的每个通告路由,请执行以下操作:

    1. 选择添加自定义路由
    2. 对于来源,选择自定义 IP 范围
    3. 对于 IP 地址范围,输入您要使用的范围之一:
      • 如果您使用 private.googleapis.com
        • 对于 IPv4 连接:199.36.153.8/30
        • 对于 IPv6 连接:2600:2d00:0002:2000::/64
      • 如果您使用 restricted.googleapis.com
        • 对于 IPv4 连接:199.36.153.4/30
        • 对于 IPv6 连接:2600:2d00:0002:1000::/64
    4. 点击完成
  8. 添加完路由后,选择保存

gcloud

  1. 针对将您的本地网络连接到 VPC 网络的 Cloud VPN 隧道或 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 对等端:

    如果您要添加 IPv6 自定义范围,并且为 BGP 会话停用了 IPv6 流量,则可以使用 --enable-ipv6 标志启用它。

    gcloud compute routers update-bgp-peer 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 通告模式,则可以附加新的通告范围

    如果您要添加 IPv6 自定义范围,并且为 BGP 会话停用了 IPv6 流量,则可以使用 --enable-ipv6 标志启用它。

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

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

    • ROUTER_NAME:Cloud Router 路由器的名称
    • REGION:Cloud Router 路由器的区域
    • PEER_NAME为专用互连创建 VLAN 连接 时、为合作伙伴互连创建 VLAN 连接 时、创建高可用性 VPN 隧道时或使用动态路由创建传统 VPN 隧道时,配置的 BGP 对等端的名称。
    • 保留 --set-advertisement-groups=ALL_SUBNETS 以通告 Cloud Router 路由器所有可用的子网路由。这是 Cloud Router 路由器的默认行为。
    • CUSTOM_RANGES:要通告的自定义范围列表(以英文逗号分隔)。
      • 对于 private.googleapis.com
        • 对于 IPv4 连接:199.36.153.8/30
        • 对于 IPv4 和 IPv6 连接:199.36.153.8/30,2600:2d00:0002:2000::/64
      • 对于 restricted.googleapis.com
        • 对于 IPv4 连接:199.36.153.4/30
        • 对于 IPv4 和 IPv6 连接:199.36.153.4/30,2600:2d00:0002:1000::/64

防火墙注意事项

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

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

您应确保本地系统的防火墙配置允许发往相应 IP 地址的出站流量和来自相应 IP 地址的已建立响应:

  • 如果您使用 private.googleapis.com
    • 对于 IPv4 连接:199.36.153.8/30
    • 对于 IPv6 连接:2600:2d00:0002:2000::/64
  • 如果您使用 restricted.googleapis.com
    • 对于 IPv4 连接:199.36.153.4/30
    • 对于 IPv6 连接:2600:2d00:0002:1000::/64
  • 任何 Cloud DNS 入站转发器 IP 地址(如果您使用 Cloud DNS 进行 DNS 配置

后续步骤