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

通过将流量通过 Cloud VPN 隧道或 Cloud Interconnect 连接 (VLAN) 进行路由,适用于本地主机的专用 Google 访问通道使本地系统可以连接到 Google API 和服务。适用于本地主机的专用 Google 访问通道是通过互联网连接到 Google API 和服务的替代方案。

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

技术规范和要求

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

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

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

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

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

  • 您的本地网络必须具有 private.googleapis.com 或 restricted.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 平台以及大多数其他 Google API(包括以下列表)的 API 访问权限。不支持 G Suite 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 Control。
  • 您正在使用 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 和服务的访问权限。不支持 G Suite Web 应用或 G Suite API。
使用 restricted.googleapis.com 通过一组仅可从 Google Cloud 路由的 IP 地址访问 Google API 和服务。当您需要访问 VPC Service Controls 支持的 Google API 和服务时,请选择 restricted.googleapis.comrestricted.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 地址范围列。查找与目标范围与以下范围匹配的路由:
    • 如果选择 private.googleapis.com,则为 199.36.153.8/30
    • 如果选择 restricted.googleapis.com,则为 199.36.153.4/30

gcloud

使用以下 gcloud 命令,并将 network-name 替换为本地网络连接到的 VPC 网络的名称:

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

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

  • 如果选择 private.googleapis.com,则为 199.36.153.8/30
  • 如果选择 restricted.googleapis.com,则为 199.36.153.4/30

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

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

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

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

  • 如果选择 private.googleapis.com,则为 199.36.153.8/30
  • 如果选择 restricted.googleapis.com,则为 199.36.153.4/30

控制台

要为 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 地址范围 - 指定:
      • 如果选择 private.googleapis.com,则为 199.36.153.8/30
      • 如果选择 restricted.googleapis.com,则为 199.36.153.4/30
    • 说明 - 添加说明。
  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 地址范围 - 指定:
      • 如果选择 private.googleapis.com,则为 199.36.153.8/30
      • 如果选择 restricted.googleapis.com,则为 199.36.153.4/30
    • 说明 - 添加说明。
  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 配置

后续步骤