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

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

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

规范和要求

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

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

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

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

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

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

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

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

  • 如果您的项目仅为本地主机提供对 Google API 的访问权限,则无需为该项目启用 Google API。

    但是,如果项目中的资源需要访问 Google API,您可能需要为它们需要访问的服务单独启用 API。如需详细了解如何使用专用 Google 访问通道访问项目中的资源,请参阅配置专用 Google 访问通道。

权限

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

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

网络配置

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

网域选项

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

private.googleapis.com 和 restricted.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 访问权限。不支持 Gmail 和 Google 文档等 Google Workspace Web 应用。不支持任何交互式网站。

与以下域名匹配的域名:

  • 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
  • *.gke.goog
  • *.gstatic.com
  • *.kernels.googleusercontent.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

使用 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,因为它会针对数据渗漏提供额外的风险缓释措施。使用 restricted.googleapis.com 可拒绝对 VPC Service Controls 不支持的 Google API 和服务的访问权限。如需了解详情,请参阅 VPC Service Controls 文档中的设置专用连接。

private.googleapis.com 和 restricted.googleapis.com 的 IPv6 支持

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

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

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

DNS 配置

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

以下部分介绍如何使用 DNS 区域将数据包发送到与所选 VIP 地址关联的 IP 地址。请按照适用于您的所有场景的相关说明操作:

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

为 googleapis.com 配置 DNS

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

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

    • 对于 private.googleapis.com:

      1. 为 private.googleapis.com 创建 A 记录,指向以下 IP 地址:199.36.153.8、199.36.153.9、199.36.153.10、199.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.4、199.36.153.5、199.36.153.6、199.36.153.7。

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

    如需在 Cloud DNS 中创建专用 DNS 记录,请参阅添加记录。

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

为其他网域配置 DNS

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

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

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

    • 对于 private.googleapis.com:

      1. 为 DOMAIN 创建 A 记录,指向以下 IP 地址:199.36.153.8、199.36.153.9、199.36.153.10、199.36.153.11。

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

    • 对于 restricted.googleapis.com:

      1. 为 DOMAIN 创建 A 记录,指向以下 IP 地址:199.36.153.4、199.36.153.5、199.36.153.6、199.36.153.7。

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

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

为 Cloud Storage 自定义域名配置 DNS

如果您使用的是 Cloud Storage 存储桶,并向 Cloud Storage 自定义域名发送请求,则将自定义 Cloud Storage 域名的 DNS 记录配置为指向 private.googleapis.com 或 restricted.googleapis.com 的 IP 地址不足以允许访问 Cloud Storage 存储桶。

如果要向 Cloud Storage 自定义域名发送请求,您还必须将 HTTP 请求的主机标头和 TLS SNI 明确设置为 storage.googleapis.com。private.googleapis.com 和 restricted.googleapis.com 的 IP 地址不支持 HTTP 请求主机标头和 TLS SNI 中的自定义 Cloud Storage 主机名。

为本地系统配置 DNS

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

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

VPC 网络路由

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

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

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

VPC 网络自定义路由

如果您替换或更改了默认路由,请确保已为 private.googleapis.com 或 restricted.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.com 或 restricted.googleapis.com 网域使用的 IP 地址范围的流量定向到 VPC 网络所连接的下一个跃点 Cloud VPN 隧道或 VLAN 连接。

您可以使用 Cloud Router 路由器自定义路由通告来通告 private.googleapis.com 和 restricted.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 隧道时,配置的 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 配置)

后续步骤