設定私人網路存取權

本頁說明如何設定私人網路存取權,以及如何在 Google Cloud 網路中 Google Cloud 轉送流量。

如要設定私人網路存取權,請設定下列三個專案:

  • 包含虛擬私有雲 (VPC) 網路的專案,供目標虛擬機器執行個體 (VM) 或目標內部負載平衡器使用。
  • 做為 Service Directory 服務專案的專案。
  • 產品專案,其中包含叫用私人網路存取權的設定。 Google Cloud Dialogflow CX 就是一個例子,這項 Google Cloud 產品可使用私人網路存取權呼叫端點。

專案構件可能位於相同或不同專案。

事前準備

設定私人網路存取權前,請先完成下列步驟:

  • 在每個專案的 Google Cloud 控制台中,前往「APIs & Services」(API 和服務) 頁面,然後按一下「Enable APIs and services」(啟用 API 和服務),啟用要使用的 API,包括 Service Directory API。

  • 如要將 VPC 網路連結至內部部署主機,請建立 Cloud VPN 通道Cloud Interconnect 連線

  • 確認 Google Cloud 專案位於網路專案和 Service Directory 專案的虛擬私有雲服務範圍內servicedirectory.googleapis.com

    進一步瞭解 VPC Service Controls

為虛擬私有雲網路設定專案

如要為虛擬私有雲網路設定專案,請按照下列步驟操作:

  1. 建立虛擬私有雲網路,或選取現有的虛擬私有雲網路,該網路在您要使用的區域中,必須有僅限 IPv4 或雙堆疊的子網路。舊版網路則不支援。

  2. 建立必要的輸入允許防火牆規則。

    • 如果目標是 VM 或內部直通式網路負載平衡器,防火牆規則必須允許從 35.199.192.0/19 範圍到目標 VM 執行個體上執行軟體所用連接埠的 TCP 流量。

    • 如果目標是內部應用程式負載平衡器或內部 Proxy 網路負載平衡器,防火牆規則必須允許從 35.199.192.0/19 範圍到負載平衡器所用 IP 位址和通訊埠的 TCP 流量。

    如要進一步瞭解 35.199.192.0/19 範圍,請參閱「Cloud DNS 和 Service Directory 的路徑」。

  3. 將 Identity and Access Management (IAM) Private Service Connect 授權服務角色 (roles/servicedirectory.pscAuthorizedService) 授予將呼叫端點的 Google Cloud 產品服務代理程式。

    如要進一步瞭解角色和權限,請參閱服務目錄權限和角色

設定 Service Directory 專案

如要設定 Service Directory 專案,請按照下列步驟操作:

  1. 在虛擬私有雲網路中建立 VM內部負載平衡器

  2. 將 IAM Service Directory 檢視者角色 (roles/servicedirectory.viewer) 授予會呼叫端點的Google Cloud 產品服務代理。

  3. 建立 Service Directory 命名空間和服務。 然後按照下一節的步驟,為這項服務建立端點。

建立可存取私人網路的端點

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

主控台

  1. 前往 Google Cloud 控制台的「Service Directory namespaces」(服務目錄命名空間) 頁面。前往 Service Directory 命名空間
  2. 按一下命名空間。
  3. 按一下所需服務。
  4. 按一下「新增端點」
  5. 在「端點名稱」中,輸入端點的名稱。
  6. 在「IP address」(IP 位址) 中,輸入 IPv4 位址,例如 192.0.2.0
  7. 在「Port」(通訊埠) 中輸入通訊埠編號,例如 44380
  8. 如要啟用私有網路存取權,請在「相關聯的虛擬私有雲網路」中選取所需選項:
    • 如要從可用網路清單中選擇,請按一下「從清單中選擇」,然後選取所需網路。
    • 如要指定專案和網路,請按一下「依專案和網路名稱指定」,然後輸入專案編號和網路名稱。
  9. 點選「建立」

gcloud

使用 gcloud service-directory endpoints create 指令,並指定專案 ID 和網路路徑。

