設定私人網路存取權

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

如要設定私人網路存取權,您需要設定三個專案:

  • 專案包含虛擬私有雲 (VPC) 和目標虛擬機器執行個體 (VM)。
  • 做為服務目錄服務專案的專案。
  • Google Cloud 產品專案,其中包含可叫用私人網路存取權的設定。 Google Cloud 可使用私人網路存取權呼叫端點的產品範例為 Dialogflow CX。

專案的構件可能位於同一個專案或不同專案中。

事前準備

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

  • 針對每個專案,在 Google Cloud 控制台的「API 和服務」頁面中,按一下「啟用 API 和服務」,啟用要使用的 API,包括 Service Directory API。

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

  • 請確認 Google Cloud 專案位於網路專案和 servicedirectory.googleapis.com 的 Service Directory 專案的 VPC Service Controls 範圍內。

    進一步瞭解 VPC Service Controls

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

如要為 VPC 網路設定專案,請按照下列步驟操作:

  1. 建立虛擬私有雲網路。如果您想使用現有的虛擬私人雲端網路,請確認該網路支援自動模式或自訂模式的子網路舊版網路則不支援。

  2. 如果 VPC 網路的目標是 Compute Engine VM 或內部負載平衡器後端,請設定 VPC 網路防火牆規則。建立防火牆規則,允許從 35.199.192.0/19 輸入目標正在聆聽的通訊埠的 TCP 流量。通訊埠 44380 是常見的選擇,但您可以使用任何通訊埠。請注意,根據預設,虛擬私有雲網路防火牆規則會封鎖 Compute Engine VM 的輸入連線。

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

  3. 將身分與存取權管理 (IAM) Private Service Connect 授權服務角色 (roles/servicedirectory.pscAuthorizedService) 授予將呼叫端點的 Google Cloud 產品服務代理。

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

設定 Service Directory 專案

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

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

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

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

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

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

主控台

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

用途

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

在 VPC 網路、虛擬機器 (VM) 和 Service Directory 位於同一個專案時呼叫 HTTP 端點

在這個用途中,您會設定 Dialogflow CX,這是一項 Google Cloud 自然語言處理產品,可在 VM 上呼叫 HTTP 端點。在呼叫端點時,請確保流量不會透過公開網際網路傳輸。

在這個用途中,您會在同一個專案中建立下列構件:

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

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

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

設定網路和指定網路

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

    建立 VPC 網路時,在「子網路建立模式」中選取「自動」

  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 Viewer 角色 (roles/servicedirectory.viewer)
    • Private Service Connect 已授權服務角色 (roles/servicedirectory.pscAuthorizedService)
  9. 選用:如要新增更多 VM,您可以設定另一個 VM (例如 vm-2),然後新增其端點 (例如 endpoint-2)。

設定 Google Cloud 產品

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

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

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

在這個用途中,您會設定 Dialogflow CX,這是一項 Google Cloud自然語言處理服務,可在 VM 上呼叫 HTTP 端點。在呼叫端點時,請確保流量不會透過公開網際網路傳輸。

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

  • 共用虛擬私有雲網路
  • 虛擬機
  • 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

    建立虛擬私人雲端網路時,請在「子網路建立模式」中選取「自動」

  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. 建立 Service Directory 端點,指向虛擬私有雲網路中的 VM:

    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 專案。

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

如要瞭解如何使用 Service Directory 私人網路存取權與 Dialogflow,請參閱「使用 Service Directory 私人網路存取權」。

後續步驟