🧭 一、為什麼要設定 IP 白名單?
在雲端服務中,限制特定 IP 存取是最基本的安全防線。
例如:
- 只允許內部網路或合作廠商訪問後台
- 封鎖海外惡意流量
- 測試環境僅開放 QA 團隊
☁️ 二、Cloud Armor 是什麼?
Cloud Armor 是 GCP 提供的 L7(應用層)Web Application Firewall(WAF)。
它位於 HTTP(S) Load Balancer 的流量路徑中,可依據 IP、Header、地理位置、URI 路徑 等條件過濾請求。
請求進入順序如下(兩種 Policy 的執行順序(非常重要)):
[Client IP] (來源IP)
↓
(Edge Layer)
→ Cloud Armor Edge Policy → (Allow / Deny based on IP)
↓
(Backend Layer)
→ Cloud Armor Backend Policy → (Apply WAF / Rate limiting)
↓
→ Cloud Run / GKE / VM
- 若 Edge Policy 拒絕,請求不會進入 LB。
- 若 Edge Policy 通過,才會進入對應的 Backend Policy。
- Edge Policy 與 Backend Policy 可以同時存在,但各層只能各有一個。
🧩 三、Cloud Armor 的兩種策略層級
Cloud Armor 提供兩種安全性政策層級:

🧠 重點澄清:
雖然名稱是 “Edge Policy”,但實際設定位置仍在 Load Balancer → Backend configuration → Security policy 中。
不同的是:
- 如果該 Load Balancer 為 Global external HTTP(S),套用的即為 Edge Policy。
- 若是 Regional 或 Internal LB,則為 Backend Policy。
🧰 四、建立 IP 白名單實作步驟
Step 1️⃣ 建立 Cloud Armor Policy (Edge安全性政策/後端安全政策)
前往:
Security → Cloud Armor → Create Policy

先建立政策(Policy)類型 ⇒ Edge安全性政策為例,完成後依步驟建立另一個政策(Policy)類型 ⇒ 後端安全政策

政策(Policy)預設完成的狀態

🎯 Priority(優先序)機制說明
在 Cloud Armor 中:

Edge安全性政策(Policy)加入新的規則(新增IP[例:xxx.xxx.xx.x]到白名單),如果要用[進階模式]的語法設定請參照inIpRange(origin.ip, "xxx.xxx.xx.x/24")

設定完成允許該IP加入白名單中

⬆️依原步驟建立另一個政策(Policy)類型 ,確認兩個政策(Edge安全性政策/後端安全政策)皆已建立並加入指定IP的規則
Step 2️⃣ 將 Policy 套用至 Load Balancer 的 Backend Service
進入:
Network Services → Load balancing → 選擇你的 LB(負載平衡器) →編輯

選擇 LB(負載平衡器)的主機服務→ 編輯 → Backend configuration(後端設定)


在 Security policy 欄位中選擇剛建立的 Cloud Armor Policy。
這裡是 Cloud Armor 的唯一掛載位置。
📌 GCP 會自動依據 LB 類型決定它是 Edge Policy 或 Backend Policy:
- Global External LB → Edge Policy(在 GFE 邊緣層生效)
- Regional / Internal LB → Backend Policy(在後端層生效)

✅ 五、結論
Cloud Armor 讓你能在 GCP 架構中同時實現「邊緣防禦 + 後端細控」的安全架構。
透過同一套 Policy 系統,你可以:
- 在全球邊緣節點攔截惡意流量(Edge Policy)
- 在後端服務層執行細節驗證(Backend Policy)
- 並透過 Terraform 或 CI/CD 自動化安全部署
這樣的雙層設計,使 GCP 架構能在效能與安全間達到最佳平衡。














