Cloud Armor 簡介
在現代威脅環境中,第 3 層和第 4 層防火牆已不足以保護 Web 應用程式免受複雜攻擊。Google Cloud Armor 是一項企業級 Web 應用程式防火牆 (WAF) 和分散式阻斷服務 (DDoS) 防護服務,它利用與 Google 保護其搜尋、Gmail 和 YouTube 相同的基礎設施。
對於 專業雲端安全工程師 (PSE) 而言,Cloud Armor 是面向網際網路應用程式的首要護盾。它提供對 HTTP(S) 流量的深度檢測,緩解 OWASP Top 10 風險 (如 SQL 注入和 XSS),並使用機器學習在大量攻擊到達您的後端服務之前偵測並阻斷它們。
白話文解釋
1. 超級安全掃描器 (WAF)
VPC 防火牆就像是在大門口檢查身分證。Cloud Armor 則像是機場的高科技 X 光掃描器。它不僅看身分證 (IP 位址),還會查看行李箱內部 (HTTP 負載),以尋找隱藏的武器 (SQL 注入字串或惡意指令碼),而這些是簡單的大門檢查會漏掉的。
2. 洪水閘門 (DDoS 防護)
想像巨浪 (DDoS 攻擊) 襲擊一個小島,如果沒有保護,小島會被淹沒。Cloud Armor 充當巨大的防波堤 (Google 的全域邊緣網路),吸收巨浪的衝擊。即使波浪每秒達到數百萬次請求,防波堤也能應對,確保內陸村莊 (您的後端 VM) 乾爽安全。
3. 智慧門衛 (自適應防護)
想像一位會學習的門衛。在正常情況下,他們知道典型客人的樣子。如果突然有一千個戴著同樣奇怪帽子的人試圖同時進入,門衛會注意到異常 (自適應防護) 並阻斷他們,即使他們尚未出現在「禁止名單」上。
透過預定義規則緩解 OWASP Top 10 風險
Cloud Armor 提供預定義 WAF 規則,這些規則易於啟用且涵蓋了常見的攻擊向量。
- SQL 注入 (SQLi): 防止攻擊者執行惡意 SQL 語句。
- 跨網站指令碼 (XSS): 阻斷試圖劫持使用者工作階段的指令碼。
- 本地檔案包含 (LFI): 防止存取伺服器上的敏感檔案。
- 遠端程式碼執行 (RCE): 阻斷執行未經授權指令的嘗試。
Cloud Armor 安全性策略 (Security Policies) 是一組規則,定義了應如何根據 IP、地理位置或請求內容處理流量 (允許、拒絕、速率限制)。
第 7 層安全性策略與機器人管理 (Bot Management)
Cloud Armor 運作於第 7 層 (應用程式層),這意味著它能理解 URL、標頭 (Headers) 和 Cookie。
機器人管理 (Bot Management)
並非所有機器人都是壞的 (例如 Googlebot),但許多是壞的 (例如爬蟲、憑證填充攻擊者)。
- reCAPTCHA Enterprise 整合: Cloud Armor 可以觸發 reCAPTCHA 驗證。如果使用者未通過,請求將在邊緣被阻斷。
- 機器人偵測: 使用行為分析和已知機器人特徵碼來識別並阻斷自動化流量。
IP 允許/拒絕清單與地理位置阻擋 (Geo-blocking)
有時您希望阻斷來自整個國家的流量,或者僅允許來自合作夥伴特定 IP 範圍的流量。
- IP 規則:
origin.ip == '1.2.3.4' - 地理位置阻擋:
origin.region_code == 'CN'或origin.region_code != 'US'。
Cloud Armor 規則套用於 全域邊緣 (Global Edge),這意味著惡意流量在遠離您的 VPC 處就被丟棄,從而節省您的頻寬和運算成本。
Managed Protection Plus (代管式防護進階版)
Cloud Armor 提供兩個層級:Standard (標準版) 和 Managed Protection Plus (進階版)。
Managed Protection Plus 的功能:
- DDoS 回應小組 (DRT): 在攻擊期間 24/7 獲得 Google 安全專家的支援。
- 可預測的定價: 防止由大規模 DDoS 攻擊引起的「帳單衝擊」(針對傳出流量成本提供帳單抵用額)。
- 進階機器人管理: 對自動化流量進行更精細的控制。
PSE 情境若提到「關鍵任務應用程式」、「DDoS 帳單衝擊保護」或「攻擊期間 24/7 DRT 支援」,正確答案是 Managed Protection Plus,而不是 Standard 層級。Standard 已內建預定義 WAF 規則與基本的 L3/L4 DDoS 防護,但只有 Plus 提供 egress 帳單抵用額、跨所有後端服務的 Adaptive Protection 遙測,以及直通 Google DDoS Response Team 的支援管道。
基於機器學習的自適應防護 (Adaptive Protection)
自適應防護 使用機器學習來保護您的應用程式免受複雜的第 7 層 DDoS 攻擊。
- 學習基準: 監控發送到您後端服務的正常流量模式。
- 偵測異常: 識別看起來像攻擊的突發流量。
- 建議規則: 自動生成 WAF 規則並發出警報。
- 一鍵緩解: 您可以一鍵套用建議的規則來阻斷攻擊。
搭配負載平衡器保護後端服務
Cloud Armor 附加到 全域外部 HTTP(S) 負載平衡器 或 網路負載平衡器。
工作流程:
流量 → 全域邊緣 (Cloud Armor) → GCLB → 後端服務 (執行個體群組/Cloud Run/GKE)。
對於 GKE 使用者,您可以使用 BackendConfig CRD 來管理 Cloud Armor 策略,這允許您直接在 Kubernetes manifest 中定義安全性規則。
自定義規則與 CEL 運算式
針對獨特的安全性需求,您可以使用通用運算式語言 (CEL) 編寫自定義規則。
範例:
- 阻斷特定的 User-Agent:
request.headers['user-agent'].contains('BadBot') - 僅允許特定的 Cookie:
has(request.headers['cookie']) && request.headers['cookie'].contains('auth_token') - 按 IP 進行速率限制: 對
request.path.matches('/login')設定每分鐘 10 次請求的速率限制。
Cloud Armor 邊緣安全性策略 (Edge Security Policies)
雖然標準策略套用於後端服務,但邊緣安全性策略套用於 Cloud Storage (GCS) 儲存桶或 Cloud CDN 內容。
- 使用此功能可防止對靜態資產或快取資料的未經授權存取。
速率限制 (Rate Limiting) 與節流 (Throttling)
為了防止「暴力破解」或「庫存囤積 (Inventory Hoarding)」攻擊,請使用速率限制。
- 節流 (Throttle): 降低請求速率 (例如:允許每秒 10 個請求,其餘延遲)。
- 基於速率的封鎖 (Rate-based Ban): 如果使用者超過閾值,則封鎖他們 5 分鐘。
Cloud Armor 預定義 WAF 規則 ID 都有版本號,考試會直接考:啟用 SQLi 用 evaluatePreconfiguredExpr('sqli-v33-stable')、XSS 用 xss-v33-stable,兩者都透過 gcloud compute security-policies rules create 並搭配 --action=deny-403 套用。Edge Security Policies 是唯一能附加到 Cloud CDN 與 Cloud Storage backend bucket 的策略類型,標準 (backend) security policy 無法附加上去。
對於位於 NAT IP 後的使用者,請謹慎使用速率限制。單個 IP 可能代表數百名合法使用者 (例如一間辦公室)。盡可能使用 Cookie 或其他標頭來識別唯一使用者。
與 reCAPTCHA Enterprise 整合
Cloud Armor 可以無縫地將可疑流量重新導向至 reCAPTCHA 驗證。
- 使用者發出請求。
- Cloud Armor 偵測到「類似機器人」的行為。
- Cloud Armor 提供 reCAPTCHA 頁面。
- 只有在使用者通過驗證後,請求才會轉發到後端。
Cloud Armor 的 CLI 指令
建立安全性策略
gcloud compute security-policies create my-waf-policy \
--description="包含 SQLi 防護的基本 WAF"
加入 SQLi 規則
gcloud compute security-policies rules create 1000 \
--security-policy=my-waf-policy \
--expression="evaluatePreconfiguredExpr('sqli-v33-stable')" \
--action=deny-403
附加到後端服務
gcloud compute backend-services update my-backend \
--security-policy=my-waf-policy \
--global
PSE 安全性最佳實踐
- 縱深防禦: 在邊緣使用 Cloud Armor,並在 VM 層級使用 VPC 防火牆。
- 預覽模式 (Preview Mode): 對於新規則,始終先使用
PREVIEW模式,在切換到ENFORCE(強制執行) 之前,查看它們是否會阻斷合法流量。 - 啟用日誌: 為安全性策略啟用日誌,以便在 Cloud Logging 中分析被阻斷的攻擊。
- 使用 Managed Protection Plus: 對於關鍵任務應用程式,以獲得 DDoS 成本保護和 DRT 支援。
- 限制後端 IP: 設定後端 VM 僅允許來自負載平衡器 IP 範圍的流量,以防止攻擊者繞過 Cloud Armor。
故障排除情境
情境:合法使用者收到 403 Forbidden 錯誤
診斷: 其中一個 WAF 規則過於寬泛 (誤判)。檢查 Cloud Logging 以查看是哪個規則 ID 觸發了拒絕。
修正: 將該規則設為 PREVIEW 模式,精煉運算式 (例如為特定 URL 加入例外),然後重新強制執行。
情境:應用程式遭受大規模 DDoS 攻擊且後端失效
診斷: 攻擊是大量且劇烈的。檢查自適應防護 (Adaptive Protection) 是否已建議規則。 修正: 套用建議的自適應防護規則,並聯絡 Google DDoS 回應小組 (如果已訂閱 Managed Protection Plus)。
PSE 考試情境
情境 1:OWASP 合規性
「一家公司需要確保其 Web 應用程式受到保護,免受 SQL 注入和跨網站指令碼攻擊。在 Google Cloud 中實施此要求的最高效方法是什麼?」
答案: 建立 Cloud Armor 安全性策略並啟用 sqli-v33-stable 和 xss-v33-stable 預定義規則。
情境 2:全域流量控制
「應用程式應僅對日本和澳洲的使用者開放,應阻斷來自所有其他國家的請求。這應該在哪裡執行?」
答案: 在 Cloud Armor 安全性策略中使用地理位置規則:origin.region_code != 'JP' && origin.region_code != 'AU' 並設定 DENY 動作。
總結清單
- 列出至少三個 Cloud Armor 可以緩解的 OWASP Top 10 風險。
- 解釋 Standard 與 Managed Protection Plus 層級的區別。
- 描述安全性策略中「預覽模式 (Preview Mode)」的目的。
- 了解自適應防護如何使用機器學習偵測攻擊。
- 解釋 Cloud Armor 如何與全域外部負載平衡器整合。