「閘道式輸入」模式的架構是根據在 Google Cloud 中執行的工作負載,選取要公開給私人運算環境使用的 API,但不會在公開網際網路上發布這些 API。此模式與閘道式輸出模式互相對應,且非常適合邊緣混合、分層混合和分割的多雲端情境。
與閘控出站模式相同,您可以使用 API 閘道或負載平衡器做為現有工作負載或服務的遮蔽,以便有限度地公開 API。這樣一來,私人運算環境、內部部署環境或其他雲端環境就能存取,如下所示:
- 部署在私人運算環境或其他雲端環境中的工作負載,可以使用內部 IP 位址與 API 閘道或負載平衡器通訊,但無法連線至部署在Google Cloud 中的其他系統。
- Google Cloud 與私人運算環境或其他雲端環境之間無法進行通訊。流量只會從私人環境或其他雲端環境啟動,並傳送至 Google Cloud中的 API。
架構
下圖顯示符合閘道式輸入模式需求的參考架構。
上述架構圖中的架構說明如下:
- 在 Google Cloud 端,將工作負載部署至應用程式虛擬私人雲端 (或多個虛擬私人雲端) 中。
- Google Cloud 環境網路會使用混合式或多雲網路連線,擴展至其他運算環境 (內部部署或其他雲端),以利環境之間的通訊。
- 您可以選擇使用傳遞 VPC 來達成以下目標:
- 提供額外的範圍安全層,允許存取應用程式 VPC 以外的特定 API。
- 將流量轉送至 API 的 IP 位址。您可以建立 VPC 防火牆規則,防止某些來源透過端點存取特定 API。
- 整合網路虛擬設備 (NVA),檢查轉接 VPC 中的第 7 層流量。
- 透過 API Gateway 或負載平衡器 (Proxy 或應用程式負載平衡器) 存取 API,以提供 Proxy 層,以及服務 API 的抽象層或外觀。如果您需要在多個 API 閘道執行個體之間分配流量,可以使用內部直通式網路負載平衡器。
- 透過 Private Service Connect 使用負載平衡器公開應用程式或服務,為已發布的服務提供有限且精細的存取權。
- 所有環境都應使用不重疊的 RFC 1918 IP 位址空間。
下圖說明使用 Apigee 做為 API 平台的此模式設計。
在上圖中,使用 Apigee 做為 API 平台可提供下列功能,以啟用受控入口模式:
- 閘道或 Proxy 功能
- 安全性功能
- 頻率限制
- 數據分析
在設計中:
- 北向網路連線 (針對來自其他環境的流量) 會經過應用程式 VPC 中與 Apigee VPC 相關聯的 Private Service Connect 端點。
- 在應用程式 VPC 中,內部負載平衡器會透過 Apigee VPC 中提供的 Private Service Connect 端點,公開應用程式 API。詳情請參閱已停用虛擬私人雲端對等互連的架構。
在應用程式 VPC 中設定防火牆規則和流量篩選條件。這樣做可提供精細且受控的存取權。這項功能還可防止系統直接存取應用程式,而無須經過 Private Service Connect 端點和 API 閘道。
此外,您也可以限制應用程式 VPC 中後端工作負載內部 IP 位址子網路的廣告,只在內部網路中放送,以免未經過 Private Service Connect 端點和 API 閘道,就直接可及。
特定安全性規定可能需要在應用程式 VPC 外部進行邊界安全檢查,包括混合連線流量。在這種情況下,您可以加入虛擬私有雲端傳遞網路,實施額外的安全層。這些層包括具有多個網路介面的下一代防火牆 (NGFW) 網路虛擬設備 (NVA),或是搭配入侵預防服務 (IPS) 的 Cloud Next Generation Firewall Enterprise,會在應用程式 VPC 外部執行深入封包檢查,如以下圖表所示:
如上圖所示:
- 來自其他環境的流量,會透過單獨的傳輸虛擬私有雲端,連往與 Apigee 虛擬私有雲端相關聯的傳輸虛擬私有雲端中的 Private Service Connect 端點。
- 在應用程式 VPC 中,內部負載平衡器 (圖表中的 ILB) 會透過 Apigee VPC 中的 Private Service Connect 端點公開應用程式。
您可以在同一個 VPC 網路中佈建多個端點,如下圖所示。如要涵蓋不同的用途,您可以使用 Cloud Router 和 VPC 防火牆規則控制不同的可能網路路徑。舉例來說,如果您使用多個混合式網路連線連線至內部部署網路,可以透過一個連線將部分流量從內部部署傳送至特定 Google API 或已發布服務,其餘流量則透過另一個連線傳送。 Google Cloud 此外,您也可以使用 Private Service Connect 全域存取權提供備援選項。
變化版本
閘控入口架構模式可與其他方法搭配使用,以滿足不同的設計需求,同時考量模式的通訊需求。模式提供以下選項:
從其他環境存取 Google API
如果您需要存取 Google 服務 (例如 Cloud Storage 或 BigQuery),但不想透過公開網際網路傳送流量,私人服務連線可提供解決方案。如下圖所示,Private Service Connect 端點的 IP 位址可透過混合網路連線,從內部部署或其他雲端環境啟用可及性,以便存取支援的 Google API 和服務 (包括 Google 地圖、Google Ads 和Google Cloud)。如要進一步瞭解如何透過 Private Service Connect 端點存取 Google API,請參閱「關於透過端點存取 Google API」。
在上述圖表中,您的內部部署網路必須使用 Cloud VPN 通道或 Cloud Interconnect VLAN 連結,連線至轉接 (消費者) VPC 網路。
您可以使用端點或後端存取 Google API。端點可讓您指定 Google API 套件。後端可讓您指定特定的 區域性 Google API。
使用 Private Service Connect 將應用程式後端公開至其他環境
在特定情況下,如分層混合模式所強調的,您可能需要在 Google Cloud 中部署後端,同時在私人運算環境中保留前端。雖然這種做法較不常見,但在處理可能會依賴舊版元件的重量級單體式前端時,這種做法就很實用。或更常見的情況是,在管理跨多個環境 (包括地端部署和其他雲端) 的分散式應用程式時,需要透過混合網路連線至 Google Cloud 中代管的後端。
在這種架構中,您可以在私人內部部署環境或其他雲端環境中使用本機 API 閘道或負載平衡器,直接將應用程式前端公開至公開網際網路。在 Google Cloud 中使用 Private Service Connect 可簡化與透過 Private Service Connect 端點公開的後端建立私人連線的作業,最好使用預先定義的 API,如下圖所示:
上圖所示的設計使用 Apigee Hybrid 部署,其中包含 Google Cloud 中的管理層和在其他環境中代管的執行階段層。您可以在內部部署環境或其他雲端環境中,在支援的 Kubernetes 平台 上,於分散式 API 閘道上安裝及管理執行階段層。根據您對跨 Google Cloud 和其他環境分散式工作負載的需求,您可以使用 Apigee 與 Apigee Hybrid。 Google Cloud 詳情請參閱「分散式 API 閘道」。
使用軸輻式架構,將應用程式後端公開給其他環境
在某些情況下,您可能需要公開來自不同 VPC 網路中 Google Cloud 託管的應用程式後端的 API。如下圖所示,中樞虛擬私有雲可做為各種虛擬私有雲 (輪輻) 的連線中心,透過私人混合式連線提供安全通訊。您也可以選擇在其他環境中使用本機 API 閘道功能 (例如 Apigee Hybrid),在應用程式前端代管的本機端終止用戶端要求。
如上圖所示:
- 為提供額外的 NGFW 第 7 層檢查功能,您可以選擇將具備 NGFW 功能的 NVA 整合至設計中。您可能需要這些功能才能遵守特定安全性規定,以及貴機構的安全性政策標準。
這項設計假設輻射狀 VPC 不需要直接 VPC 到 VPC 通訊。
- 如果需要使用 spoke-to-spoke 通訊,您可以使用 NVA 來促進這類通訊。
- 如果您在不同 VPC 中使用不同的後端,可以使用 Private Service Connect 將這些後端公開給 Apigee VPC。
- 如果您使用 VPC 對等互連功能,為輻射狀虛擬私有雲和樞紐虛擬私有雲之間的 northbound 和 southbound 連線建立連線,就必須考量透過 VPC 對等互連功能建立的 VPC 網路轉換限制。如要克服這項限制,您可以使用下列任一選項:
如果需要使用 NVA 檢查流量 (包括來自其他環境的流量),則應在混合式轉接 VPC 中終止對內部部署或其他雲端環境的混合式連線。
如果設計中未納入 NVA,您可以在中樞 VPC 中終止混合式連線。
如果需要特定的負載平衡功能或安全性功能 (例如新增 Google Cloud Armor 分散式阻斷服務保護或 WAF),您可以選擇透過外部 VPC 在邊界部署外部應用程式負載平衡器,然後將外部用戶端要求重新導向至後端。
最佳做法
- 如果您需要在本地端接收來自網際網路的用戶端要求,並在私人內部部署或其他雲端環境中代管前端,建議您使用 Apigee Hybrid 做為 API 閘道解決方案。這種做法還可讓您將解決方案無縫遷移至完全由 Google Cloud代管的環境,同時維持 API 平台 (Apigee) 的一致性。
- 根據您的需求和架構,搭配使用 Apigee Hybrid 部署與 Kubernetes 架構的 Apigee Adapter for Envoy。
- Google Cloud 中的 VPC 和專案設計應遵循本指南所述的資源階層和安全通訊模型規定。
- 在這個設計中納入傳遞虛擬私有雲,可彈性地在工作負載虛擬私有雲外部署額外的邊界安全措施和混合式連線。
- 使用 Private Service Connect,透過混合式連線網路的端點內部 IP 位址,從內部部署環境或其他雲端環境存取 Google API 和服務。詳情請參閱「透過 on-premises 主機存取端點」。
- 為保護 Google Cloud 專案中的服務,並降低資料外洩風險,請使用 VPC Service Controls 在專案或 VPC 網路層級指定服務範圍。
- 如有需要,您可以透過 VPN 或 Cloud Interconnect,將服務範圍擴大至混合式環境。如要進一步瞭解服務範圍的優點,請參閱「VPC Service Controls 總覽」。
- 使用 VPC 防火牆規則或防火牆政策,透過 Private Service Connect 端點控管對 Private Service Connect 資源的網路層級存取權。舉例來說,應用程式 (消費者) 虛擬私有雲的出站防火牆規則可限制 VM 執行個體存取端點的 IP 位址或子網路。如要進一步瞭解一般虛擬私有雲防火牆規則,請參閱「虛擬私有雲防火牆規則」。
- 設計包含 NVA 的解決方案時,請務必考量 NVA 的高可用性 (HA),以免發生單一故障點而導致所有通訊都遭到封鎖。請按照 NVA 供應商提供的 HA 和備援設計及導入指南操作。
- 為強化邊界安全性,並保護在各個環境中部署的 API 閘道,您可以選擇在其他運算環境 (混合雲或其他雲端) 中實作負載平衡和 Web 應用程式防火牆機制。在直接連線至網際網路的邊界網路中導入這些選項。
- 如果執行個體需要存取網際網路,請在應用程式 VPC 中使用 Cloud NAT,讓工作負載可以存取網際網路。這樣一來,您就能避免在部署於 API 閘道或負載平衡器後方的系統中,為 VM 執行個體指派外部公開 IP 位址。
- 如要處理輸出網路流量,請使用 Secure Web Proxy。這個 Proxy 有多項優點。
- 請參閱混合式雲端和多雲端網路模式的一般最佳做法。