從其他虛擬私有雲網路存取服務

本教學課程說明如何以「服務用戶」身分,建立 Private Service Connect「端點」來存取已發布的服務。當您將要求傳送至端點時,Private Service Connect 會將這些要求轉送至已發布的服務。

本教學課程的適用對象為雲端架構師、網路架構師、網路管理員和 IT 管理員。

目標

  • 設定服務用戶資源的網路
  • 建立端點
  • 測試存取端點

費用

在本文件中,您會使用下列 Cloud de Confiance by S3NS的計費元件:

完成本文所述工作後,您可以刪除建立的資源,避免繼續計費,詳情請參閱「清除所用資源」。

事前準備

  1. 完成本系列的前兩篇教學課程:
  2. 建立或選取專案,用於服務用戶資源。這個專案稱為 CONSUMER_PROJECT
    1. 前往 Cloud de Confiance 控制台的專案選擇器頁面。

      前往專案選取器

    2. 選取或建立 Cloud de Confiance 專案。

      選取或建立專案所需的角色

      • 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您在專案中獲派角色,即可選取該專案。
      • 建立專案:如要建立專案,您需要專案建立者角色 (roles/resourcemanager.projectCreator),其中包含 resourcemanager.projects.create 權限。瞭解如何授予角色
  3. 啟用 Compute Engine API。

    啟用 API 時所需的角色

    您必須具備 serviceusage.services.enable 權限,才能啟用 API。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色

    啟用 API

  4. 請確認您在專案中具備下列角色: Compute Engine > Compute 網路管理員、Compute Engine > Compute 執行個體管理員

    檢查角色

    1. 前往 Cloud de Confiance 控制台的「IAM」頁面。

      前往「IAM」頁面
    2. 選取專案。
    3. 在「主體」欄中,找出所有識別您或您所屬群組的資料列。如要瞭解自己所屬的群組,請與管理員聯絡。

    4. 針對指定或包含您的所有列,請檢查「角色」欄,確認角色清單是否包含必要角色。

    授予角色

    1. 前往 Cloud de Confiance 控制台的「IAM」頁面。

      前往「IAM」頁面
    2. 選取專案。
    3. 按一下「Grant access」(授予存取權)
    4. 在「New principals」(新增主體) 欄位中,輸入您的使用者 ID。 這通常是指員工身分集區中使用者的 ID。詳情請參閱「在 IAM 政策中代表工作團隊集區使用者」,或聯絡管理員。

    5. 按一下「Select a role」(選取角色),然後搜尋角色。
    6. 如要授予其他角色,請按一下「Add another role」(新增其他角色),然後新增其他角色。
    7. 按一下「Save」(儲存)

設定網路

以下各節說明如何建立網路和子網路來代管端點,以及如何建立防火牆規則,允許透過 SSH 存取用於測試端點的用戶端 VM。

建立網路和子網路

如要建立服務用戶網路和子網路,請按照下列步驟操作。

控制台

  1. 前往 Cloud de Confiance 控制台的「VPC Networks」(虛擬私有雲網路) 頁面。

    前往「VPC networks」(虛擬私有雲網路)

  2. 按一下「建立虛擬私有雲網路」

  3. 在「Name」(名稱) 中輸入 consumer-network

  4. 在「子網路建立模式」部分,選取「自訂」

  5. 在「New subnet」(新的子網路) 區段中,輸入下列資訊。

    1. 在「Name」(名稱) 中輸入 consumer-subnet
    2. 在「Region」(區域),選取您建立的已發布服務所在的區域。
    3. 在「IP stack type」(IP 堆疊類型),選取「IPv4 (single-stack)」(IPv4 (單一堆疊))
    4. 在「IPv4 range」(IPv4 範圍) 中,輸入 192.168.10.0/24
    5. 按一下 [完成]
  6. 點選「建立」

gcloud

  1. 建立自訂模式虛擬私有雲網路:

    gcloud compute networks create consumer-network --subnet-mode=custom
    
  2. consumer-network 網路中建立子網路。

    gcloud compute networks subnets create consumer-subnet \
        --network=consumer-network \
        --range=192.168.10.0/24 \
        --region=REGION
    

    REGION 替換為您建立的已發布服務所用的相同區域。

設定防火牆規則

建立名為 fw-allow-ssh 的防火牆規則,允許來自 0.0.0.0/0 的 SSH 流量傳送到具有 allow-ssh 網路標記的 VM。

