配置专用网络访问

要设置专用网络访问,以便流量在 Google Cloud 网络内运行,您必须配置拥有 VPC 网络、Service Directory 项目以及您拥有的 Google Cloud 服务项目的项目使用。这三个项目可以是相同的,也可以是单独的项目。

  • 网络项目是 VPC 网络的项目。
  • Service Directory 项目是 Service Directory 服务的项目。 此项目可以是网络项目的共享 VPC 网络中的服务项目。
  • Google Cloud 服务项目是调用专用网络访问通道的项目。例如 Google Cloud 服务配置。

准备工作

此过程假定您已完成以下步骤。

配置网络项目

请按照以下步骤配置网络项目。

  1. 创建或使用现有 VPC 网络。自动模式和自定义模式 VPC 网络均受支持。传统网络不受支持。
  2. 如果目标是 Compute Engine 虚拟机或内部负载平衡器后端,则必须允许通过 VPC 防火墙进行入站网络以进行专用网络访问。目标必须允许相应端口(端口 44380)上的 35.199.192.0/19 的 TCP 入站流量。

  3. 向 Identity and Access Management (IAM) Service Directory 网络授予对 Google Cloud 服务项目的访问权限。请注意,Google Cloud 项目必须位于 servicedirectory.googleapis.com 的 Google Cloud 服务和 Service Directory 项目的 VPC Service Controls 边界中。

    如需详细了解 VPC Service Controls,请参阅 VPC Service Controls 概览

配置 Service Directory 项目

请按照以下步骤配置 Service Directory 项目。

  1. 在 VPC 网络中创建虚拟机内部负载平衡器
  2. 创建 Service Directory 服务,指向您在 VPC 网络中创建的虚拟机或内部负载平衡器。
  3. 授予 IAM Service Directory 网络对 Google Cloud 服务帐号的访问权限。如需详细了解角色和权限,请参阅 Service Directory 权限和角色

创建具有专用网络访问权限的端点

要创建配置了专用网络访问权限的端点,请执行以下操作:

控制台

  1. 转到 Google Cloud Console 中的“服务目录命名空间”页面。
    转到“服务目录命名空间”页面
  2. 点击命名空间。
  3. 点击相应服务。
  4. 点击 ,然后点击添加端点
  5. 提供端点名称
  6. 输入一个 IPv4 IP 地址,例如 192.0.2.0/24
  7. 输入端口号,例如 44380
  8. 如需启用专用网络访问权限,请点击从列表中选择,以便从关联的 VPC 网络下的可用网络列表中选择。
  9. 您还可以通过选择按项目和网络名称指定来提供特定的项目 ID 和网络名称。
  10. 点击创建

gcloud

运行指定项目 ID 和网络路径的 gcloud beta service-directory endpoints create 命令。

gcloud beta service-directory endpoints create ENDPOINT_NAME
    --project=PROJECT_ID \
    --location=REGION \
    --namespace=NAMESPACE_NAME \
    --service=SERVICE_ID \
    --address=IP_ADDRESS \
    --port=PORT_NUMBER \
    --network=NETWORK_PATH

请替换以下内容:

  • ENDPOINT_NAME:您在服务中创建的端点的名称,例如 my-endpoint
  • PROJECT_ID:项目的 ID
  • REGION:包含命名空间的 Google Cloud 区域
  • NAMESPACE_NAME:您提供命名空间的名称,例如 my-namespace
  • SERVICE_ID:服务的 ID
  • IP_ADDRESS:端点的 IP 地址,例如 192.0.2.0/24
  • PORT_NUMBER:运行端点的端口,通常为 44380
  • NETWORK_PATH:网络的网址,例如 projects/PROJECT_NUMBER/locations/global/networks/NETWORK_NAME

配置 Google Cloud 服务项目

  1. 启用 Google Cloud 服务 API。
  2. 使用您在网络项目中创建的 Service Directory 服务配置 Google Cloud 服务。
  3. 如果您使用的是 VPC Service Controls,请确保 VPC Service Controls 边界允许 Service Directory 访问网络项目和 Service Directory 项目。

使用场景

本部分提供了配置专用网络访问的示例用例。

当 VPC 网络、虚拟机和 Service Directory 位于同一项目中时,调用 HTTP 端点

您可以设置 Google Cloud 产品,以调用虚拟机上的 HTTP 端点。此类流量不得通过公共互联网传输。

在此设置中,您有多个项目具有 VPC 网络、虚拟机、Service Directory 服务和同一项目中的 Google Cloud 服务。

