設定私人服務存取權

私人服務存取權是指在您的Google Cloud 虛擬私有雲 (VPC) 網路與 Google 管理或第三方服務之間建立的私人連線。這可讓 VPC 網路中的 VM 執行個體使用內部 IP 位址與這些服務通訊,而不會將流量暴露於公開網際網路。

事前準備

如要建立私人連線,請完成下列事前準備:

  • 您必須具有現有的 VPC 網路,才能連線至服務供應商的網路。VM 執行個體必須使用這個 VPC 網路,以私人連線的方式連線至服務。
  • 請按照「事前準備」頁面中的步驟,建立設定正確的 Google Cloud 專案 (或選擇現有專案)。

為 Live Stream API 啟用私人服務存取權

虛擬私有雲說明文件中提供了設定私人服務存取權的一般程序。本頁面會將程序調整為適用於 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. 如要取得設定私人連線所需的權限,請要求管理員為您授予虛擬私人雲端網路所在 Google Cloud 專案的 Compute Engine 網路管理員 (roles/compute.networkAdmin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理存取權」。

    您也可以透過自訂角色或其他預先定義的角色取得必要權限。

  4. 在虛擬私人雲端網路中,使用 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:虛擬私有雲網路的名稱,例如 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 會自動選取虛擬私人雲端網路中未使用的位址範圍。下列範例會以 13 位元前置字串長度選取未使用的 IP 位址範圍。

    使用下列任何指令資料之前,請先替換以下項目:

    • RESERVED_RANGE_NAME:分配範圍的名稱,例如 my-allocated-range
    • DESCRIPTION:範圍的說明,例如 allocated for my-service
    • VPC_NETWORK:虛擬私有雲網路的名稱,例如 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 的私人連線,讓提供的虛擬私有雲網路 (例如 my-vpc-network) 中的 VM 執行個體可以透過私人服務存取權,與支援該功能的 Google 服務連線。

    Live Stream API 需要為每個區域分配 CIDR/13 區塊。如果您打算在多個區域中使用 Live Stream API,請分配較大的區塊。下表說明依區域數量分配的建議區塊大小:

    區域數量prefix-length 標記的值
    113
    212
    3-411
    5-810
    7-169
  5. 在服務供應商網路與虛擬私有雲網路之間建立私人連線:

    1. 建立私人連線。

      使用下列任何指令資料之前,請先替換以下項目:

      • RESERVED_RANGE_NAME:您在上一個步驟中建立的分配範圍名稱
      • VPC_NETWORK:虛擬私有雲網路的名稱
      • PROJECT_ID:含有虛擬私有雲網路的專案的 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:虛擬私有雲網路的名稱

    執行下列指令:

    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. (選用) 如果您有連線至虛擬私有雲的內部部署網路,可以設定對等連線,讓內部部署主機與服務供應商的網路進行通訊。詳情請參閱內部主機疑難排解