控制台

  1. 前往 Cloud de Confiance 控制台的「Firewall policies」(防火牆政策) 頁面。

    前往「防火牆政策」頁面

  2. 如要允許連入 SSH 連線,請按一下「建立防火牆規則」,然後使用下列設定:

    • 在「Name」(名稱) 中輸入 fw-allow-ssh
    • 在「Network」(網路) 中選取 consumer-network
    • 在「Priority」(優先順序) 中輸入 1000
    • 在「Direction of traffic」(流量方向) 中選取 [Ingress] (輸入)
    • 在「Action on match」(相符時執行的動作) 中選取 [Allow] (允許)
    • 在「Targets」(目標) 中選取 Specified target tags
    • 在「Target tags」(目標標記) 欄位中輸入 allow-ssh
    • 在「Source filter」(來源篩選器) 中選取「IPv4 ranges」(IPv4 範圍)
    • 在「Source IPv4 ranges」(來源 IPv4 範圍) 中輸入 0.0.0.0/0
    • 在「Protocols and ports」(通訊協定和通訊埠) 中選取「Specified protocols and ports」(指定的通訊協定和通訊埠),然後勾選「TCP」核取方塊。在「Ports」(通訊埠) 部分,輸入 22
  3. 按一下「建立」

gcloud

  1. 建立 fw-allow-ssh 防火牆規則,允許與具有 allow-ssh 網路標記的 VM 建立 SSH 連線。

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=consumer-network \
        --action=allow \
        --direction=ingress \
        --source-ranges=0.0.0.0/0 \
        --target-tags=allow-ssh \
        --rules=tcp:22
    

建立端點

建立指向您建立的已發布服務的端點。

控制台

  1. 前往 Cloud de Confiance 控制台的「Private Service Connect」頁面。

    前往 Private Service Connect

  2. 按一下「已連線的端點」分頁標籤。

  3. 按一下「連結端點」

  4. 在「Target」(目標) 中選取「Published service」(發布的服務)

  5. 在「目標服務」部分,輸入 projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-service

    PRODUCER_PROJECT 替換為已發布服務的專案 ID。將 REGION 改為已發布服務的區域。

  6. 在「Endpoint name」(端點名稱) 中輸入 ep-1

  7. 在「Network」(網路) 中選取 consumer-network

  8. 在「Subnetwork」(子網路) 中,選取 consumer-subnet

  9. 按一下「IP address」(IP 位址) 下拉式選單,然後選取「Create IP address」(建立 IP 位址)

    1. 在「Name」(名稱) 中輸入 ep-ip-1
    2. 在「Static IP address」(靜態 IP 位址) 中,選取 Let me choose
    3. 在「Custom IP address」(自訂 IP 位址) 中,輸入 192.168.10.5
    4. 點選「保留」
  10. 按一下「新增端點」

gcloud

  1. 保留要指派給端點的內部 IP 位址。

    gcloud compute addresses create ep-ip-1 \
        --region=REGION \
        --subnet=consumer-subnet \
        --addresses=192.168.10.5
    

    REGION 替換為您建立的已發布服務所用的相同區域。

  2. 建立轉送規則,將端點連至服務供應商的服務連結。

    gcloud compute forwarding-rules create ep-1 \
        --region=REGION \
        --network=consumer-network \
        --address=ep-ip-1 \
        --target-service-attachment=projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-service
    

    更改下列內容:

    • PRODUCER_PROJECT:服務供應商專案的專案 ID。

    • REGION:服務連結的區域。

測試存取端點

如要測試端點和已發布的服務是否正常運作,請建立測試 VM,並從該 VM 將要求傳送至端點。

建立用戶端 VM 以進行測試

在與端點相同的區域中建立用戶端 VM。

控制台

  1. 前往 Cloud de Confiance 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 點選「建立執行個體」

  3. 在「Name」(名稱) 中輸入 consumer-test

  4. 在「區域」中,選取與後端 VM 相同的區域。

  5. 在「Zone」(可用區),選取該地區的可用區。

  6. 按一下「Networking」(網路),然後設定下列欄位:

    1. 在「Network tags」(網路標記) 部分,輸入 allow-ssh
    2. 在「網路介面」中,選取下列項目:
      • 在「Network」(網路) 中選取 consumer-network
      • 在「Subnet」(子網路) 中,選取 consumer-subnet
  7. 點選「建立」

gcloud

gcloud compute instances create consumer-test \
    --zone=ZONE \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --subnet=consumer-subnet

ZONE 替換為與後端 VM 位於相同區域的區域。

測試連線能力

這項測試會從用戶端 VM 聯絡端點。預期的行為是要在負載平衡器的後端 VM 之間分配流量。

  1. 連線至用戶端 VM 執行個體。
    gcloud compute ssh consumer-test --zone=ZONE
    
    ZONE 替換為用戶端 VM 的可用區。
  2. 使用 curl 聯絡端點的 IP 位址,向端點發出網頁要求。重複發出要求,系統便會顯示來自不同後端 VM 的回應。由於每個後端 VM 上的 /var/www/html/index.html 內容不同,HTML 回應中的文字會顯示產生回應的 VM 名稱。舉例來說,預期回覆會類似 Page served from: vm-1Page served from: vm-2
    curl -s http://192.168.10.5
    

清除所用資源

為避免因為本教學課程所用資源,導致系統向 Google Cloud 帳戶收取費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。

刪除專案

刪除製作人專案 (PRODUCER_PROJECT) 和消費者專案 (CONSUMER_PROJECT)。

    刪除 Cloud de Confiance 專案:

    gcloud projects delete PROJECT_ID

後續步驟