gcloud 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
  • PORT_NUMBER:端點執行的通訊埠,通常為 44380
  • NETWORK_PATH:網路的網址,例如 projects/PROJECT_NUMBER/locations/global/networks/NETWORK_NAME

設定 Google Cloud 產品專案

如要設定 Google Cloud 產品專案,請按照下列步驟操作:

  1. 啟用 Google Cloud 產品 API

  2. 設定 Google Cloud 產品,呼叫您建立的 Service Directory 服務。所需步驟取決於特定Google Cloud 產品。

用途

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

當虛擬私有雲網路、VM 和 Service Directory 位於同一專案時,呼叫 HTTP 端點

在本例中,您會設定 Dialogflow CX (自然語言處理 Google Cloud 產品),呼叫 VM 上的 HTTP 端點。呼叫端點時,請確保流量不會透過公開網際網路傳輸。

在本使用案例中,您會在同一個專案中建立下列構件:

  • 虛擬私有雲網路
  • VM
  • Service Directory 服務
  • Dialogflow CX

圖 1 顯示如何允許專案的 Google 服務設定輸出至 VM。VM 位於專案的虛擬私有雲網路中。

允許專案的 Google 服務設定傳出至網路專案 VM。
圖 1. 允許專案的 Google 服務設定輸出至 VM (按一下可放大)。

設定網路和目標網路

  1. 建立專案,例如 myproject
  2. 建立虛擬私有雲網路,例如 vpc-1

    建立虛擬私有雲網路時,請在「Subnet creation mode」(子網路建立模式) 中選取「Automatic」(自動)

  3. 建立防火牆規則,例如 firewall-1

    建立防火牆規則時,請輸入或選取下列值:

    • 在「Network」(網路) 中選取 vpc-1
    • 在「Source IPv4 ranges」(來源 IPv4 範圍) 中輸入 35.199.192.0/19
    • 在「Protocols and ports」(通訊協定和通訊埠) 中選取「TCP」,然後輸入 44380
  4. us-central1 區域中建立 VM,例如 vm-1

    建立 VM 時,請輸入或選取下列值:

    • 依序選取「Networking」(網路)>「Network Interfaces」(網路介面),然後選取 vpc-1
    • 在「防火牆」設定,選取「允許 HTTP 流量」

    如要使用 HTTPS,請選取「允許 HTTPS 流量」。此外,請務必安裝公開金鑰基礎架構 (PKI) 傳輸層安全標準 (TLS) 憑證。

  5. us-central1 區域中建立命名空間,例如 namespace-1

  6. 在命名空間中註冊 Service Directory 服務,例如 sd-1

  7. sd-1 中建立端點。端點位址請使用 vm-1 的內部 IP 位址,並指定連接埠 443。詳情請參閱「建立可存取私人網路的端點」。

  8. 將下列 IAM 角色授予會呼叫端點的Google Cloud 產品服務代理:

    • Service Directory 檢視者角色 (roles/servicedirectory.viewer)
    • Private Service Connect 授權服務角色 (roles/servicedirectory.pscAuthorizedService)
  9. 選用:如要新增更多 VM,可以設定另一個 VM,例如 vm-2,並新增其端點,例如 endpoint-2

設定 Google Cloud 產品

  1. 設定產品設定,例如「Cloud Scheduler,每分鐘打電話給我」。 Google Cloud
  2. 設定 HTTP 要求。
  3. 指定要求應透過私人網路傳送,例如透過 sd-1
  4. 選用:設定憑證授權單位服務設定

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

當共用虛擬私有雲網路、虛擬機器和 Service Directory 位於不同專案時,呼叫 HTTP 端點

在本例中,您會設定 Dialogflow CX (自然語言處理服務),在 VM 上呼叫 HTTP 端點。 Google Cloud呼叫端點時,請確保流量不會透過公開網際網路傳輸。

在這個使用案例中,您會在不同專案中建立下列構件:

  • 共用虛擬私有雲網路
  • VM
  • Service Directory 服務
  • Dialogflow CX

