GCP 資安與 Cloud Armor 防護完整指南:打造安全的雲端架構
GCP 資安與 Cloud Armor 防護完整指南:打造安全的雲端架構
雲端安全從來不是選項,而是必要條件。2024 年全球雲端安全事件造成的平均損失達 445 萬美元,而大多數事件都源自於設定錯誤與權限管理疏失。GCP 提供了完整的安全防護體系,從 Cloud Armor 的 WAF/DDoS 防護到細緻的 IAM 權限控管,讓企業能在享受雲端彈性的同時確保資料安全。
本指南將帶你深入了解 GCP 的資安架構與實戰設定。想了解 GCP 的完整功能與服務生態,可參考我們的 GCP 完整指南:從入門概念到企業實戰。
GCP 資安架構總覽
Google 基礎設施安全層級
Google 的安全設計從硬體層開始,採用客製化的伺服器、網路設備與 Titan 安全晶片。資料中心部署多層實體安全管控,包括生物辨識門禁、24 小時監控與專屬警衛團隊。
在軟體層面,所有 Google 服務都運行在經過強化的作業系統上,並採用零信任(Zero Trust)架構。這意味著即使在內部網路中,每個請求都需要驗證身分與權限。
GCP 安全層級架構:
| 層級 | 安全機制 | 責任歸屬 |
|---|---|---|
| 硬體層 | Titan 晶片、安全開機 | |
| 基礎設施層 | 資料中心實體安全 | |
| 網路層 | 全球私有網路、加密傳輸 | |
| 平台層 | IAM、Cloud Armor、加密 | 共享 |
| 應用層 | 程式碼安全、存取控制 | 客戶 |
共享責任模型說明
雲端安全是 Google 與客戶共同承擔的責任。Google 負責底層基礎設施的安全,包括實體安全、硬體、網路與虛擬化層。客戶則需要負責作業系統更新、應用程式安全、資料加密與存取控制。
在 GKE 這類託管服務中,責任界線會隨著選擇的管理層級而改變。使用 Autopilot 模式時,Google 承擔更多責任;使用 Standard 模式則需要客戶自行管理節點安全。

Cloud Armor:WAF 與 DDoS 防護
Cloud Armor 功能與定價
Cloud Armor 是 GCP 的網路安全服務,提供 Web Application Firewall(WAF)與 DDoS 防護功能。它整合在 Global HTTP(S) Load Balancer 中,能在邊緣節點阻擋惡意流量,避免攻擊到達你的應用程式。
定價方案比較:
| 方案 | 適用場景 | 主要功能 | 費用 |
|---|---|---|---|
| Standard | 一般網站 | 基本規則、IP 黑白名單 | 政策 $5/月 + 請求費用 |
| Managed Protection Plus | 企業應用 | 進階 DDoS、WAF 託管規則 | $3,000/月起 |
對於中小型網站,Standard 方案通常已足夠。大型企業或金融機構則建議採用 Managed Protection Plus 獲得完整防護。想了解詳細費用,可參考 GCP 定價與費用計算完整指南。
安全政策設定教學
建立 Cloud Armor 安全政策的步驟:
# 建立安全政策
gcloud compute security-policies create my-security-policy \
--description="Main security policy"
# 新增允許規則(允許台灣 IP)
gcloud compute security-policies rules create 1000 \
--security-policy=my-security-policy \
--expression="origin.region_code == 'TW'" \
--action=allow
# 新增阻擋規則(阻擋特定 IP 範圍)
gcloud compute security-policies rules create 2000 \
--security-policy=my-security-policy \
--src-ip-ranges="192.168.1.0/24" \
--action=deny-403
# 套用到後端服務
gcloud compute backend-services update my-backend-service \
--security-policy=my-security-policy \
--global
OWASP Top 10 預設規則
Cloud Armor 提供預先設定的 WAF 規則,可直接防護 OWASP Top 10 常見漏洞:
| 規則集 | 防護內容 | 建議設定 |
|---|---|---|
| sqli-v33-stable | SQL Injection | 啟用 |
| xss-v33-stable | Cross-Site Scripting | 啟用 |
| lfi-v33-stable | Local File Inclusion | 啟用 |
| rfi-v33-stable | Remote File Inclusion | 啟用 |
| rce-v33-stable | Remote Code Execution | 啟用 |
啟用預設規則的指令:
gcloud compute security-policies rules create 3000 \
--security-policy=my-security-policy \
--expression="evaluatePreconfiguredExpr('sqli-v33-stable')" \
--action=deny-403

