建立私有路徑服務

作為服務提供者,您負責管理消費者帳戶 ID。 目前不支援追蹤或驗證帳戶 ID。 如需相關資訊,請參閱 管理消費者帳戶 ID 的責任

適用於 VPC 的 Private Path 服務可讓服務供應商為託管 IBM Cloud 及第三方服務和應用程式建立和管理專用連線。 您可以使用主控台、CLI、API 或 Terraform 建立 Private Path 服務。

開始之前

在建立「專用路徑」服務之前,請先檢閱下列必要條件:

  • 檢視 Private Path 服務的已知問題

  • 請確定您具有 VPC,且在選取的 VPC 中至少具有一個子網路。 進一步瞭解

  • 建立專用路徑網路負載平衡器。 您可以在佈建 Private Path 服務時建立負載平衡器,也可以使用 VPC 的負載平衡器 主控台。

    負載平衡器和 Private Path 服務必須使用相同的 VPC 區域。

  • 您必須為您的服務選擇一個供消費者使用的 DNS FQDN。 此網域設定在消費者的私人 DNS 中,但您必須在公共 DNS 中證明 FQDN 的所有權。 這需要您與 DNS 供應商採取步驟。 如需詳細資訊,請參閱 註冊和驗證服務端點(FQDN)的所有權

    如果您願意使用 註冊和驗證服務端點所有權(FQDN) 中列出的有限預定義網域集之一,則可以選擇不遵守此要求。

您可以使用主控台、CLI、API 或 Terraform 建立 IBM Cloud® Private Path 服務。

在主控台中建立私有路徑服務

