Google PCNE: 防火牆政策、Cloud Armor 與網路安全 — 學習指南
屬於 Google Professional Cloud Network Engineer — 學習指南. 使用經過驗證的解答練習: Google 考試中心, 或參加限時模擬考試: ExamRoll.io.
總覽
Google Cloud 上的防火牆政策、Cloud Armor 和網路安全共同提供了分層控制,用於網路區隔、減少攻擊面、DDoS 恢復能力以及可觀測性。有效的設計結合了身分感知目標設定、階層式強制執行、最小權限的傳入 (ingress) 和傳出 (egress) 流量控制,以及與 Google 全球負載平衡器綁定的邊緣保護。維運要成功,取決於是否了解規則評估方式、隱含行為、記錄範圍,以及在不同負載平衡模式下流量的實際來源。
VPC 防火牆規則與身分感知目標設定
VPC 防火牆規則是狀態式的 (stateful),並根據網路、方向和優先順序進行評估。
- 方向與隱含規則:
- 傳入 (Ingress) 規則是針對進入 VM 網路介面 (NIC) 的流量進行評估;傳出 (egress) 則是針對離開的流量。
- 每個 VPC 中都存在兩條隱含規則:一條隱含的「全部拒絕傳入」規則和一條隱含的「全部允許傳出」規則。這些規則無法修改,也不會產生記錄。預設網路還會建立數條寬鬆的規則;自訂 VPC 則不會。
- 優先順序與評估:
- 優先順序範圍是 0–65535,數字越小越先評估。第一條匹配的規則就完全決定了要採取的動作。
- 如果有多條相同優先順序的規則都匹配,則以最具體的 IP 範圍為準;如果具體程度相同且動作衝突,則以「拒絕」為準。應避免相同優先順序的規則重疊。
- 目標與來源:
- 目標定義了規則適用於哪些 VM:網路標記、VM 服務帳戶或安全標記。來源/目的地是 IP CIDR;對於傳入流量,您還可以為相同 VPC 內的來源指定來源服務帳戶或標記。
- 網路標記是專案使用者可設定的 VM 中繼資料;它們很簡單,但控管較弱。服務帳戶提供與工作負載身分和 IAM 綁定的身分感知目標設定,較不易被濫用。安全標記(透過 IAM 綁定的組織層級 resource manager 標記)讓安全團隊可以控制規則能鎖定哪些 VM,同時不允許開發人員自行指派可繞過保護的標記;使用它們可以達到更強的治理。
- 記錄:
- 可針對每條規則啟用防火牆規則記錄,以擷取該規則所匹配到允許或拒絕的連線。隱含的拒絕不會被記錄;如果您需要拒絕記錄,請新增一條啟用記錄功能的明確高優先順序拒絕規則。
- 記錄包含規則參考、動作、5 元組 (5-tuple)、位元組數,並且可以匯出以供鑑識分析。
設計與維運:
- 最小權限傳入:偏好使用明確的高優先順序拒絕規則來達成預設拒絕,然後再依據服務帳戶或安全標記新增範圍限定的允許規則。對於負載平衡器後方的執行個體群組,只允許來自負載平衡器或健康狀態檢查範圍(即流量的實際來源)的流量。
- 最小權限傳出:用一條明確的高優先順序「全部拒絕傳出」規則,加上針對性的允許規則(例如用於 NAT 範圍、合作夥伴 IP 或透過 Private Google Access 存取 Google API),來取代隱含的允許規則。請小心不要中斷回傳流量;狀態性 (statefulness) 的特性允許對已允許連線的回應,無須額外規則。
- 身分感知目標設定:
- 使用服務帳戶來制定「誰可以通訊」的政策,這與 IP 的變動無關。
- 使用安全標記來防止開發人員自行套用寬鬆的網路標記。
- 常見陷阱與故障模式:
- 負載平衡器的來源身分:對於外部 HTTP(S) 負載平衡器,後端看到的是來自 Google Front End (GFE) 代理的連線,而不是用戶端的 IP。應使用 Cloud Armor 來根據用戶端 IP 進行允許/拒絕;使用 VPC 防火牆來允許 GFE 的傳出流量和健康狀態檢查範圍。對於 TCP/UDP Network Load Balancers,後端會直接看到用戶端的 IP;因此防火牆對用戶端 IP 的允許清單會直接生效。
- 遺失的拒絕記錄:來自隱含規則的拒絕不會被記錄。請新增一條啟用記錄功能的明確拒絕規則,以觀察被封鎖的流量。
- 繞過 NAT:如果 VM 有外部 IP,它將會使用該 IP 進行傳出連線,從而繞過 Cloud NAT。移除外部 IP 以強制使用 NAT。
- 規則不符的診斷:確認方向、目標身分(標記/服務帳戶/安全標記)、優先順序和來源篩選器。如果記錄顯示沒有匹配,表示流量並未觸發您預期的規則。
簡短範例,具備記錄功能的身分感知傳入允許規則:
- 目標:服務帳戶 sa: web-backend@project.iam.gserviceaccount.com
- 來源範圍:GFE 代理範圍 + Google 健康狀態檢查
- 優先順序:100
- 動作:允許 tcp:80,443
- 記錄:開啟
階層式防火牆政策、區隔與服務邊界
階層式防火牆政策會在任何 VPC 層級的規則之前,強制執行機構或資料夾層級的規則。使用它們來確保安全護欄 (例如,「拒絕所有從網際網路到非負載平衡 VM 的傳入流量」或「拒絕來自 0.0.0.0/0 的 RDP/SSH」)。較低層級的 VPC 規則無法覆寫已經匹配到的機構/資料夾層級的拒絕規則。
區隔策略:
- 傳入 (Ingress) 區隔:
- 機構/資料夾政策:針對高風險連接埠設定高優先權的拒絕規則,並設定預設拒絕,僅允許經核准的進入點。在需要時,允許 Google 健康檢查的範圍。
- VPC 規則:針對由服務帳戶或安全標記指定的工作負載,設定特定的允許規則。對於內部服務,使用 Private Service Connect 或內部負載平衡,搭配受限的規則來進行東西向存取。
- 傳出 (Egress) 區隔:
- 在機構/資料夾或 VPC 範圍內,用一個高優先權的「全部拒絕」傳出規則,來取代隱含的「全部允許」傳出規則,然後僅開啟必要的連線:
- 透過 Cloud NAT 或經核准的傳出防火牆存取網際網路。
- 透過 Private Google Access 以及 private.googleapis.com 或 restricted.googleapis.com 端點存取 Google API。受限端點 (restricted endpoint) 會與 VPC Service Controls 搭配使用,以防止資料外洩至未經授權的身分或專案。
- 對於將 0.0.0.0/0 流量導向第三方防火牆,但仍需要直接存取 Google API 而不產生繞送回傳 (hairpinning) 的設計,請為 Google API 的 VIP 區塊新增靜態路由指向預設網際網路閘道,並在子網路上啟用 Private Google Access。這能在保留安全控制的同時,減少存取第一方服務時的延遲及對第三方設備的依賴。
- 在機構/資料夾或 VPC 範圍內,用一個高優先權的「全部拒絕」傳出規則,來取代隱含的「全部允許」傳出規則,然後僅開啟必要的連線:
服務邊界互動:
- VPC Service Controls 在專案和支援的 Google API 周圍定義邊界,以減輕資料外洩的風險。當邊界啟用時:
- 優先使用 restricted.googleapis.com,如此一來 API 呼叫就必須保留在邊界的情境之內。
- 確保 DNS 將相關網域指向受限或私有端點,並且路由不會回傳到不受信任的傳出設備。
- 將邊界政策與傳出防火牆的允許清單結合,以避免意外洩漏到非邊界端點。
權衡取捨:
- 機構層級的拒絕規則簡化了風險管理,但如果變更控制流程緩慢,可能會阻礙合法的實驗;可使用安全標記和文件化的請求工作流程來委派例外情況。
- 積極的傳出拒絕規則可縮小衝擊範圍,但需要穩健的服務探索和變更控制機制以防止服務中斷。
Cloud Armor、WAF 與全球邊緣防護
Cloud Armor 將安全政策綁定到外部 HTTP(S) 和外部 TCP/SSL Proxy 負載平衡器,以在邊緣提供保護。
- WAF 規則:
- 使用針對 OWASP Top 10 和常見 CVEs 的預先設定規則,以及使用表達式語言來匹配標頭、IP、國家、URI 等的自訂規則。
- 為每個後端服務附加規則,並按優先順序排序。動作包括允許、以特定回應拒絕,或針對 HTTP(S) 進行重新導向。
- 速率限制:
- 強制執行基於金鑰的配額 (例如,依據用戶端 IP、標頭或 cookie),並具備滑動視窗和突發流量控制。基於速率的封鎖會自動為濫用來源新增暫時性的拒絕規則。
- Adaptive Protection:
- 由機器學習驅動的異常偵測會學習正常的請求模式,並揭露 L7 DDoS 或濫用行為。它可以建議或自動產生候選規則;請先在預覽模式下部署它們。
- 預覽模式:
- 在不影響流量的情況下評估新規則。預覽結果會被記錄下來,從而實現低風險的調整。驗證後再切換到強制執行模式。
DDoS 防禦與全球負載平衡器控制:
- Google 的全球任播 (anycast) 邊緣會吸收 L3/L4 的容量攻擊;SYN/ACK 驗證、格式錯誤封包的處理,以及邊緣容量的自動擴展,都已內建於外部 HTTP(S) 和 TCP/SSL Proxy 的平台中。
- 與 Cloud Armor 結合,以減輕 L7 洪水攻擊、憑證填充攻擊和應用程式濫用。
- 在負載平衡器上強制執行 TLS 政策、現代加密套件,並在需要時執行用戶端 mTLS。對於 IPv6 需求,請使用具備 IPv6 VIP 的全球外部 HTTP(S) 或 TCP/SSL Proxy 負載平衡器。
- 若要將特定用戶端 IP 加入負載平衡應用程式的允許清單:
- 如果使用 HTTP(S),建議使用以用戶端 IP 為金鑰的 Cloud Armor 允許清單,並將後端防火牆規則限制為僅允許 GFE 和健康檢查來源。
- 如果使用 TCP/UDP Network Load Balancer,後端會看到真實的用戶端 IP;請將 VPC 防火牆允許清單直接應用於目標執行個體 (透過安全標記或服務帳戶),並包含 Google 健康檢查的 IP。
操作注意事項:
- 規則在邊緣進行評估;不正確的允許清單可能立即導致全球性的服務中斷。請使用預覽模式和分階段推出,並監控 Cloud Armor 日誌和負載平衡器指標。
- 工作階段親和性的需求各不相同:對於混合協定 (例如,來自同一個用戶端到同一個後端集區的 HTTP 和 TFTP),負載平衡器上的用戶端 IP 親和性可維持跨連接埠的黏著性。
可視性、檢測與事件應變
可觀測性:
- VPC Flow Logs 提供每個子網路抽樣的 5-tuple 流量記錄,並可設定抽樣方式、中繼資料擴充與彙總間隔。可用於建立效能基準與偵測異常。
- 防火牆規則記錄會針對已啟用記錄的特定規則,擷取每個連線的允許 (allow) 和拒絕 (deny) 記錄;建立明確的拒絕規則,以記錄那些原本會觸發隱含拒絕規則而被阻擋的流量。
- Cloud Armor 請求記錄與預覽結果會顯示規則比對、採取的動作決策,以及在網路邊緣的速率限制結果。
檢測與偵測:
- Packet Mirroring 會將流量複製到同一個 region 的收集器,以進行深度封包檢測 (deep packet inspection) 或入侵偵測系統 (IDS)。透過子網路、標籤或服務帳戶來限定鏡像範圍,以限制額外負擔。Packet Mirroring 屬於頻外 (out-of-band) 作業且不會阻擋流量;可與 Cloud IDS 或第三方感測器搭配使用。
- 線上 (inline) L7 檢測需要一個雙網卡 (2-NIC) 的應用裝置模式,並讓流量路由通過它。設計時需考量對稱路由與高可用性 (HA);考量 regional 故障網域與潛在的吞吐量瓶頸。線上設備若發生故障會擴大爆炸半徑 (blast radius);在適用情況下,部署託管式執行個體群組 (managed instance groups) 與具備健康狀態檢查的路由容錯移轉模式。
事件應變實務:
- 將日誌集中到一個安全專案中,針對突然暴增的拒絕事件、新建立的高優先權規則或 Cloud Armor 速率限制觸發事件建立偵測機制。使用 BigQuery 或 SIEM 整合進行調查。
- 確保 IAM 符合最低權限原則:在 Shared VPC 中,Network Admin 權限不足以修改防火牆政策,需要 Security Admin 權限;在網路與安全團隊之間劃分職責。
- 當您需要 SSH 緊急存取 (break-glass access) 權限,但未預先配置金鑰時,如果 IAM 和執行個體中繼資料設定允許,可從 Cloud Shell 使用
gcloud compute ssh指令,透過執行個體中繼資料推送一個臨時金鑰。 - 針對「沒有日誌」的情境進行疑難排解時:驗證規則與流量方向,記住隱含的拒絕規則不會產生記錄,並檢查是否有階層式政策已在更早的階段比對成功。
實務問題情境
Contoso Retail 在 Google Cloud 上運行一個多層式 (multi-tier) 網路平台。前端流量由一個 global external HTTP(S) load balancer 提供服務;應用程式 VM 在多個 region 中運行,且沒有外部 IP。除了 Google API (BigQuery 和 Pub/Sub) 之外,所有出口 (egress) 流量都必須透過第三方 NGFW 進行髮夾彎 (hairpin) 路由。安全團隊希望建立全機構的防護機制 (guardrails)、為合作夥伴試行計畫設定用戶端 IP 允許清單,並在測試可疑的惡意用戶端時將風險降至最低。
解決方法:
建立階層式防護機制
- 建立一個組織層級的階層式防火牆政策,拒絕所有從 0.0.0.0/0 到達缺少
env=public-entry安全標籤的 VM 目標的傳入流量,並拒絕來自網際網路的管理連接埠 (SSH, RDP)。 - 理由:在全球範圍內阻止不安全的暴露;由於 IAM 對標籤的控制,開發人員無法自行指派安全標籤。
- 建立一個組織層級的階層式防火牆政策,拒絕所有從 0.0.0.0/0 到達缺少
基於身分識別的工作負載目標設定
- 為前端、應用程式和資料庫層指派不同的服務帳戶。在 VPC 層級的防火牆規則中引用這些服務帳戶,以僅允許必要的東西向流量 (例如,前端→應用程式 tcp:443,應用程式→資料庫 tcp:5432)。
- 理由:將政策與工作負載的身分識別綁定,並防止因意外誤用標籤而產生的問題。
為負載平衡的後端設定傳入允許規則
- 在應用程式 VM 上,建立一個高優先權的傳入允許規則,目標為應用程式服務帳戶,來源範圍設定為 Google Front End (GFE) 代理伺服器和 Google 健康狀態檢查的 IP 範圍;並啟用記錄功能。
- 理由:對於 HTTP(S) L7,後端應只接受來自 GFE 和健康狀態檢查 IP 的連線;用戶端 IP 允許清單應在網路邊緣強制執行。
Cloud Armor 邊緣政策
- 將一個 Cloud Armor 政策附加到 external HTTP(S) load balancer 的後端服務上:
- 新增一個合作夥伴用戶端 IP 允許清單規則。
- 啟用針對 OWASP Top 10 的預先配置 WAF 規則。
- 設定一個以用戶端 IP 為基礎的速率限制,並採用保守的閾值。
- 理由:在用戶端 IP 可見且流量到達 VPC 之前,於網路邊緣強制執行用戶端來源限制與應用程式層的保護。
- 將一個 Cloud Armor 政策附加到 external HTTP(S) load balancer 的後端服務上:
自動調整保護機制與安全測試
- 啟用 Adaptive Protection,並為可疑的用戶端 IP 建立一個處於預覽模式 (preview mode) 的拒絕規則。
- 理由:預覽模式允許在不影響真實用戶的情況下驗證行為;在強制執行規則前,可透過日誌確認該用戶端是否為惡意。
使用 Private Google Access 進行出口流量分段
- 保留一條指向第三方 NGFW 的 0.0.0.0/0 路由。為 Google API 的 VIP 新增自訂靜態路由,指向預設的網際網路閘道,並在子網路上啟用 Private Google Access。新增一條明確的高優先權出口全部拒絕規則,然後再設定允許流向 NGFW next-hop 和 Google API 的特定規則;並啟用記錄功能。
- 理由:強制一般網際網路出口流量通過 NGFW,同時允許對 BigQuery 和 Pub/Sub 的存取能以私有方式進行,無需不必要的髮夾彎路由。
NAT 與外部 IP 控制
- 對於需要網際網路出口但沒有外部 IP 的執行個體,使用 Cloud NAT。審核並移除所有必須使用 NAT 的運算執行個體上的任何外部 IP。
- 理由:防止繞過 NAT,並維持單一的出口流量態勢。
檢測與監控
- 在每個 region 為應用程式層啟用 Packet Mirroring,目標設定為應用程式服務帳戶,並將鏡像流量傳送到一個 regional IDS 收集器。為關鍵規則啟用 VPC Flow Logs 和防火牆規則記錄;將 Cloud Armor 和 VPC 的日誌匯出到一個中央安全專案和 BigQuery。
- 理由:為威脅獵捕 (threat hunting) 和效能基準建立提供深度可視性,且不會產生路徑中的延遲。
準備就緒的事件應變操作
- 針對 Cloud Armor 拒絕事件、防火牆拒絕日誌的暴增,或階層式政策的變更建立警示。記錄使用 Cloud Shell
gcloud compute ssh進行受控緊急存取的 SSH 緊急應變程序。 - 理由:快速偵測進行中的濫用行為,並為修復保留一條安全的操作路徑。
- 針對 Cloud Armor 拒絕事件、防火牆拒絕日誌的暴增,或階層式政策的變更建立警示。記錄使用 Cloud Shell
變更安全性與復原
- 將 Cloud Armor 的變更先置於預覽模式,然後再強制執行。對於防火牆變更,在將其推廣到組織層級政策之前,先使用較低風險的優先權和 Canary 專案進行測試。
- 理由:在維持強健安全態勢的同時,將因政策錯誤導致全球性中斷的機會降至最低。
← VPC 架構、子網路與位址規劃 · 所有領域 · 混合式連線、Cloud Router 與 BGP →
練習這些題目 → · 在 ExamRoll.io 上限時練習 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
通過考試 →