1. 概述:为什么在多云使用云WAF
- 目的:统一防护Web应用、减轻DDoS/注入风险。
- 小分段(评估点):延迟、支持的资源类型(CDN/ALB/API网关)、集中管理能力、日志和合规。
2. 前期准备(账户与网络)
- 创建各云账号的管理员或角色(最小权限原则)。
- 准备域名、证书和负载均衡器(ALB/Ingress/Front Door/Cloud CDN)。
- 小分段(建议):为每云环境建立标签策略和费用中心。
3. 选择策略:集中式 vs 边缘式WAF
- 边缘式(CloudFront/Front Door/CDN集成):低延迟、靠近用户,适合全球分发。
- 集中式(在每环境前置ALB或API网关):便于管理细粒度规则。
- 小分段(建议):按应用敏感度混合使用,关键应用走边缘+私有WAF。
4. AWS WAF 部署实操(ALB/CloudFront)
- 步骤1:在AWS控制台或AWS CLI创建Web ACL并选择区域/全局(CloudFront为Global)。
- 步骤2:加入Managed Rule和自定义IP/rate规则;优先级按攻击面设定。
- 步骤3:将Web ACL关联到CloudFront或ALB(控制台->资源->关联)。
- CLI示例:aws wafv2 create-web-acl --name my-waf --scope REGIONAL --default-action Allow ...(详见官方文档)。
5. Azure WAF 部署实操(Front Door / Application Gateway)
- 步骤1:创建WAF策略(Azure Portal或CLI):az network application-gateway waf-policy create --name myPolicy ...。
- 步骤2:添加OWASP规则集、自定义规则(IP限制、速率限制)。
- 步骤3:将策略关联到Front Door或Application Gateway,测试并启用模式为“预防”。
6. GCP Cloud Armor 部署实操
- 步骤1:创建security policy:gcloud compute security-policies create my-policy --description="WAF policy"。
- 步骤2:添加规则:gcloud compute security-policies rules create 1000 --security-policy=my-policy --expression="..." --action=deny-403。
- 步骤3:将policy绑定到Backend Service或外部负载均衡器。
7. 多云统一管理:使用Terraform与Provider Alias
- 步骤1:在Terraform配置中声明多个provider并使用alias。
- 示例(简化): provider "aws" {} provider "google" { alias="gcp" } provider "azurerm" { alias="az" }。
- 步骤2:抽象出waf模块(web_acl、waf_policy、security_policy),在每云调用同一接口下发规则。
8. 日志集中化与告警链路
- 步骤1:开启各云WAF日志导出(S3/Blob Storage/GCS)。
- 步骤2:使用Lambda/Functions/Cloud Run定时收集并推送到集中ELK或SIEM(Splunk)。
- 小分段(告警):基于攻击类型设置阈值告警并联动自动封禁IP。
9. 自动化与CI/CD(策略即代码)
- 步骤1:将WAF规则保存为JSON/YAML进源码仓库。
- 步骤2:在CI流程中加入合规和功能测试(模拟攻击用ZAP或自定义脚本)。
- 步骤3:经审核后自动apply到Terraform或云API,回滚通过版本控制实现。
10. 功能验证与渗透测试
- 步骤1:使用curl或工具模拟常见攻击(SQLi、XSS、LFI、速率攻击)。示例:curl -H "User-Agent: sqlmap" http://your-app/?id=1' OR '1'='1。
- 步骤2:观察WAF日志与响应(403/429),调整规则误报白名单。
11. 高可用与容灾建议
- 建议1:在每个区域均有WAF策略实例,使用DNS健康检查做流量切换。
- 建议2:跨云备份规则(Terraform state与规则导出),定期演练恢复。
12. 成本控制与合规
- 小分段:启用成本标签,设置预算告警;评估Managed Rules与自定义规则的请求计费影响。
- 合规:日志保留策略满足审计要求(例如90天或按法规)。
13. 问:在多云环境中选择哪个云WAF“最好”?
- 答:没有绝对最好,依据场景选择:全球CDN加速优先Azure Front Door/CloudFront+AWS WAF;GCP原生应用优先Cloud Armor;管理便利性可通过Terraform和集中日志弥补多云差异。
14. 问:如何避免策略冲突与误报在多云部署中?
- 答:建立统一规则模板、分级策略(全局基础规则+应用级细化)、通过准生产流量在预防模式下孵化规则并逐步切换为阻断。
15. 问:如何实现多云WAF的集中监控与快速响应?
- 答:将WAF日志集中到ELK/SIEM,建立统一的仪表盘和告警规则,结合自动化脚本(如Lambda/Function)实现基于证据的IP封禁与工单触发。