若要使用 IBM Cloud 主控台建立「專用路徑」服務,請遵循下列步驟:

  1. 從瀏覽器開啟 IBM Cloud 主控台,登入您的帳戶。

  2. 選取導覽功能表圖示,然後按一下基礎結構 VPC 圖示 > 網路 > 私人路徑服務

  3. 按一下建立

  4. 如需重要資訊,請檢閱核對清單。

  5. 在「位置」區段中,確定下列欄位是正確的。 如果沒有,請按一下「編輯」圖示 「編輯」圖示 來更新。

    • 地理位置: 您要在其中建立「專用路徑」服務的一般區域。
    • 區域:您要建立專用路徑服務的區域。
  6. 在詳細資訊部分,提供下列資訊:

    • 名稱: 輸入「專用路徑」服務的唯一 ID,例如 my-privatepath-service
    • 資源群組: 必要的話,請選取資源群組。
    • 標籤: 選擇性地新增任何相關標籤,以協助將您的「專用路徑」服務分組。
    • 存取管理標籤: 選擇性地將存取管理標籤新增至資源,以協助組織存取控制關係。 存取權管理標籤唯一支援的格式是 key:value。 如需相關資訊,請參閱 使用標籤控制對資源的存取權
    • 虛擬專用雲端: 選取您要在其中建立「專用路徑」服務的 VPC。
  7. 在「專用路徑網路負載平衡器」部分中,為專用路徑服務選擇一個專用路徑 NLB,或按一下 「建立」 以建立一個。 若要建立專用路徑 NLB,請遵循下列步驟:

    下一步 以跳至下一步,或使用左側的導覽功能表以回到特定區段。

    1. 在「定義詳細資料」區段中,提供下列資訊:

      • 名稱: 輸入「專用路徑 NLB」的唯一 ID,例如 my-privatepath-service
      • 資源群組: 選取專用路徑 NLB 的資源群組。
      • 標籤: 選擇性地新增任何相關標籤,以協助將「專用路徑 NLB」分組。
      • 存取管理標籤: 選擇性地將存取管理標籤新增至資源,以協助組織存取控制關係。 存取權管理標籤唯一支援的格式是 key:value。 如需詳細資訊,請參閱 使用標籤控制資源存取
      • 子網路: 選取您要在其中建立「專用路徑 NLB」的子網路。
    2. 可選擇在 Create back-end pool(建立後端池)部分:

      • 名稱: 輸入「專用路徑 NLB」的唯一 ID,例如 my-ppnlb

      • 選取方法,這是負載平衡演算法。 會顯示下列選項。

        • 循環- 依序將請求轉寄給每個實體。 所有實例都會收到大約相等數目的用戶端連線。
        • 加權迴圈- 依據所分配的權重比例,將請求轉寄給每個實體。 例如,如果您有實例 A、B 及 C,而且其加權設為 60、60 及 30,則實例 A 及 B 會接收到相等數目的連線,而實例 C 會接收到一半的連線。

        在性能檢查區段中:

        • 健康檢查路徑- 僅當選擇 HTTP 作為健康檢查協議時,健康檢查路徑才適用。 健康檢查路徑指定負載平衡器使用的 URL,以便將 HTTP 健康檢查請求傳送給池中的實體。 預設情況下,健康檢查會傳送到根目錄 (/)。
        • 健康通訊協定- 負載平衡器用來傳送健康檢查訊息給池中實體的通訊協定。
        • Health port- 負載平衡器傳送健康檢查要求的連接埠。 預設情況下,健康檢查會在傳送流量到實體的相同連接埠上傳送。
        • Interval- 連續兩次健康檢查嘗試之間的間隔 (以秒為單位)。 預設情況下,健康檢查每 5 秒傳送一次。
        • 逾時- 系統等待健康檢查請求回應的最長時間。 預設情況下,負載平衡器等待回應的時間為 2 秒。
        • 重試次數上限-在將實例宣告為性能不佳之前,負載平衡器所進行的性能檢查嘗試次數上限。 依預設,在兩次失敗的性能檢查之後,就不再將實例視為性能良好。

        雖然負載平衡器會停止向不健康的實體傳送連線,但它會繼續監控這些實體的健康狀況,並在發現它們再次健康時恢復使用(也就是說,如果它們成功通過連續兩次的健康檢查嘗試)。

      如果儲存區中的實例性能不佳,且您認為應用程式正常運作,請仔細檢查性能通訊協定及性能路徑值。 此外,檢查附加到實體的任何安全群組,以確保規則允許負載平衡器和實體之間的流量。

      • 按一下儲存。 如果您要建立另一個後端儲存區,請重複此步驟。
    3. 可選擇在附加成員區段中,指定下列資訊,然後按一下附加

      • 後端儲存區: 選取您要連接伺服器的後端儲存區。

      • 子網路:在表中搜尋特定子網路,然後勾選要附加的子網路旁邊的方塊。 在埠直欄中,輸入您選取的每一個子網路的埠號。

      • 成員類型:新增虛擬伺服器實體、保留 IP 或應用程式負載平衡器為成員。 對於虛擬伺服器實體,請單獨附加每種類型。 保留的 IP 成員可以綁定到裸機伺服器、虛擬伺服器實例的主要或次要介面,或虛擬網路介面。

        如果將 ALB 作為成員目標附加到 Private Path NLB 池,則無法將其他成員新增到該池。

    4. 可選擇在新增前端監聽器部分,選擇要附加前端監聽器的後端池。 然後,選取接聽器埠值,並按一下 儲存。 如果您要建立另一個前端接聽器,請重複此步驟。

    5. 在「檢閱」區段中,確認您提交的資訊是正確的。 檢視訂單摘要,然後按一下建立

      您的 Private Path NLB 需要幾分鐘時間才能建立。 建立負載平衡器時,其狀態會從表格中的 建立中 變更為 作用中

  8. 在服務端點部分中,按一下建立。 提供要連接專用路徑服務的服務端點的名稱。 然後,驗證 FQDN 網域的所有權並點擊 「新增」。 有關詳細信息,請參閱 註冊和驗證服務端點(FQDN)的所有權

  9. 選擇啟用或停用服務端點的區域關聯性。 啟用區域親緣性時,端點會在建立連線之後維護區域的持續性。

  10. 在帳戶原則區段中:

    • 預設原則設為檢閱及分類每一個送入的連線要求。 您可以將預設原則變更為允許或拒絕所有要求,而不進行檢閱。
    • 若要建立與預設策略不同的帳戶策略,請按一下「建立」。 提供您要為其設定策略的帳戶的帳戶 ID。 對於帳戶原則選項,選擇審核、允許或拒絕。

    個別帳戶原則優先於預設原則。

  11. 檢視摘要頁面,然後按一下建立以訂購您的 Private Path 服務。

    佈建完成時,「VPC 的專用路徑服務」表格中的「專用路徑」服務狀態會指出 Stable

從 CLI 建立專用路徑服務

下列範例顯示如何使用 CLI 來建立「專用路徑」服務。

開始之前,請確定 設定 CLI 環境

若要從 CLI 建立專用路徑服務,請遵循下列步驟:

  1. 輸入下列指令:
ibmcloud is private-path-service-gateway-create
    [--load balancer LOAD_BALANCER]
    [--service-endpoints SERVICE_ENDPOINTS]
    [--default-access-policy | deny | permit | review]
    [--name NAME]
    [--zonal-affinity | true | false]
    [--output JSON] [-q, --quiet]

其中:

--load-balancer
表示此私有路徑服務的負載平衡器 ID 或名稱。
--service-endpoints
表示此 Private Path 服務的完全合格網域名稱。 任何大寫字母都會轉換成小寫。
--default-access-policy
表示對於沒有明確帳戶政策的帳戶綁定所使用的政策。 下列其中一項: denypermitreview。(預設值: deny)。
--name
表示此專用路徑服務的名稱。
--zonal-affinity
表示此專用路徑服務是否具有區域親和性。 下列其中一項: falsetrue
--output
指定輸出格式,只支援 JSON。 下列其中一項:JSON
-q, --quiet
抑制詳細輸出。

指令範例

  • 建立具有許可原則及區域親緣性的原則型「專用路徑」服務: ibmcloud is private-path-service-gateway-create --load-balancer my-cli-nlb --service-endpoints cli.domain.com --default-access-policy permit --name cli-ppsg-1 --zonal-affinity true

  • 建立具有拒絕原則及區域親緣性的原則型「專用路徑」服務: ibmcloud is private-path-service-gateway-create --load-balancer r006-d-439744e1-81d7-43fb-95d5-2356774240bb --service-endpoints clidemo.domain.com --default-access-policy deny --name cli-ppsg-2 --zonal-affinity true

使用 API 建立私有路徑服務

若要使用 API 建立 Private Path 服務,請遵循下列步驟:

  1. 設定 API 環境

  2. 將下列值儲存在要在 API 指令中使用的變數中:

    • loadBalancerId-首先,取得負載平衡器,然後移入變數:

      export loadBalancerId=<your_loadbalancer_id>
      
  3. 當所有變數都啟動時,建立私有路徑服務:

    curl -X POST -sH "Authorization:${iam_token}" \
    "$vpc_api_endpoint/v1/private_path_service_gateways?version=$api_version&generation=2" \
    -d {
      "default_access_policy": "review",
      "load_balancer": {
        "id": "$loadBalancerId"
      },
      "name": "my-ppsg",
      "service_endpoints": ["example.com"],
      "zonal_affinity": false
    }'
    

使用 Terraform 建立私有路徑服務

以下範例使用 Terraform 提供一個 Private Path 網路:

resource "ibm_is_private_path_service_gateway" "ppsg" {
    default_access_policy = "deny"
    load_balancer = ibm_is_lb.ppnlb.id
    service_endpoints = ["my-service.example.com"]
    zonal_affinity = false
    name = "my-example-ppsg"
}

有關 Terraform 資源的說明文件,請參閱 Terraform Registry

註冊和驗證服務端點 (FQDN) 的所有權

建立私有路徑服務時,您必須證明您擁有所提供的 服務端點(DNS FQDN)。 這樣做是為了防止 DNS 劫持和 FQDN 衝突。 擁有權會透過為每個 FQDN(服務端點)建立 TXT 記錄來驗證,並包含特定內容。 在公共 DNS 中建立 TXT 記錄。 只有在建立私有路徑服務時,才會查詢公共 DNS。 建立私有路徑服務後,資料路徑中只會使用私有 DNS (絕不會使用公用 DNS)。

所需的 TXT 記錄必須以 ibm-domain-verification= 前綴開頭。 如果前綴之後的值符合 SHA-256 與建立 Private Path 服務的使用者相關聯的帳戶 ID 的雜湊值,則驗證成功。 要新增的 TXT 記錄範例: ibm-domain-verification=252cfc164d3600a79007f25312a6a924288cfc6dbcaeec838ca9048cde664acb

如何為您的 FQDN 新增 TXT 記錄的細節,依您使用的公共 DNS 服務而有所不同。 建議您諮詢 DNS 服務提供商以瞭解詳細資訊。

如果為私有路徑服務指定了多個服務端點,則所有端點的所有權驗證都必須成功。

以下是您可以用來繞過域名所有權驗證的頂層網域名稱清單:

  • .intranet
  • .internal
  • .private
  • .corp
  • .home
  • .lan

支援通配符 (*) 網域。 例如,具有 "service_endpoints": ["*.service.com"] 的 Private Path 服務包括其所有子網域,例如 api1.service.comapi2.service.com

當通配符網域包含有效的 TXT 記錄時,DNS 所有權驗證就會成功。 在這個範例中,為了通過驗證,您可以將有效的 TXT 記錄加入 service.com

下一步

  1. 驗證與「專用路徑」服務的連線功能
  2. 發佈您的「專用路徑」服務
  3. 將連線資訊傳達給消費者
  4. 檢閱連線要求建立帳戶原則