1.
概述:谷歌云 WAF 的定位与组成
谷歌云 WAF 通常指 Cloud Armor,位于 HTTP(S) 负载均衡器(前端)之上。小分段:1) 作用:基于规则的流量过滤与速率限制;2) 组件:外部负载均衡、Cloud Armor 策略、后端服务、Cloud CDN、Cloud Logging/Monitoring。
2.
架构原理:流量路径与决策点
外部请求先到负载均衡器,再进入 Cloud Armor 策略评估,最后转发到后端。小分段:1) 规则优先级按数字排序;2) 评估包含预定义规则(OWASP)、自定义表达式、速率限制;3) 决策可以是 allow、deny、rate-based 或 redirect。
3.
先决条件:账号与权限准备
操作前准备:启用 Compute Engine、Networking、Cloud Armor、Logging API。小分段:1) IAM:确保有 compute.securityAdmin 或相应自定义角色;2) 开启 API:gcloud services enable compute.googleapis.com
4.
部署步骤(总体流程)
总体流程分为:创建后端服务->配置负载均衡->创建 Cloud Armor 策略->应用策略到后端服务->验证。小分段:每一步后进行巡检与日志确认。
5.
实际操作:创建后端与负载均衡(Console)
步骤:1) 在 GCP 控制台 Networking->Load balancing 新建 HTTP(S) 负载均衡;2) 创建后端服务并关联实例组或 NEG;3) 配置 URL map 与前端 IP/端口;4) 保存并等待部署完成。
6.
实际操作:使用 gcloud 命令示例
示例命令:1) 创建全局地址:gcloud compute addresses create lb-ip --global;2) 创建后端服务等可参考官方命令;小分段:在每步后用 gcloud compute backend-services describe 检查状态。
7.
创建 Cloud Armor 策略(Console 与 gcloud)
Console:Security->Cloud Armor->Create policy,选择 Mode(防护/监控)。gcloud:gcloud compute security-policies create my-policy --description="WAF policy"。小分段:设置默认规则动作为 deny-403 或 allow。
8.
添加规则:预置与自定义规则
步骤:1) 添加预置规则集(OWASP CRS)以阻挡通用注入;2) 新增自定义表达式(CEL)进行路径、头部、IP 黑白名单控制;3) 设置优先级和动作为 deny、allow 或 rate_based_ban。小分段:测试时先用“监控”模式观察命中率。
9.
速率限制与缓解策略
配置 rate-based rules:定义阈值(requests per 60s)并设定阈值触发动作。小分段:对登录或 API 路径设更严格阈值;结合 Cloud CDN 减少后端负载。
10.
日志、监控与告警配置
启用 Cloud Armor 日志导出到 Cloud Logging,创建 Log-based metrics 并在 Cloud Monitoring 中设置告警。小分段:关键指标包括 rule match count、blocked requests、latency。
11.
测试与分阶段上线
测试方法:1) 观察监控模式几天;2) 用 curl/OWASP ZAP 进行模拟攻击;3) 逐步从监控切换到阻断。小分段:回滚策略:及时调整优先级或切换策略为 allow。
12.
自动化与 Terraform 示例建议
使用 Terraform 管理安全策略可实现可复现部署。小分段:资源为 google_compute_security_policy、google_compute_region_backend_service;在 CI 中执行 terraform plan/apply,并在变更前运行安全扫描。
13.
运维建议与常见误区
建议:1) 定期更新 OWASP 规则;2) 使用黑白名单结合速率限制;3) 不要直接在生产环境启用阻断,先观测。小分段:避免过度阻断导致误杀正常流量。
14.
问题:谷歌云 WAF 与自建 WAF 有何区别?
14.答:Cloud Armor 是云原生托管服务,集成负载均衡与 CDN,维护与规则更新由用户与谷歌共同管理;自建 WAF 更灵活但需自行运维、扩容与规则更新,成本与复杂度较高。
15.
问题:如何在不影响业务的情况下切换到阻断模式?
15.答:推荐流程:先将策略设为“监控/模拟”模式,观察规则命中与误报;根据日志调整规则后,按路径/流量分段逐步启用阻断,并设置告警以便快速回滚。
16.
问题:常用的排查方法有哪些?
16.答:排查步骤:1) 查看 Cloud Armor 日志与 Load Balancer 日志;2) 通过 Log-based metrics 查看命中规则与 IP;3) 用 curl 或复现脚本重现请求并调整规则优先级与表达式。
来源:谷歌云waf如何实现 的架构原理与部署建议解析