应用安全

Cloudflare WAF 与 AWS WAF 有什么区别?

差异首先体现在架构而非功能:一个是自带 CDN 与 DDoS 的检查型反向代理,另一个是挂在负载均衡器前的规则引擎。这决定了覆盖范围、成本形态与运维方式。

直接回答: 两者的差异首先体现在架构而不是功能:Cloudflare WAF 是自带 CDN 与 DDoS 缓解的检查型反向代理,一次通过就把它的背后全部覆盖;AWS WAF 是逐个资源挂载的规则引擎(CloudFront、ALB、API Gateway),按 Web ACL、按规则、按规则组、按百万请求分别计费,DDoS 要由另一个产品(Shield Advanced)负责。两者谈不上谁「更安全」,取决于你要的是一条边缘 + 一张账单,还是每个云各配一套控制面。

先理解架构差异,再看功能清单

Cloudflare 的 WAF 是检查型反向代理的一部分。流量不可能绕过它到达源站,而同一次穿越顺带提供了 CDN 缓存、TLS 终止与 DDoS 吸收。WAF 只是你本来就在用的那条流水线中的一个环节。

AWS WAF 是挂在某个资源上的规则引擎——区域级 ALB、API Gateway REST API、AppSync 端点,或 CloudFront 分发。它只做检查,不承担转发。缓存需要另配 CloudFront,DDoS 需要另配 Shield,两者都是独立的计费项。

这一个差异解释了大部分实际后果:各自处在请求路径的什么位置、你还需要额外买什么、以及流量增长时账单怎么变。

核心差异对照

维度 Cloudflare WAF AWS WAF
位置 源站前的反向代理,无法绕过 挂在 ALB / API Gateway / AppSync / CloudFront 上;不经过这些资源的流量不被检查
网络范围 全球 anycast,一套配置处处生效 ALB 与 API Gateway 为区域级;仅通过 CloudFront 才是全局(且必须从 us-east-1 管理)
CDN 内置 需要 CloudFront,单独计费
DDoS 全套餐内置不计量 L3/4/7 防护 Shield Standard(免费、自动)覆盖 L3/4;Shield Advanced 每月 3,000 美元并需一年承诺
计费模型 套餐制:Free、Pro、Business 为固定月费,Enterprise 议价 用量组合:Web ACL 5.00 美元/月 + 每条规则 1.00 美元/月 + 每个规则组 1.00 美元/月 + 每百万请求 0.60 美元
容量计量 按套餐的规则条数(自定义规则 5 / 20 / 100 / 1,000) WCU:含 1,500;每个 Web ACL 与每个规则组上限 5,000,文档列为不可调整
Bot 控制 Bot Fight Mode(Free)、Super Bot Fight Mode(Pro)、Bot Management(Enterprise) Bot Control:每个 Web ACL 10 美元/月 + 每百万请求 1.00 美元(Common)或每百万 10.00 美元(Targeted)
可见性 Enterprise 提供 cf.waf.score 及子分值;Business 起提供分类字段 通过 AWS 日志目标做日志与分析;容量通过 WCU 计量
多租户 WAF for SaaS(Enterprise),支持账号级策略 通常每租户或每资源一个 Web ACL,各自计费
正则 Business 起支持 支持,但有尺寸限制:单条 pattern 200 字符,每个 pattern set 最多 10 条

请求路径上的两种形态

一条流水线 vs 需要自己拼装的组件 Cloudflare:边缘一次穿越 DNS → anycast 边缘 DDoS → 缓存 → 自定义规则 → 限流 → 托管规则 → 源站(隐藏、白名单) AWS:按资源拼装 Route 53 → CloudFront(可选) WAF Web ACL 挂在资源上 → ALB / API Gateway / AppSync DDoS 由 Shield 负责,单独计价 成本形态 固定月费;流量尖峰不改变账单。 CDN 与 DDoS 已包含在内。 成本形态 组合计价:ACL + 规则 + 请求。流量 尖峰推高账单;DDoS 防护另算。 决定性问题:你的流量是否已经流经一个你能统一控制的位置? 如果是,两者都可行;如果不是,代理模型比「逐资源挂载」更容易做到无遗漏。
图 1:真正关键的变量是覆盖完整性。使用挂载式规则引擎时,每一个漏掉的资源就是一个未受保护的入口。