允许项目的 Google 服务配置发往属于 Google Cloud 服务项目的 VPC 网络的网络项目虚拟机
允许项目的 Google 服务配置发往属于 Google Cloud 服务项目的 VPC 网络的网络项目虚拟机 (点击放大)

如需使用专用网络访问设置 Google Cloud 产品,请按照以下步骤操作。

设置您的广告联盟和目标网络

  1. 创建项目,例如 my-project
  2. 创建 VPC 网络,例如 VPC-1 (projects/project-number/locations/global/networks/my-network)。
  3. VPC-1 授予对子网或者子网或虚拟机的代理访问权限。
  4. 允许来自 35.199.192.0/19 的入站流量。
  5. VPC-1 中的区域 us-central1 中创建 VM-1
  6. 请将其设置为在端口 P 上运行该服务。
  7. 如果您更喜欢使用 HTTPS,请确保您已安装公钥基础架构 (PKI) 传输层安全 (TLS) 证书
  8. REGION-1 中创建一个 Service Directory 服务 SD-1
  9. 在以下位置创建一个端点SD-1内部 IP 地址为VM-1=10.10.10.10P=443network=projects/project-number/global/networks/my-network 有关详细说明,请参阅创建配置了专用网络访问权限的端点中下载 Google 健身应用。
  10. 向 Google Cloud 服务帐号授予以下 IAM 角色:

    • servicedirectory.viewer
    • servicedirectory.pscAuthorizedService
  11. 您也可以设置 VM-2,并添加 Endpoint-2

设置 Google Cloud 产品

  1. 配置 Google Cloud 产品配置 CONFIG-1,例如“Cloud Scheduler,每分钟给我打电话”。
  2. 设置 HTTP 请求。
  3. 指定该请求应经由专用网络(例如,SD-1)。
  4. (可选)配置证书授权机构服务设置

现在,Google Cloud 产品可以使用 SD-1 调用 HTTP 请求。

当 VPC 网络、虚拟机和 Service 目录位于不同项目中时,调用 HTTP 端点

在此示例配置中,您希望设置 Google Cloud 服务(例如事件、任务或 Pub/Sub)来调用虚拟机上的 HTTP 端点。在此示例中,Service Directory 项目、网络项目和 Google Cloud 服务项目是不同的。此流量不得通过公共互联网传输。(可选)此 API 调用必须遵循 VPC Service Controls 边界。

在这种情况下,Google Cloud 服务项目的配置启用对 Google Cloud 服务项目虚拟机的出站流量,该虚拟机位于网络项目的 VPC 网络中。

Google Cloud 服务项目可能与生产者项目不同。系统使用了这两个项目的 VPC Service Controls 边界。

在强制执行 VPC Service Controls 边界时,使用专用网络访问发送流量
使用 VPC Service Controls 边界的专用网络访问发送流量(点击可放大)

创建网络项目

确保您拥有以下 IAM 权限:

  • servicedirectory.services.resolve(用于消息传递服务)
  • servicedirectory.networks.access 表示网络

请注意以下几点:

  • 无需连接 Service Directory 项目和网络项目,但它们必须属于相同的 VPC Service Controls。
  • 默认情况下,网络和服务会停用防火墙和 IAM。

如需创建网络项目,请按照以下步骤操作。

  1. 创建 VPC 网络,例如 VPC-1 (projects/project-number/locations/global/networks/my-network)。
  2. 启用 VPC 网络防火墙。

  3. 如果使用 VPC Service Controls ,则 VPC Service Controls 边界允许 Service Directory 连接到 Google Cloud 服务项目和 Service Directory 项目。

配置 Service Directory 项目

  1. 在 VPC 网络中创建虚拟机或内部负载平衡器。
  2. 创建指向 VPC 网络中虚拟机或内部负载平衡器的 Service Directory 服务。
  3. 授予 IAM Service Directory service read 对 Google Cloud 服务项目消息传递服务的访问权限。
  4. 如果使用 VPC Service Controls ,则 VPC Service Controls 边界允许 Service Directory 连接到 Google Cloud 服务项目和 Service Directory 项目。

配置 Google Cloud 服务项目

  1. 为您正在使用的消息传递服务启用 API。
  2. 使用 Service Directory 项目中的 Service Directory 服务配置消息传递服务 PUSH
  3. 如果使用 VPC Service Controls ,则 VPC Service Controls 边界允许 Service Directory 连接到网络项目和 Service Directory 项目。

后续步骤