閘道式輸出

Last reviewed 2025-01-23 UTC

「閘道式輸出」網路架構模式的架構是將內部部署環境或其他雲端環境中的特定 API 開放給部署在 Google Cloud中的工作負載。這麼做時,不會直接從內部部署環境或其他雲端環境,將資料暴露給公開網際網路。您可以使用 API 閘道或 Proxy,或是負載平衡器做為現有工作負載的遮蔽,有限度地公開 API。您可以在隔離的邊界網路區段 (例如邊界網路) 中部署 API 閘道功能。

閘道式輸出網路模式主要適用於分層應用程式架構模式分割應用程式架構模式,但不限於此。在內部網路中部署後端工作負載時,使用受控的出口網路有助於在內部運算環境中維持更高層級的安全性。您必須以符合下列通訊需求的方式連結運算環境:

  • 部署在 Google Cloud 中的工作負載,可以使用內部 IP 位址與 API 閘道或負載平衡器 (或 Private Service Connect 端點) 通訊,以便公開應用程式。
  • 但無法直接從 Google Cloud連線至私人運算環境中的其他系統。
  • 私人運算環境無法與部署在 Google Cloud 中的任何工作負載通訊。
  • 其他環境中的私人 API 流量只能由 Google Cloud 環境啟動。

本指南著重於透過私人混合雲網路連線的混合雲和多雲端環境。如果貴機構的安全性規定允許,您可以透過網際網路直接呼叫具有公開 IP 位址的遠端目標 API。但您必須考量下列安全機制:

  • 使用傳輸層安全標準 (TLS) 的 OAuth 2.0 API。
  • 頻率限制。
  • 威脅防護政策。
  • 將互相 TLS 設定為 API 層的後端。
  • IP 位址許可清單篩選功能已設定為只允許與雙方預先定義的 API 來源和目的地進行通訊。

如要保護 API Proxy,請考慮這些其他安全性層面。詳情請參閱「使用 Apigee 保護應用程式和 API 的最佳做法」。

架構

下圖顯示參考架構,可支援上一節列出的通訊需求:

資料會從 Google Cloud 中的主機專案,以單向方式流向內部部署環境的工作負載。

資料會透過下圖所示的流程傳送:

  • 在 Google Cloud 端,您可以將工作負載部署至虛擬私有雲 (VPC)。虛擬私有雲端可以是單一或多個 (共用或非共用)。部署作業應與貴機構的專案和資源階層設計保持一致。
  • Google Cloud 環境的虛擬私有雲網路會延伸至其他運算環境。環境可以是內部部署環境或其他雲端環境。如要使用內部 IP 位址,在環境之間進行通訊,請使用適當的混合雲和多雲端網路連線。
  • 如要限制來自特定 VPC IP 位址的流量,並將其導向遠端閘道或負載平衡器,請使用 IP 位址許可清單篩選功能。使用有狀態防火牆規則時,系統會允許來自這些連線的傳回流量。您可以使用下列任一功能組合,確保通訊安全並限制通訊對象,只允許來源和目的地 IP 位址:

  • 所有環境均共用不重疊的 RFC 1918 IP 位址空間。

變化版本

閘控外送架構模式可與其他方法搭配使用,以滿足各種設計需求,同時考量此模式的通訊需求。模式提供以下選項:

使用 Google Cloud API 閘道和全球前端

在 Google Cloud 中,資料從 Apigee 流向客戶專案的虛擬私有雲,然後從 Cloud 流向內部部署環境或其他雲端執行個體。

採用這種設計方法後,API 曝光和管理作業會位於Google Cloud中。如上圖所示,您可以透過將 Apigee 做為 API 平台來實作這項功能。您是否要在遠端環境中部署 API 閘道或負載平衡器,取決於您的具體需求和目前的設定。Apigee 提供兩種連線設定選項

  • 使用虛擬私有雲對等互連
  • 未使用虛擬私有雲對等互連

Google Cloud 全球前端功能 (例如 Cloud Load Balancing、Cloud CDN (透過 Cloud Interconnect 存取) 和跨雲 Interconnect) 可提升使用者存取應用程式的速度,這些應用程式的後端會託管在內部部署環境和其他雲端環境中。

如要最佳化內容傳遞速度,請從 Google Cloud 服務點 (PoP) 提供這些應用程式。 Google Cloud 全球超過 180 個網際網路交換中心和 160 個互連網路設施都設有服務點。

如要瞭解如何搭配使用 Apigee 和 Cloud CDN 來達成以下目標,並瞭解 PoP 如何協助提供高效能 API,請觀看 YouTube 上的影片「使用 Apigee 和 Cloud CDN 提供高效能 API」:

  • 減少延遲時間。
  • 在全球代管 API。
  • 在尖峰流量期間提高可用性。

上圖所示的設計範例是基於 Private Service Connect,但沒有虛擬私有雲網路對等互連。

這項設計中的 northbound 網路是透過以下方式建立:

  • 負載平衡器 (圖表中的 LB) 會終止用戶端要求、處理流量,然後將流量轉送至 Private Service Connect 後端。
  • Private Service Connect 後端可讓 Google Cloud 負載平衡器透過與供應者服務連結相關聯的 Private Service Connect 連線,將用戶端要求傳送至已發布服務 (Apigee 執行階段執行個體),並使用 Private Service Connect 網路端點群組 (NEG)

