配置专用服务访问通道

专用服务访问通道是一种安全的专用连接,可将您的 Google Cloud 虚拟私有云 (VPC) 网络与 Google 代管式服务或第三方服务连接起来。这样,您的 VPC 网络中的虚拟机实例就可以使用内部 IP 地址与这些服务通信,而无需将流量公开到公共互联网。

准备工作

如需建立专用连接,请先满足以下前提条件:

  • 您必须有一个可用于接入服务提供方网络的现有 VPC 网络。虚拟机实例必须使用此 VPC 网络通过专用连接接入服务。
  • 按照 Live Stream API 准备工作页面上的步骤操作,创建正确配置的 Google Cloud 项目(或选择现有项目)。

为 Live Stream API 启用专用服务访问通道

Virtual Private Cloud 文档中提供了配置专用服务访问通道的一般流程。本页将介绍如何将该流程调整为适用于 Live Stream API。

  1. 安装并配置 Google Cloud CLI

  2. 启用 Service Networking API。

    执行以下命令:

    Linux、macOS 或 Cloud Shell

    gcloud services enable servicenetworking.googleapis.com

    Windows (PowerShell)

    gcloud services enable servicenetworking.googleapis.com

    Windows (cmd.exe)

    gcloud services enable servicenetworking.googleapis.com

  3. 如需获得设置专用连接所需的权限,请让您的管理员为您授予 VPC 网络所在的 Google Cloud 项目的 Compute Engine Network Admin (roles/compute.networkAdmin) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限

    您也可以通过自定义角色或其他预定义角色来获取所需的权限。

  4. 在 VPC 网络中,使用 addresses create 命令分配一个已命名的 IP 范围,如以下示例所示。

    如需指定地址范围和前缀长度(即子网掩码),请使用 addressesprefix-length 标志。例如,如需分配 CIDR 块 192.168.0.0/13,请将地址指定为 192.168.0.0,并将前缀长度指定为 13

    在使用下面的命令数据之前,请先进行以下替换:

    • RESERVED_RANGE_NAME:已分配范围的名称,例如 my-allocated-range
    • DESCRIPTION:对该范围的描述,例如 allocated for my-service
    • VPC_NETWORK:您的 VPC 网络的名称,例如 my-vpc-network

    执行以下命令:

    Linux、macOS 或 Cloud Shell

    gcloud compute addresses create RESERVED_RANGE_NAME \
        --global \
        --purpose=VPC_PEERING \
        --addresses=192.168.0.0 \
        --prefix-length=13 \
        --description="DESCRIPTION" \
        --network=VPC_NETWORK

    Windows (PowerShell)

    gcloud compute addresses create RESERVED_RANGE_NAME `
        --global `
        --purpose=VPC_PEERING `
        --addresses=192.168.0.0 `
        --prefix-length=13 `
        --description="DESCRIPTION" `
        --network=VPC_NETWORK

    Windows (cmd.exe)

    gcloud compute addresses create RESERVED_RANGE_NAME ^
        --global ^
        --purpose=VPC_PEERING ^
        --addresses=192.168.0.0 ^
        --prefix-length=13 ^
        --description="DESCRIPTION" ^
        --network=VPC_NETWORK

    您应该会收到类似如下所示的响应:

    Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses/RESERVED_RANGE_NAME].

    如需仅指定前缀长度,请使用 prefix-length 标志。如果您省略地址范围,则 Google Cloud 会自动选择您的 VPC 网络中未使用的地址范围。以下示例选择的是前缀长度为 13 位的未使用的 IP 地址范围。

    在使用下面的命令数据之前,请先进行以下替换:

    • RESERVED_RANGE_NAME:已分配范围的名称,例如 my-allocated-range
    • DESCRIPTION:对该范围的描述,例如 allocated for my-service
    • VPC_NETWORK:您的 VPC 网络的名称,例如 my-vpc-network

    执行以下命令:

    Linux、macOS 或 Cloud Shell

    gcloud compute addresses create RESERVED_RANGE_NAME \
        --global \
        --purpose=VPC_PEERING \
        --prefix-length=13 \
        --description="DESCRIPTION" \
        --network=VPC_NETWORK

    Windows (PowerShell)

    gcloud compute addresses create RESERVED_RANGE_NAME `
        --global `
        --purpose=VPC_PEERING `
        --prefix-length=13 `
        --description="DESCRIPTION" `
        --network=VPC_NETWORK

    Windows (cmd.exe)

    gcloud compute addresses create RESERVED_RANGE_NAME ^
        --global ^
        --purpose=VPC_PEERING ^
        --prefix-length=13 ^
        --description="DESCRIPTION" ^
        --network=VPC_NETWORK

    您应该会收到类似如下所示的响应:

    Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses/RESERVED_RANGE_NAME].

    上述示例展示了如何创建与 Google 的专用连接,以便所提供 VPC 网络(例如 my-vpc-network)中的虚拟机实例可以使用专用服务访问通道来访问支持专用连接的 Google 服务。

    Live Stream API 要求为每个区域分配一个 CIDR/13 块。如果您计划在多个区域使用 Live Stream API,请分配更大的分块。下表介绍了根据区域数量建议分配的块大小:

    区域数量prefix-length 标志的值
    113
    212
    3-411
    5-810
    7-169
  5. 在服务提供方网络与您的 VPC 网络之间创建专用连接:

    1. 创建专用连接。

      在使用下面的命令数据之前,请先进行以下替换:

      • RESERVED_RANGE_NAME:您在上一步中创建的分配范围的名称
      • VPC_NETWORK:您的 VPC 网络的名称
      • PROJECT_ID:包含 VPC 网络的项目的 Google Cloud 项目 ID

      执行以下命令:

      Linux、macOS 或 Cloud Shell

      gcloud services vpc-peerings connect \
          --service=servicenetworking.googleapis.com \
          --ranges=RESERVED_RANGE_NAME \
          --network=VPC_NETWORK \
          --project=PROJECT_ID

      Windows (PowerShell)

      gcloud services vpc-peerings connect `
          --service=servicenetworking.googleapis.com `
          --ranges=RESERVED_RANGE_NAME `
          --network=VPC_NETWORK `
          --project=PROJECT_ID

      Windows (cmd.exe)

      gcloud services vpc-peerings connect ^
          --service=servicenetworking.googleapis.com ^
          --ranges=RESERVED_RANGE_NAME ^
          --network=VPC_NETWORK ^
          --project=PROJECT_ID

      您应该会收到类似如下所示的响应:

      Operation "operations/OPERATION_ID" finished successfully.

      此命令会创建一个长时间运行的操作 (LRO)。

    2. 如果命令成功,请跳至下一步。否则,请检查操作状态。

      在使用下面的命令数据之前,请先进行以下替换:

      • OPERATION_ID:上一步中返回的操作的 ID

      执行以下命令:

      Linux、macOS 或 Cloud Shell

      gcloud services vpc-peerings operations describe \
        --name=operations/OPERATION_ID

      Windows (PowerShell)

      gcloud services vpc-peerings operations describe `
        --name=operations/OPERATION_ID

      Windows (cmd.exe)

      gcloud services vpc-peerings operations describe ^
        --name=operations/OPERATION_ID

      您应该会收到类似如下所示的响应:

      Operation "operations/OPERATION_ID" finished successfully.

  6. (可选)如果您使用的是 VPC Service Controls,则需要为您刚刚创建的专用连接启用 VPC-SC。

    在使用下面的命令数据之前,请先进行以下替换:

    • VPC_NETWORK:您的 VPC 网络的名称

    执行以下命令:

    Linux、macOS 或 Cloud Shell

    gcloud services vpc-peerings enable-vpc-service-controls \
        --service=servicenetworking.googleapis.com \
        --network=VPC_NETWORK

    Windows (PowerShell)

    gcloud services vpc-peerings enable-vpc-service-controls `
        --service=servicenetworking.googleapis.com `
        --network=VPC_NETWORK

    Windows (cmd.exe)

    gcloud services vpc-peerings enable-vpc-service-controls ^
        --service=servicenetworking.googleapis.com ^
        --network=VPC_NETWORK

    您应该会收到类似如下所示的响应:

    Operation "operations/OPERATION_ID" finished successfully.

  7. (可选)如果有本地网络连接到您的 VPC,您可以配置对等互连连接,以便本地主机可以与服务提供方的网络进行通信。如需了解详情,请参阅本地主机问题排查