一个成本形态的算例(不是报价)

用一个不大但现实的场景:一个应用,每月 1,000 万次请求,10 条自定义规则,2 个托管规则组,不含 Bot Control 与 Shield Advanced。

  • AWS WAF:Web ACL 5.00 + 规则 10.00 + 规则组 2.00 + 请求 6.00(10 × 0.60)≈ 每月 23 美元的 WAF 本身费用。CloudFront 的请求与流量费、Shield Advanced、Bot Control 均另计。
  • Cloudflare:固定月费套餐——Free、Pro、Business 按官网标价,Enterprise 议价——CDN 与不计量 DDoS 已包含在套餐内。

真正值得比较的不是表面数字,而是攻击发生时怎么办。用量模型下,持续洪水既是一次事故,也是一笔账单;套餐模型下,它只是一次事故。经历过数天洪水的团队往往非常看重这一点,这也是 Shield Advanced 之所以存在——它以每月 3,000 美元的承诺,包含大量请求额度与 L7 DDoS 托管规则。

上述价格取自写作时 AWS 官方定价页,且会随区域变化;采购前请核实当期数字。

什么时候 AWS WAF 更合适

客观地说,两者确实是不同工具:

  • 全部业务已在 AWS 上,且组织要求统一的 IAM 与审计边界。把 Web ACL 挂到现有 ALB 上,比引入第二个控制面更符合这种治理模型。
  • 你需要按资源隔离策略。给不同 ALB 或 API 配不同 Web ACL,是表达「这些服务规则不同」的自然方式。
  • 你已经买了 Shield Advanced。承诺已经沉没,在其上加 WAF 是自洽的。
  • 数据驻留或区域合规要求决定检查点必须在某个区域内,而不是全球 anycast 边缘。

边界与不适用情况

  • 两者都不能替代应用安全。输入校验、授权判断、参数化查询仍是你自己的事。WAF 检查请求,不知道你的代码拿它做了什么。
  • WCU 是 AWS 上的真实约束。每个 Web ACL 与规则组 5,000 WCU 的硬上限意味着大型托管规则组组合可能放不下。在提交规则集之前先做容量预算。
  • 免费档的预期不同。Cloudflare 的 Free 套餐包含 Free Managed Ruleset、5 条自定义规则与不计量 DDoS 防护;Cloudflare 与 OWASP 托管规则集从 Pro 起。AWS WAF 没有免费档——Web ACL 从第一小时起计费。
  • 两者共存可行,但需要明确归属。常见模式是边缘用 Cloudflare、内部 ALB 用 AWS WAF。要定好哪一层是权威日志层,并确保另一层不会剥掉你规则依赖的客户端 IP。

FAQ

哪一个更安全? 本质上没有高下。覆盖率与维护质量才是主导因素。任何一边调得好的规则集,都胜过另一边维护糟糕的规则集;差异在于哪个平台更容易做到覆盖完整。

AWS WAF 能替代 CDN 吗? 不能。它只对资源做请求检查,缓存与分发是 CloudFront 的职责,单独计费。Cloudflare 的代理在一次穿越里同时完成两件事。

为什么 AWS 的账单会让人意外? 因为它是组合式的。Web ACL、每条规则、每个规则组、每百万请求都是独立条目,而 Bot Control、CAPTCHA 尝试、超出默认请求体检查上限的部分又各自加行。

我们是多云架构,选哪个? 代理模型更容易迁移:一套边缘配置覆盖任何地方的源站。挂载模型意味着每个云都要重做一遍,并且各自出一份账单。

相关阅读

← 返回文章列表

Cloudflare 官方合作伙伴

正在为海外业务做架构决策?

企业版选型、架构咨询、风险评估——把你的场景告诉我们,我们给出可落地的方案和路径。

作为 Cloudflare 合作伙伴,我们可以为你提供:

预约咨询