下列各節將說明 Google Cloud Armor 如何與其他 Google Cloud 功能和產品互動。
Google Cloud Armor 和 VPC 防火牆規則
Google Cloud Armor 安全性政策和 VPC 防火牆規則的功能不同:
- Google Cloud Armor 安全性政策可提供邊緣安全性,並針對 Google 前端 (GFE) 的用戶端流量採取行動。
- 虛擬私有雲防火牆規則可允許或拒絕與後端的流量連線。您必須建立輸入允許防火牆規則,目標為負載平衡的後端 VM,來源則是全域外部應用程式負載平衡器或傳統版應用程式負載平衡器使用的 IP 範圍。這些規則可讓 GFE 和健康檢查系統與後端 VM 通訊。
舉例來說,假設您希望只允許 CIDR 範圍 100.1.1.0/24 和 CIDR 範圍 100.1.2.0/24 的流量存取全域外部應用程式負載平衡器或傳統版應用程式負載平衡器。您的目標是確保流量無法直接到達後端負載平衡的執行個體。換句話說,只有透過全域外部應用程式負載平衡器或傳統版應用程式負載平衡器 (搭配相關聯的安全性政策) 轉送的外部流量,才能抵達執行個體。
在上圖中,您可以透過以下方式設定 Google Cloud 部署作業,達成安全性目標:
- 建立兩個執行個體群組,一個位於
us-west1
區域,另一個位於europe-west1
區域。 - 將後端應用程式執行個體部署至執行個體群組中的 VM。
- 在 Premium Tier 中建立全域外部應用程式負載平衡器或傳統版應用程式負載平衡器。設定網址對應和單一後端服務,後端為您在上一個步驟中建立的兩個執行個體群組。確認負載平衡器的轉送規則使用
120.1.1.1
外部 IP 位址。 - 設定 Google Cloud Armor 安全性政策,允許來自 100.1.1.0/24 和 100.1.2.0/24 的流量,並拒絕所有其他流量。
- 將這項政策與負載平衡器的後端服務建立關聯。如需操作說明,請參閱「設定安全政策」。外部 HTTP(S) 負載平衡器的網址對應較為複雜,因此可以參照多個後端服務。您可以視需要將安全性政策與一或多個後端服務建立關聯。
- 設定入站允許防火牆規則,允許全域外部應用程式負載平衡器或傳統應用程式負載平衡器傳出的流量。詳情請參閱「防火牆規則」。
使用混合式部署作業的 Google Cloud Armor
在混合式部署中,全域外部應用程式負載平衡器或傳統版應用程式負載平衡器需要存取在 Google Cloud外執行的應用程式或內容來源,例如在其他雲端服務供應商的基礎架構中。您可以使用 Google Cloud Armor 保護這類部署作業。
在下圖中,負載平衡器有兩個後端服務。其中一個使用執行個體群組做為後端。另一個後端服務的後端是網際網路 NEG,而網際網路 NEG 與在第三方供應商資料中心執行的應用程式相關聯。
當您將 Google Cloud Armor 安全性政策套用至後端服務 (後端為網際網路 NEG),Google Cloud Armor 會檢查傳送至全球外部應用程式負載平衡器或經典應用程式負載平衡器的每個 L7 要求,該負載平衡器是為了該後端服務而提供。
混合式部署的 Google Cloud Armor 防護功能,適用於適用於網際網路 NEG 的限制。
搭配 Google Kubernetes Engine (GKE) Ingress 的 Google Cloud Armor
設定 Google Cloud Armor 安全政策後,您可以使用 Kubernetes Ingress 在 GKE 中啟用這項政策。
您可以將安全性政策名稱新增至 BackendConfig
,藉此透過 BackendConfig
資源參照安全性政策。下列 BackendConfig
資訊清單會指定名為 example-security-policy
的安全性政策:
apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
namespace: cloud-armor-how-to
name: my-backendconfig
spec:
securityPolicy:
name: "example-security-policy"
如要進一步瞭解 Ingress 功能,請參閱「設定 Ingress 功能」。
Google Cloud Armor 搭配 Cloud CDN
如要保護 CDN 來源伺服器,您可以搭配使用 Cloud CDN 和 Google Cloud Armor。Google Cloud Armor 可保護 CDN 原始伺服器免於遭受應用程式攻擊,並降低 OWASP 前 10 大風險,以及強制執行第 7 層篩選政策。有兩種安全性政策會影響 Google Cloud Armor 與 Cloud CDN 的運作方式:邊緣安全性政策和後端安全性政策。
Edge 安全性政策
您可以為全域外部應用程式負載平衡器或傳統版應用程式負載平衡器後方的 Cloud CDN 後端服務和 Cloud Storage 後端值區,使用邊緣安全性政策。在快取內容之前,使用邊緣安全政策篩選要求。
後端安全性政策
當 Google Cloud Armor 後端安全性政策套用至已啟用 Cloud CDN 的後端服務時,這些政策只會套用至轉送至後端服務的要求。這些要求包括動態內容要求和快取失敗,也就是未命中或略過 Cloud CDN 快取的要求。
當邊緣安全性政策和後端安全性政策附加至相同的後端服務時,後端安全性政策只會針對已通過邊緣安全性政策的快取失敗要求強制執行
下圖僅顯示在邊緣安全性政策允許要求後,後端安全性政策如何與 Cloud CDN 來源搭配運作。
如要進一步瞭解 Cloud CDN,請參閱 Cloud CDN 說明文件。
搭配 Cloud Run、App Engine 或 Cloud Run 函式的 Google Cloud Armor
您可以搭配無伺服器 NEG 後端使用 Google Cloud Armor 安全性政策,該後端會指向 Cloud Run、App Engine 或 Cloud Run 函式 服務。
不過,如果您將 Google Cloud Armor 與無伺服器 NEG、Cloud Run 或 Cloud Run 函式搭配使用,就必須採取特殊步驟,確保所有對無伺服器端點的存取權皆經過 Google Cloud Armor 安全性政策篩選。
擁有無伺服器應用程式預設網址的使用者,可以略過負載平衡器,直接前往服務網址。這會略過 Google Cloud Armor 安全性政策。如要解決這個問題,請停用 Google Cloud 自動指派給 Cloud Run 服務或 Cloud Run 函式 (第 2 代) 的預設網址。如要保護 App Engine 應用程式,您可以使用入口控制項。
如果您使用輸入控管功能,確保存取控管機制套用至所有輸入流量,則在設定 Cloud Run 函式或 Cloud Run 時,可以使用 internal-and-gclb
。這項設定只允許內部流量,以及傳送至全域外部應用程式負載平衡器或傳統版應用程式負載平衡器公開的外部 IP 位址的流量。系統會封鎖從私人網路外部傳送至這些預設網址的流量,以免使用者規避透過全域外部應用程式負載平衡器或傳統應用程式負載平衡器設定的任何存取控制項 (例如 Google Cloud Armor 安全性政策)。
如要進一步瞭解無伺服器網路端點群組 (NEG),請參閱「無伺服器網路端點群組總覽」和「設定無伺服器網路端點群組 (NEG)」。