自訂規則與 Rate Limiting
除了預設規則,Cloud Armor 也支援自訂規則與速率限制:
# 設定 Rate Limiting(每分鐘 100 次請求)
gcloud compute security-policies rules create 4000 \
--security-policy=my-security-policy \
--expression="true" \
--action=rate-based-ban \
--rate-limit-threshold-count=100 \
--rate-limit-threshold-interval-sec=60 \
--ban-duration-sec=300
Rate Limiting 是防範暴力攻擊與 API 濫用的有效手段。建議根據正常流量模式設定合理閾值,避免誤擋正常使用者。
IAM 權限管理最佳實踐
角色(Roles)與權限設計
GCP IAM 採用角色型存取控制(RBAC),有三種角色類型:
- 基本角色(Basic Roles):Owner、Editor、Viewer,權限範圍過大,不建議在生產環境使用
- 預定義角色(Predefined Roles):Google 維護的細緻角色,如
roles/compute.instanceAdmin - 自訂角色(Custom Roles):根據需求自行定義的角色
最小權限設計範例:
# 自訂角色:只允許啟停 VM
title: VM Operator
description: Can start and stop VM instances
includedPermissions:
- compute.instances.start
- compute.instances.stop
- compute.instances.list
- compute.instances.get
服務帳號安全管理
服務帳號(Service Account)是 GCP 中應用程式的身分認證方式。安全管理要點:
| 做法 | 說明 | 風險等級 |
|---|---|---|
| 避免使用預設服務帳號 | 預設帳號權限過大 | 高 |
| 定期輪替金鑰 | 建議 90 天輪替一次 | 中 |
| 使用 Workload Identity | 避免匯出金鑰檔案 | 低 |
| 限制金鑰下載 | 透過組織政策禁止 | 低 |
# 建立專用服務帳號
gcloud iam service-accounts create my-app-sa \
--display-name="My Application Service Account"
# 授予最小必要權限
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:my-app-sa@PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/storage.objectViewer"
最小權限原則實踐
實踐最小權限原則的具體步驟:
- 盤點現有權限:使用 Policy Analyzer 找出過度授權
- 移除基本角色:將 Owner/Editor 替換為預定義角色
- 啟用條件式存取:限制特定時間或來源 IP
- 定期審查:每季檢視並清理不必要的權限
# 條件式 IAM 綁定(限制 IP 範圍)
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="user:[email protected]" \
--role="roles/compute.admin" \
--condition="expression=request.auth.access_levels.accessPolicies/ACCESS_POLICY/accessLevels/LEVEL_NAME,title=Corporate Network Only"
資料保護與加密
傳輸中與靜態加密
GCP 預設對所有資料進行加密:
- 傳輸中加密:所有 Google 服務間的通訊都使用 TLS 1.3
- 靜態加密:儲存的資料使用 AES-256 加密
加密金鑰選項:
| 選項 | 說明 | 適用場景 |
|---|---|---|
| Google 管理金鑰 | 預設選項,Google 自動管理 | 一般用途 |
| CMEK | 客戶管理加密金鑰 | 合規需求 |
| CSEK | 客戶提供加密金鑰 | 高安全需求 |
Secret Manager 密鑰管理
Secret Manager 是集中管理敏感資訊的服務,適合儲存 API 金鑰、資料庫密碼等機密:
# 建立密鑰
gcloud secrets create db-password --data-file=./password.txt
# 授予存取權限
gcloud secrets add-iam-policy-binding db-password \
--member="serviceAccount:my-app-sa@PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/secretmanager.secretAccessor"
# 在應用程式中讀取
gcloud secrets versions access latest --secret=db-password

安全監控與事件回應
Security Command Center
Security Command Center(SCC)是 GCP 的安全營運中心,提供:
- 資產清查:自動發現所有 GCP 資源
- 弱點掃描:Web Security Scanner 檢測網站漏洞
- 威脅偵測:Event Threat Detection 識別可疑活動
- 合規報告:CIS、PCI-DSS 等標準的合規檢查
SCC 分為標準版(免費)與進階版(付費)。標準版提供基本資產清查與安全發現,進階版則包含完整的威脅偵測與安全分析功能。
Cloud Audit Logs
Audit Logs 記錄所有 GCP API 呼叫,分為四種類型:
| 日誌類型 | 記錄內容 | 預設啟用 |
|---|---|---|
| Admin Activity | 資源設定變更 | 是(免費) |
| Data Access | 資料讀寫操作 | 否(需啟用) |
| System Event | Google 系統事件 | 是(免費) |
| Policy Denied | 權限拒絕事件 | 是(免費) |
建議至少啟用 Admin Activity 與 Data Access 日誌,並設定日誌匯出至 Cloud Storage 長期保存。
合規認證與稽核
GCP 支援的合規標準
GCP 已取得多項國際認證:
- ISO 27001:資訊安全管理系統
- SOC 1/2/3:服務組織控制報告
- PCI DSS:支付卡產業資料安全標準
- HIPAA:美國健康保險可攜性和責任法案
- FedRAMP:美國聯邦風險與授權管理計畫
這些認證涵蓋 GCP 基礎設施,但客戶仍需確保自己的應用程式符合相關標準。
稽核報告取得方式
透過 Compliance Reports Manager 可下載 GCP 的稽核報告:
- 前往 Cloud Console → Security → Compliance Reports
- 選擇需要的認證類型(ISO、SOC 等)
- 接受保密協議後下載報告
這些報告可用於向稽核人員證明基礎設施的合規性。

