返回首頁GCP

GCP 資安與 Cloud Armor 防護完整指南:打造安全的雲端架構

20 min 分鐘閱讀

GCP 資安與 Cloud Armor 防護完整指南:打造安全的雲端架構

雲端安全從來不是選項,而是必要條件。2024 年全球雲端安全事件造成的平均損失達 445 萬美元,而大多數事件都源自於設定錯誤與權限管理疏失。GCP 提供了完整的安全防護體系,從 Cloud Armor 的 WAF/DDoS 防護到細緻的 IAM 權限控管,讓企業能在享受雲端彈性的同時確保資料安全。

本指南將帶你深入了解 GCP 的資安架構與實戰設定。想了解 GCP 的完整功能與服務生態,可參考我們的 GCP 完整指南:從入門概念到企業實戰

GCP 資安架構總覽

Google 基礎設施安全層級

Google 的安全設計從硬體層開始,採用客製化的伺服器、網路設備與 Titan 安全晶片。資料中心部署多層實體安全管控,包括生物辨識門禁、24 小時監控與專屬警衛團隊。

在軟體層面,所有 Google 服務都運行在經過強化的作業系統上,並採用零信任(Zero Trust)架構。這意味著即使在內部網路中,每個請求都需要驗證身分與權限。

GCP 安全層級架構:

層級安全機制責任歸屬
硬體層Titan 晶片、安全開機Google
基礎設施層資料中心實體安全Google
網路層全球私有網路、加密傳輸Google
平台層IAM、Cloud Armor、加密共享
應用層程式碼安全、存取控制客戶

共享責任模型說明

雲端安全是 Google 與客戶共同承擔的責任。Google 負責底層基礎設施的安全,包括實體安全、硬體、網路與虛擬化層。客戶則需要負責作業系統更新、應用程式安全、資料加密與存取控制。

在 GKE 這類託管服務中,責任界線會隨著選擇的管理層級而改變。使用 Autopilot 模式時,Google 承擔更多責任;使用 Standard 模式則需要客戶自行管理節點安全。

GCP 共享責任模型圖解

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-stableSQL Injection啟用
xss-v33-stableCross-Site Scripting啟用
lfi-v33-stableLocal File Inclusion啟用
rfi-v33-stableRemote File Inclusion啟用
rce-v33-stableRemote Code Execution啟用

啟用預設規則的指令:

gcloud compute security-policies rules create 3000 \
    --security-policy=my-security-policy \
    --expression="evaluatePreconfiguredExpr('sqli-v33-stable')" \
    --action=deny-403

Cloud Armor WAF 規則設定介面

自訂規則與 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),有三種角色類型:

  1. 基本角色(Basic Roles):Owner、Editor、Viewer,權限範圍過大,不建議在生產環境使用
  2. 預定義角色(Predefined Roles):Google 維護的細緻角色,如 roles/compute.instanceAdmin
  3. 自訂角色(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"

最小權限原則實踐

實踐最小權限原則的具體步驟:

  1. 盤點現有權限:使用 Policy Analyzer 找出過度授權
  2. 移除基本角色:將 Owner/Editor 替換為預定義角色
  3. 啟用條件式存取:限制特定時間或來源 IP
  4. 定期審查:每季檢視並清理不必要的權限
# 條件式 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

Secret Manager 密鑰版本管理

安全監控與事件回應

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 EventGoogle 系統事件是(免費)
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 的稽核報告:

  1. 前往 Cloud Console → Security → Compliance Reports
  2. 選擇需要的認證類型(ISO、SOC 等)
  3. 接受保密協議後下載報告

這些報告可用於向稽核人員證明基礎設施的合規性。

GCP 合規報告下載介面

結論:建立持續的資安防護機制

GCP 提供了完整的安全工具鏈,從邊緣防護到資料加密,從權限管理到安全監控。但工具只是起點,真正的安全需要:

  1. 正確的架構設計:從一開始就將安全納入考量
  2. 持續的監控與改善:定期檢視安全態勢
  3. 完善的事件回應計畫:預先規劃應變流程

實際操作這些服務時,可參考 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。


延伸閱讀


擔心雲端安全?

資安事件的代價遠超過預防成本。 預約資安評估,讓我們幫你檢視潛在風險。


參考資源

需要專業的雲端建議?

無論您正在評估雲平台、優化現有架構,或尋找節費方案,我們都能提供協助

預約免費諮詢

相關文章