向南網路是透過以下方式建立:

  • Private Service Connect 端點,參照客戶虛擬私有雲網路中與內部負載平衡器 (圖表中的 ILB) 相關聯的服務連結
  • ILB 會與混合式連線網路端點群組 (混合式連線 NEG) 一併部署。

  • 混合式服務可透過混合式連線 NEG 存取,連線方式包括 VPN 或 Cloud Interconnect。

詳情請參閱「設定區域內部 Proxy 網路負載平衡器,並使用混合式連線」和「Private Service Connect 部署模式」。

使用 Private Service Connect 公開遠端服務

資料從 VPC 中的工作負載開始,經過 Cloud Load Balancing、混合式連線 NEG 和 Cloud VPN 或互連網,最後流向 Google Cloud 或其他雲端環境。

在下列情況下,請使用 Private Service Connect 選項公開遠端服務:

  • 您不使用 API 平台,或不想將整個虛擬私有雲端網路直接連線至外部環境,原因如下:
    • 您有安全性限制或法規遵循要求。
    • 您有重疊的 IP 位址範圍,例如在合併和收購情境中。
  • 即使您有短暫的期限,也能讓用戶端、應用程式和服務在各環境中進行安全的單向通訊。
  • 您可能需要透過服務供應者虛擬私有雲 (傳遞虛擬私有雲) 提供多個用戶群或單一用戶群服務模式的連線,以便在其他環境中存取已發布的服務。

針對用作 API 的應用程式使用 Private Service Connect,可為已發布的應用程式提供內部 IP 位址,讓您在私人網路內部和混合連線中安全存取。這項抽象化功能可透過混合式雲端和多雲端連線模式,簡化來自不同雲端和內部部署環境的資源整合作業。您可以使用 Private Service Connect 發布服務,並設定精細的存取權,藉此加快應用程式整合作業,並安全地公開位於內部部署環境或其他雲端環境中的應用程式。在這種情況下,您可以使用下列選項:

在上述圖表中,應用程式 VPC 網路中的工作負載可以透過 Private Service Connect 端點,存取在內部部署環境或其他雲端環境中執行的混合式服務,如下圖所示。這個單向通訊設計選項提供與轉接 VPC 對等互連的替代選項。

在透過 Cloud VPN 或 Cloud Interconnect 離開並進入內部部署環境或其他雲端之前,在 Google Cloud 內的多個 VPC 之間傳輸資料。

如上圖所示,多個前端、後端或端點可連線至相同的服務附件,讓多個虛擬私有雲網路或多個使用者存取相同的服務。如下圖所示,您可以讓應用程式可供多個 VPC 存取。這項可用性功能可協助處理多租用戶服務情境,在這種情境下,您的服務會被多個消費者虛擬私有雲端使用,即使這些虛擬私有雲端的 IP 位址範圍重疊,也能正常運作。

當您整合位於不同環境中的應用程式時,IP 位址重疊是最常見的問題之一。下圖中的 Private Service Connect 連線有助於避免 IP 位址重疊問題。這麼做無須佈建或管理任何額外的網路元件 (例如 Cloud NAT 或 NVA),即可執行 IP 位址轉譯。如需設定範例,請參閱「使用 Private Service Connect 發布混合型服務」。

此設計具備下列優點:

  • 避免潛在的共用調度依附元件和複雜的管理可擴充性。
  • 提供精細的連線控管機制,提升安全性
  • 減少服務的產出者和使用者與遠端外部環境之間的 IP 位址協調作業。

您可以在後續階段擴充上述圖表中的設計方法,使用先前討論過的網路設計選項 (包括 Private Service Connect 選項),將 Apigee 整合為 API 平台。

您可以使用 Private Service Connect 全球存取權,讓其他區域存取 Private Service Connect 端點。

連線至 Private Service Connect 端點的用戶端可以位於端點所在的區域,也可以位於其他區域。您可以使用這種方法,在多個區域中託管的服務之間提供高可用性,或是從其他區域存取單一區域中提供的服務。如果其他區域中代管的資源存取 Private Service Connect 端點,則會對目的地為具備全球存取權的端點的流量收取跨區域傳出費用

最佳做法

  • 考慮使用 Apigee 和 Apigee Hybrid 做為 API 平台解決方案,可帶來多項優勢。它為後端服務 API 提供 Proxy 層、抽象化或外觀,並結合安全性功能、速率限制、配額和分析功能。
  • Google Cloud 中的 VPC 和專案設計應以資源階層和安全通訊模型需求為依據。
  • 使用含有 API 閘道的 API 時,您也應使用 IP 位址許可清單。許可清單會限制與 API 使用者和 API 閘道 (可能會在不同環境中代管) 的特定 IP 位址來源和目的地進行通訊。
  • 使用VPC 防火牆規則防火牆政策,透過 Private Service Connect 端點控管 Private Service Connect 資源的存取權。
  • 如果應用程式是透過應用程式負載平衡器暴露在外部,建議您使用 Google Cloud Armor 做為額外的安全防護層,防範 DDoS 和應用程式層安全威脅。
  • 如果執行個體需要存取網際網路,請在應用程式 (消費者) VPC 中使用 Cloud NAT,讓工作負載可以存取網際網路。這樣一來,您就不會在部署在 API 閘道或負載平衡器後方的系統中,為 VM 執行個體指派外部公開 IP 位址。

  • 請參閱混合式雲端和多雲端網路模式的一般最佳做法