結論:建立持續的資安防護機制
GCP 提供了完整的安全工具鏈,從邊緣防護到資料加密,從權限管理到安全監控。但工具只是起點,真正的安全需要:
- 正確的架構設計:從一開始就將安全納入考量
- 持續的監控與改善:定期檢視安全態勢
- 完善的事件回應計畫:預先規劃應變流程
實際操作這些服務時,可參考 GCP 核心服務實戰教學:Compute Engine、Cloud Run、GKE 完整操作指南 學習基礎設定。安全與成本往往需要平衡,詳細的費用規劃請見 GCP 定價與費用計算完整指南。
常見問題 FAQ
Q1: Cloud Armor 有「Standard」和「Plus」兩個 tier,企業該選哪個?
多數情境選 Standard,只有特定需求才需 Plus。(1) Cloud Armor Standard(按使用量計費)——(A) 基本 DDoS 防護免費;(B) WAF 規則每條 US$0.75/1M requests;(C) 自訂規則 US$1/規則/月;(D) 總費用:中型網站月費 US$50–200。(2) Cloud Armor Enterprise (Plus)(年度訂閱)——(A) 年費 US$3,000/month+;(B) 進階 DDoS 防護(adaptive protection with ML);(C) 24/7 DDoS 諮詢服務;(D) Google Threat Intelligence;(E) Named Cloud Armor Expert 技術支援。什麼時候該升級 Plus:(A) 月 DDoS 攻擊 > 5 次——Plus 的 adaptive protection 能自動學習和阻擋;(B) 需要 SLA 保證——Standard 無 SLA;(C) 合規要求 24/7 回應(金融、關鍵基礎設施);(D) 已遭遇過 >100Gbps 大型攻擊。省錢技巧:Standard + 好的 WAF 規則設計已足夠 90% 企業,Plus 的主要價值是「當攻擊發生時有人接你電話」。
Q2: Cloud Armor 跟 Cloudflare / AWS WAF 相比,什麼情境下該用 Cloud Armor?
你的 infra 在 GCP 且需要 Layer 7 防護時 Cloud Armor 最佳。(1) Cloud Armor 優勢——(A) 與 GCP Load Balancer 原生整合,配置最簡單;(B) 可用 reCAPTCHA Enterprise 整合(Google 自家,準確度高);(C) 支援 Named IP Lists(Google 維護的 malicious IP list);(D) 與 IAM、Audit Logs 完美整合;(E) 對 GCP VM / GKE / Cloud Run 保護最完整。(2) Cloudflare 優勢——(A) 供應商中立(主機可在任何地方);(B) 全球 CDN 節點最多;(C) Free tier 就能用基礎 DDoS;(D) 管理界面最易用;(E) 獨立於雲端廠商,避免 vendor lock。(3) AWS WAF 優勢——(A) 若主架構在 AWS,整合最深;(B) Managed Rules 豐富;(C) 與 AWS Shield 組合成完整 DDoS 防護。選擇建議:(A) 主要 infra 在 GCP → Cloud Armor;(B) 多雲架構 / 前端純 DDoS 防護 → Cloudflare;(C) 主要 infra 在 AWS → AWS WAF + Shield。不要為了 Cloud Armor 搬家,Cloudflare 前面 + 你的雲後面是常見做法。
Q3: GCP 的 Security Command Center 收費嗎?要不要開啟?
有 Standard(免費)和 Premium(付費)兩個版本。(1) SCC Standard(免費)——(A) 資產發現(看整個 org 有什麼 GCP 資源);(B) 基礎 vulnerability findings(識別幾十種常見 misconfigurations);(C) 每 Project 有 basic security health 檢查;(D) 所有 organization 都建議開啟。(2) SCC Premium(付費,per-organization pricing)——(A) Event Threat Detection——即時偵測 IAM 異常、SSH brute force、cryptocurrency mining 等;(B) Container Threat Detection——GKE 容器執行時偵測異常;(C) Web Security Scanner——自動掃描 App Engine / Cloud Run / GKE 的 web app vulnerabilities;(D) Security Health Analytics 進階——更深入的合規檢查(CIS、PCI-DSS、NIST);(E) 費用:年約 US$50,000+(大企業)。開啟建議:(A) 所有 GCP 用戶——至少啟用 Standard 版(免費);(B) 中大型企業(>US$30,000/月 GCP spend)——值得升級 Premium;(C) 高合規行業(金融、醫療、政府)——幾乎必備。實務建議:SCC Standard + 自建 CI/CD vulnerability scanning + IAM policies 能達到 Premium 80% 價值,預算有限時這樣組合。
Q4: IAM 的「最小權限原則」實際執行時常見的困難是什麼?
三大執行困難。(1) 不知道每個人實際需要什麼權限——給 Project Editor(廣泛權限)最方便但最危險,給具體角色(roles/compute.instanceAdmin 等)才對但工程上要摸清每個人做什麼。解法:(A) 用 IAM Recommender——Google AI 分析過去 90 天 access pattern 自動推薦最小權限;(B) Policy Intelligence 分析「哪些權限從來沒用過」;(C) 從 Editor 開始,逐步 tighten。(2) 緊急情況需要高權限——系統壞掉要立刻修時沒權限會出事。解法:(A) Just-in-Time (JIT) access——用 Workforce Identity + approval workflow,緊急時能在 5 分鐘內臨時升級權限,事後自動收回;(B) Break-glass account——預留特殊帳號,使用時觸發告警和審計;(C) Google Cloud's Privileged Access Management (PAM)——原生解決方案(2024 推出)。(3) 跨 Project 依賴——A Project 的服務要存取 B Project 的資源。解法:用 Service Account impersonation 而非給 A Project 的 SA 直接權限;用 IAM Conditions 加時間、IP 等條件限制。追蹤進度的 KPI:追蹤「Project Editor 角色使用率」,理想應 < 10%;有用 IAM Recommender 自動清理的組織通常能降到 5% 以下。
Q5: 遭遇 DDoS 攻擊時 Cloud Armor 會怎麼運作?我們需要手動介入嗎?
Cloud Armor 大部分時候自動處理,但特殊情況需介入。自動防護:(1) L3/L4 DDoS——Google 的 Anycast 網路自動吸收和過濾,攻擊者到不了你的 LB,你可能完全不知道有攻擊;(2) 已知攻擊 pattern——Cloud Armor Standard 的 WAF preconfigured rules(OWASP Top 10、XSS、SQLi)自動阻擋;(3) Adaptive Protection(Cloud Armor Plus)——ML 模型學習正常流量 pattern,遇到異常自動產生臨時規則。什麼時候要手動介入:(A) 新型 L7 攻擊(攻擊者針對你 app 邏輯寫的客製化攻擊)——Adaptive Protection 可能需要幾分鐘學習,期間你可手動加 rule;(B) 攻擊配合合法流量時段(如促銷日)——Adaptive 可能 false positive,要手動 allow 某些 pattern;(C) 攻擊 source 需地區封鎖——手動加 Geographic restriction;(D) 攻擊持續 > 1 小時——雖然 Cloud Armor 擋住了,但成本可能暴增(請求費 + compute 費),該封掉源頭。緊急 SOP:(1) 立刻看 Cloud Armor 的 Security Policies dashboard 確認正在擋;(2) 檢查 Logs Explorer 看攻擊 pattern;(3) 若攻擊特殊,加 custom rule;(4) 通知 Google Cloud Support(Plus 有 24/7 專線);(5) 事後做 post-mortem 更新 rule set。
延伸閱讀
- 了解 GCP 基礎知識,請參考 GCP 完整指南
- 想了解費用怎麼算,請見 GCP 定價與費用計算完整指南
- 準備動手實作了嗎?請見 GCP 核心服務實戰教學
- 比較 GCP 和 AWS?請見 GCP vs AWS 雲端平台完整比較
擔心雲端安全?
資安事件的代價遠超過預防成本。 預約資安評估,讓我們幫你檢視潛在風險。
參考資源
相關文章
GCP AI/ML 與 Vertex AI 完整指南:從模型訓練到生產部署
GCP AI/ML 服務完整指南!深入解析 Vertex AI 平台功能、AutoML 自動化建模、Gemini API 應用,以及企業 AI 導入的最佳實踐與成本規劃。
GCPGCP 證照與課程完整學習指南(2025):從入門到專業認證
2025 年 GCP 證照考試完整攻略!涵蓋 Google Cloud 認證體系、推薦課程資源、學習路徑規劃與考試準備技巧,助你順利取得雲端專業認證。
GCPGCP 完整指南(2025):Google Cloud Platform 從入門概念到企業實戰
GCP(Google Cloud Platform)是什麼?本指南完整介紹 Google 雲端平台的核心服務、定價計算、證照考試與 AWS 比較,幫助企業選擇最適合的雲端方案。