設定私人網路存取權

如要設定私人網路存取權,使流量在 Google Cloud 網路中執行,您必須設定擁有 VPC 網路的專案、Service Directory 專案,以及您擁有的 Google Cloud 服務專案。這三項專案可以相同或獨立。

  • 網路專案是虛擬私人雲端網路的專案。
  • 「Service Directory 專案」是 Service Directory 服務的專案。這個專案可能是網路專案的共用虛擬私人雲端網路中的服務專案。
  • Google Cloud 服務專案是叫用私人網路存取權的專案。例如 Google Cloud 服務設定。

事前準備

本程序假設您已完成以下步驟。

設定網路專案

請按照下列步驟設定網路專案。

  1. 建立或使用現有虛擬私人雲端網路。自動和自訂模式的虛擬私人雲端網路都支援私人 Google 存取權。但舊版網路則不受支援。
  2. 如果目的地目標為 Compute Engine VM 或內部負載平衡器後端,則您必須透過虛擬私人雲端防火牆進行私人存取權,才能存取私人網路。目標必須允許在適當的通訊埠 (通訊埠 44380) 上從 35.199.192.0/19 建立 TCP 輸入。

  3. 授予 Google Cloud 服務專案的身分與存取權管理 (IAM) 服務目錄網路存取權。請注意,Google Cloud 專案必須位於 Google Cloud 服務與 Service Directory 專案的 servicedirectory.googleapis.com Service Controls 範圍內。

    如要進一步瞭解 VPC Service Controls,請參閱 VPC Service Controls 總覽

設定 Service Directory 專案

請按照下列步驟設定 Service Directory 專案。

  1. 在虛擬私人雲端網路中建立虛擬機器 (VM)內部負載平衡器
  2. 建立 Service Directory 服務,並指向您在虛擬私人雲端網路中建立的 VM 或內部負載平衡器。
  3. 授予 IAM 服務目錄網路的存取權限給 Google Cloud 服務帳戶。如要進一步瞭解角色和權限,請參閱服務目錄權限和角色一文。

建立具有私人網路存取權的端點

如要建立已設定私人網路存取權的端點,請按照下列步驟操作:

主控台

  1. 前往 Google Cloud Console 的 Service Directory 命名空間頁面。
    前往 Service Directory 命名空間頁面
  2. 按一下命名空間。
  3. 按一下所需服務。
  4. 按一下 ,然後按一下 [Add endpoint] (新增端點)
  5. 提供「Endpoint name」(端點名稱)
  6. 輸入 IPv4 IP 位址,例如 192.0.2.0/24
  7. 輸入「Port」(通訊埠編號) 號碼,例如 44380
  8. 如要啟用私人網路存取權,請按一下 [Choose from list] (從清單中),然後從「Associated VPC network」(相關聯虛擬私人雲端網路) 下的可用網路清單中選擇。
  9. 您也可以選擇 [Specify by project and network name] (依專案與網路名稱指定),提供特定的專案 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. 使用您在網路專案中建立的服務目錄服務來設定 Google Cloud 服務。
  3. 如果您使用的是 VPC Service Controls,請確保 VPC Service Controls 允許 Service Directory 存取網路專案和 Service Directory 專案。

用途

本節提供設定私人網路存取權的範例用途。

當虛擬私人雲端網路、VM 和服務目錄位於同一個專案時,呼叫 HTTP 端點

您可以設定 Google Cloud 產品,藉此呼叫 VM 上的 HTTP 端點。此流量不得透過公開網際網路傳輸。

在這項配置中,您會有一個專案在虛擬私人雲端網路中擁有虛擬私人雲端網路、VM、Service Directory 服務,以及 Google Cloud 服務。

允許專案的 Google 服務設定將輸出至位於 Google Cloud 服務專案的虛擬私人雲端網路中的網路專案 VM
允許將專案的 Google 服務設定輸出至位於 Google Cloud 服務專案的虛擬私人雲端網路 (按一下可放大)

如要使用私人網路存取權設定 Google Cloud 產品,請按照以下步驟操作。

設定網路和目標網路

  1. 建立專案,例如 my-project
  2. 建立虛擬私人雲端網路,例如 VPC-1 (projects/project-number/locations/global/networks/my-network)。
  3. 授予 Proxy 對輸入 VPC-1 或子網路或 VM 的 Proxy 存取權。
  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。 如需詳細操作說明,請參閱建立具有私人網路存取權的端點,才能使用 Android 手機或平板電腦尋找另一部裝置。
  10. 將下列身分與存取權管理角色授予 Google Cloud 服務帳戶:

    • servicedirectory.viewer
    • servicedirectory.pscAuthorizedService
  11. 您可以視需要設定 VM-2,並新增 Endpoint-2

設定 Google Cloud 產品

  1. 進行 Google Cloud 產品設定CONFIG-1,例如「Cloud Scheduler, minute per minute」。
  2. 設定 HTTP 要求。
  3. 用於指定要求是否要透過私人網路 (例如,透過 SD-1) 傳送。
  4. (選用) 指定憑證授權單位服務設定

現在,Google Cloud 產品可以使用 SD-1 叫用 HTTP 要求。

當虛擬私人雲端網路、VM 和 Service Directory 位於不同專案中時呼叫 HTTP 端點

在這個範例中,您會想要設定 Google Cloud 服務 (例如活動、工作或 Pub/Sub),以便在 VM 上呼叫 HTTP 端點。在這個範例中,Service Directory 專案、網路專案與 Google Cloud 服務專案並不相同。此流量不得透過公開網際網路傳輸。選用這個 API 叫用時,必須遵循 VPC Service Controls 範圍。

在此情況下,Google Cloud 服務專案的設定允許輸出至位於網路專案的虛擬私人雲端網路中的 Google Cloud 服務專案 VM。

Google Cloud 服務專案可能與生產端專案不同。這兩個專案的 VPC Service Controls 範圍皆可供使用。

透過強制執行 VPC Service Controls 範圍的私人網路存取權傳送流量
透過強制執行 VPC Service Controls 範圍的私人網路存取權傳送流量 (按一下可放大)

建立網路專案

確認您已擁有下列 IAM 權限:

  • servicedirectory.services.resolve」的訊息服務
  • 網路的 servicedirectory.networks.access

注意事項:

  • Service Directory 專案和網路專案不需要連線,但這些專案必須屬於同一個 VPC Service Controls。
  • 防火牆與服務的防火牆和身分與存取權管理預設預設為停用。

如要建立網路專案,請按照下列步驟操作。

  1. 建立虛擬私人雲端網路,例如 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. 在虛擬私人雲端網路中建立 VM 或內部負載平衡器。
  2. 建立指向 VPC 網路中 VM 或內部負載平衡器的 Service Directory 服務。
  3. 將 IAM 服務 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 專案。

後續步驟