本文提供架構最佳做法,說明如何在 Cloud Next Generation Firewall (Cloud NGFW) 中設計、管理及強制執行安全標記。安全標記會將防火牆規則評估結果繫結至虛擬機器 (VM) 工作負載身分,而非動態 IP 位址,因此可提供身分感知網路安全方法。安全標記是 Cloud Next Generation Firewall Essentials 方案內含的基礎功能,所有Cloud NGFW 方案都支援這項功能。本指南適用於負責設計及維護雲端網路安全政策的網路架構師、安全管理員和 DevOps 工程師。
本文將最佳做法分為安全代碼生命週期的四個主要階段:
- 設計代碼結構定義:將代碼與工作負載身分對齊、設定微細分段,並保留粗略代碼,以免超出安全代碼配額限制。
- 設定存取控管和管理:建立 Identity and Access Management (IAM) 分散權責、選擇適當的範圍,並在 VM 佈建期間強制執行標記。
- 設計防火牆政策和規則邏輯: 最佳化規則評估、設定階層式政策,以及實作安全預設拒絕規則。
- 保護、監控及稽核:使用標記保留功能防止意外刪除、啟用防火牆記錄功能,並定期執行存取稽核。
使用本指南前,請務必先熟悉「防火牆安全標記總覽」和「Cloud NGFW 總覽」。
最佳做法摘要
下表彙整安全代碼生命週期的核心最佳做法:
| 生命週期階段 | 重要建議 | 說明 |
|---|---|---|
| 標記結構定義設計 | 將標記與 Workload Identity 對齊 | 依據工作負載角色定義標記鍵 (例如 env/prod 或 tier/database)、強制執行互斥值,並保留粗略的標記,以符合配額限制。 |
| 存取控管與治理 | 強制執行分散權責 | 只將 roles/resourcemanager.tagAdmin 角色授予安全團隊,將 roles/resourcemanager.tagUser 角色限制在部署管道中,並選擇適當的範圍 (organization=auto 與 network)。 |
| VM 佈建 | 在建立時強制執行標籤 | 在佈建期間將安全標記繫結至 VM 網路介面,並使用機構政策,要求所有新執行個體都必須有標記。 |
| 政策架構 | 指定目標安全標記 | 在防火牆規則中使用目標安全標記,進行靜態評估效能。 在階層式政策中設定預設拒絕規則,保護未標記的資源。 |
| 跨網路安全防護 | 安全地跨虛擬私有雲 (VPC) 連線 | 在對等互連的虛擬私有雲網路和 Network Connectivity Center (NCC) 輪輻中,維持身分邊界,不必管理靜態 CIDR 區塊。 |
| 保護和監控 | 保護及監控代碼 | 套用標記保留項目,防止意外刪除;啟用防火牆規則記錄功能以利排解問題;定期稽核 IAM 指派項目。 |
設計標記架構
結構良好的標記結構會簡化防火牆規則、簡化安全稽核,並防止政策衝突。
將標記與工作負載身分對齊
根據不同的工作負載角色、應用程式層級或法規分類,設計安全的標記鍵:
- 環境層級:
env/prod、env/staging、env/dev - 應用程式層級:
tier/frontend、tier/backend、tier/database - 法規遵循狀態:
scope/pci-dss、scope/hipaa
範例:三層式應用程式微區隔
一般的三層式網頁應用程式包含網頁前端、應用程式後端和資料庫。為保護資料庫免於未經授權的存取,您可以使用安全標記強制執行網路微區隔,讓每個層級只能與相鄰層級通訊:
[ Web Tier (tag: tier/frontend) ]
|
| Allow port 8080 (Web can communicate with App)
v
[ App Tier (tag: tier/backend) ]
|
| Allow port 5432 (App can communicate with DB)
v
[ Database Tier (tag: tier/database) ]
如要強制執行這項流程,請設定兩項防火牆政策規則:
- 規則 1 (網頁至應用程式):允許在通訊埠
8080上傳入,來源標記為tier/frontend,目標標記為tier/backend。 - 規則 2 (應用程式到資料庫):允許通訊埠
5432的輸入流量,來源標記為tier/backend,目標標記為tier/database。
結果:由於沒有防火牆規則允許 tier/frontend 和 tier/database 之間的流量,因此網頁前端無法直接與資料庫層通訊。即使 VM 執行個體共用相同的 IP 子網路,Cloud NGFW 也會自動強制執行這個界線。
從網路標記遷移至安全標記
從虛擬私有雲網路標記升級至防火牆安全標記時,請注意下列架構差異:
| 功能 | 網路標記 (虛擬私有雲規則) | 安全標記 (防火牆政策) |
|---|---|---|
| 目標規格 | targetTags = ["web-tier"] |
targetSecureTags = ["tagValues/1234567890"] |
| 來源規格 | sourceTags = ["db-client"] |
sourceSecureTags = ["tagValues/0987654321"] |
| 強制執行範圍 | 僅限單一虛擬私有雲網路 | 跨對等互連的虛擬私有雲網路、NCC 輪輻和階層式政策 |
| 轉送支援 | 您可以將網路標記做為靜態路由的下一個躍點 (也稱為路由標記) | 您無法使用安全標記進行路徑設定。僅用於防火牆流量篩選。 |
| 存取控管 | 無法對個別標記設定 IAM 權限 | Resource Manager 和 IAM 角色會嚴格控管標記存取權和繫結 |
規定互斥的標記值
確保資源的每個標記鍵都只收到一個值。舉例來說,VM 執行個體必須指派 env/prod 或 env/dev,但絕不能同時指派兩者:
做法:指派單一環境標記 (
env/prod),並透過參照目的地標記 (例如env/shared-logging) 的明確防火牆規則,允許存取共用服務。請勿在同一部 VM 上堆疊多個環境標記 (
env/prod和env/dev)。這麼做會導致 VM 符合開發防火牆規則,將生產環境資源暴露給開發人員流量。
保留粗略的標記,以免超出配額
將類似的 VM 執行個體歸入共用標記值,而非建立專屬的執行個體特定標記。粗略標記可讓您輕鬆管理資安態勢,並防止貴機構超出安全標記配額限制。
規劃標記結構定義時,請注意下列限制:
針對多 NIC VM 使用標記,而非服務帳戶
建議您在防火牆政策中,使用安全標記做為來源或目的地,而非服務帳戶。與服務帳戶不同,您可以直接將安全標記繫結至多宿主 VM 的個別網路介面 (vNIC)。這種做法可讓您對每個網路介面強制執行不同的網路政策。
設定存取控管和管理機制
IAM 會控管安全標記,提供嚴格的存取控管機制,並明確劃分職責。
使用 IAM 角色分散權責
在建立代碼的管理員和佈建工作負載的團隊之間,建立作業界線:
- 標記管理員 (
roles/resourcemanager.tagAdmin):僅授予中央網路和安全管理員,用來建立、編輯及刪除標記鍵和值。 - 標記使用者 (
roles/resourcemanager.tagUser):在特定專案或資源範圍內,授予自動化 CI/CD 部署管道或佈建服務帳戶,將標記繫結至 VM 網路介面。 - 代碼檢視者 (
roles/resourcemanager.tagViewer):授予作業和稽核團隊,讓他們唯讀檢視代碼設定。
防止自行標記和提權
- 做法:在專案或網路介面層級,僅將
roles/resourcemanager.tagUser授予經過稽核的基礎架構即程式碼 (IaC) 部署管道 (例如 Terraformgoogle_tags_tag_binding工作流程)。 - 請勿:在機構層級廣泛授予開發人員群組
roles/resourcemanager.tagUser。這可防止開發人員將正式版代碼 (例如env/prod) 自行附加至未經授權的開發工作負載。
適當設定範圍標記鍵
在符合您作業控管的資源階層層級定義安全標記鍵:
- 機構範圍標記 (
purpose-data=organization=auto):在機構或資料夾層級定義鍵,集中管理多個虛擬私有雲網路、對等互連網路和階層式防火牆政策的安全。 - 網路範圍標記 (
purpose-data=network):僅適用於專案層級隔離,標記必須永久限制在單一虛擬私有雲網路中。
在建立 VM 時強制指派標記
在建立時將安全標記繫結至 VM 網路介面,可確保工作負載在啟動時立即受到保護。
如要確保使用者和自動化管道無法佈建沒有必要安全標記的執行個體,請設定機構政策,強制在資源建立時加入標記。這項政策會禁止建立未標記且未受保護的 VM 執行個體。
設計防火牆政策和規則邏輯
將安全標記整合至防火牆政策,以最佳化規則評估程序,並維持一致的防護。
使用階層式防火牆政策集中執行
在機構或資料夾層級的階層式防火牆政策中,定義參照安全標記的防火牆規則。階層式政策會強制執行全機構管理,當地專案擁有者無法覆寫。
指定有效率的目標安全標記
建立防火牆政策規則時,請盡可能指定目標安全標記 (targetSecureTags)。Cloud NGFW 評估目標標記和來源標記的方式不同:
目標安全標記 (靜態比對):具有目標標記的規則只會靜態套用至帶有這些標記的 VM 執行個體。這可減少每個 VM 評估的規則數量,並提升效能。
來源安全標記 (每個連線動態比對):如果規則只指定來源標記 (
sourceSecureTags),而未指定目標標記,系統會針對網路中所有 VM 執行個體的每個連線動態評估規則,進而增加處理負擔。
透過階層式預設拒絕設定,實作安全的預設設定
由於 VM 執行個體不會從父項資料夾或機構繼承GCE_FIREWALL安全標記,因此請在階層式政策中定義安全的回退規則,保護未標記的資源:
預設拒絕規則:在機構或資料夾層級建立低優先順序規則 (例如優先順序
65000),根據預設拒絕所有流量。有條件的允許規則:建立優先順序較高的規則,只允許特定安全標記之間的流量 (例如
tier/frontend到tier/backend)。
如果建立 VM 執行個體時未加上標記,或標記已分離,則階層式預設拒絕規則會自動封鎖執行個體的來回流量。
在對等互連網路和 NCC 中使用安全標記
使用安全標記控管透過 VPC 網路對接或 NCC VPC 輪輻連線的 VPC 網路流量。安全標記會在連線網路之間維持身分識別感知界線, 不需要您管理變更的 CIDR 區塊。
保護、監控及稽核
持續運作的控制項可確保安全代碼設定維持安全無虞,並具備復原能力。
使用標記保留功能保護重要標記值
防止因刪除使用中的代碼而意外中斷服務:
- 對重要的安全代碼值套用代碼保留,防止遭到刪除。
- 從 VM 網路介面卸離安全標記前,請先確認沒有任何使用中的防火牆規則依賴該標記。您必須先移除所有資源繫結 (和任何標記保留項目),才能刪除安全標記值。 Google Cloud
啟用防火牆規則記錄
針對使用安全標記的所有規則,啟用防火牆政策規則記錄。這些記錄會擷取相符的流量點擊,協助您稽核存取模式、驗證區隔,以及排解連線問題。
定期稽核 IAM 角色指派
定期稽核 roles/resourcemanager.tagAdmin 和 roles/resourcemanager.tagUser 的主體指派作業。這項稽核可確保只有授權管道具有標記繫結權限,防止提權,並維護環境隔離。