建立專案前,請注意下列事項:

  • 確認 API 呼叫遵守 VPC Service Controls 範圍。
  • 確認 Google Cloud 服務專案的設定允許傳出至虛擬私有雲網路專案中的 VM。
  • 生產者專案可能與 Google Cloud 服務 專案不同。
  • 確認兩個專案都使用 VPC Service Controls 範圍。
  • 服務目錄專案和網路專案不必連線,但兩者都必須屬於同一個 VPC Service Controls。
  • 在網路和服務中,防火牆和 IAM 預設為停用。

圖 2 顯示在強制執行 VPC Service Controls 範圍的情況下,如何使用私人網路存取權傳送流量。

透過私人網路存取權傳送流量,並強制執行 VPC Service Controls 範圍。
圖 2. 使用私人網路存取權傳送流量,並強制執行 VPC Service Controls 範圍 (按一下即可放大)。

設定網路專案

  1. 建立專案,例如 my-vpc-project
  2. 建立虛擬私有雲網路,例如 vpc-1

    建立虛擬私有雲網路時,請在「Subnet creation mode」(建立子網路模式) 選取「Automatic」(自動)

  3. 建立防火牆規則,例如 firewall-1

    建立規則時,請輸入或選取下列值:

    • 在「Network」(網路) 中選取 vpc-1
    • 在「Source IPv4 ranges」(來源 IPv4 範圍) 中輸入 35.199.192.0/19
    • 在「Protocols and ports」(通訊協定和通訊埠) 中選取「TCP」,然後輸入 44380
  4. us-central1 區域中建立 VM,例如 vm-1

    建立 VM 時,請輸入或選取下列值:

    • 依序選取「Networking」(網路)>「Network Interfaces」(網路介面),然後選取 vpc-1
    • 在「防火牆」設定,選取「允許 HTTP 流量」

    如要使用 HTTPS,請選取「允許 HTTPS 流量」。此外,請務必安裝公開金鑰基礎架構 (PKI) 傳輸層安全標準 (TLS) 憑證。

如果您使用 VPC Service Controls,VPC Service Controls 服務範圍可讓 Service Directory 連線至 Google Cloud 服務專案和 Service Directory 專案。

設定 Service Directory 專案

  1. 建立專案,例如 my-sd-project

  2. 由於虛擬私有雲網路專案和服務目錄專案是不同的專案,因此您需要額外的 IAM 權限。

    在網路專案中,將 Service Directory 網路連結器角色 (roles/servicedirectory.networkAttacher) 授予給建立 Service Directory 端點的 IAM 主體。

  3. 建立指向虛擬私有雲網路中 VM 的 Service Directory 端點:

    1. us-central1 區域中建立命名空間,例如 namespace-1
    2. 在命名空間中註冊 Service Directory 服務,例如 sd-1
    3. sd-1 中建立端點。端點位址請使用 vm-1 的內部 IP 位址,通訊埠為 443。詳情請參閱「建立可存取私人網路的端點」。
  4. 將下列 IAM 角色授予會呼叫端點的Google Cloud 產品服務代理:

    • Service Directory 專案中的 Service Directory 檢視者角色 (roles/servicedirectory.viewer)
    • 網路專案中的 Private Service Connect 授權服務角色 (roles/servicedirectory.pscAuthorizedService)

如果您使用 VPC Service Controls,VPC Service Controls 服務範圍可讓 Service Directory 連線至 Google Cloud 服務專案和 Service Directory 專案。

設定 Google Cloud 服務專案

  1. 啟用您使用的 Google Cloud 服務 API。
  2. 如要設定 Google Cloud 服務PUSH,請使用 Service Directory 專案中的 Service Directory 服務。

如果您使用 VPC Service Controls,VPC Service Controls 邊界可讓 Service Directory 連線至網路專案和 Service Directory 專案。

搭配 Dialogflow 使用 Service Directory 私人網路存取權

如需如何搭配使用 Service Directory 私人網路存取權和 Dialogflow 的操作說明,請參閱「使用 Service Directory 進行私人網路存取」。

後續步驟