如何选择?AWS Shield vs WAF vs Firewall Manager
应用所有者必须确保信息的安全交换,并能够抵御各种安全威胁和攻击。为了保护应用程序免受不必要的恶意互联网流量影响,AWS 提供了三项服务:Shield、Web 应用程序防火墙(WAF)和 Firewall Manager。
这些 AWS 服务组合起来,可在 OSI 模型的第 3、4 和 7 层提供保护。它们覆盖了多种 AWS 服务,例如 CloudFront、Route53、Global Accelerator、API Gateway、弹性负载均衡器(ELB)和弹性计算云(EC2)等。这包括针对 DDoS 攻击、恶意 HTTP 和 HTTPS 请求的防护,以及简化跨拥有许多 AWS 账户和资源的组织的自动化配置和发布。
什么是 AWS Shield?
AWS Shield 保护 AWS 组件免受 DDoS 攻击。这类攻击会产生大量人为生成的请求,以干扰公共应用程序。Shield 有两种版本:标准版和高级版。
AWS Shield 标准版
AWS Shield 标准版默认在 CloudFront、Route 53 和 Global Accelerator 中启用,无需额外费用。
AWS Shield 标准版提供针对某些攻击的保护,但缺乏自定义配置的灵活性。Shield 高级版与 AWS WAF 服务集成,可配置特定的保护规则。它还能防止因 DDoS 攻击导致使用量增加而产生的额外 AWS 费用。受影响的客户可以申请抵扣额。
AWS Shield 高级版
AWS Shield 高级版适用于 CloudFront、Route 53 和 Global Accelerator,以及 ELB、弹性 IP 和 EC2。
AWS Shield 高级版每月费用为 3,000 美元,并要求为期 1 年的订阅承诺。它提供对 AWS Shield 响应团队的访问权限,这是一个 7x24 小时待命的紧急支持小组,但这仅适用于同时拥有 AWS Premium Support(企业级或商业级支持)的 AWS 账户,这些支持计划根据每月的 AWS 账单有额外成本。
还有额外的数据传输费,具体取决于受保护的资源类型和传输的数据量(例如,<100 TB、400 TB 和 500 TB)。Shield 高级版的数据传输费在初始 100 TB 区间内,每传输 1 TB 数据可能在 25 美元到 50 美元之间,具体取决于受保护的资源类型。这是在每个受保护资源适用的数据传输费之外的。月费按每个 AWS 组织收取。因此,在一个组织内跨多个 AWS 账户的部署只需支付单笔费用。
虽然 Shield 标准版防护第 3 层和第 4 层的攻击,但 Shield 高级版 扩展了支持的 AWS 服务数量,并与 WAF 集成,提供针对第 7 层攻击的覆盖。
什么是 AWS WAF?
Web 应用程序防火墙服务专注于第 7 层保护。WAF 的可配置功能集可实时检测并阻止试图访问您应用程序的特定流量模式。它与 CloudFront 分配、应用程序负载均衡器、Cognito 用户池、AWS Verified Access 实例、AppSync GraphQL API 和 API Gateway REST API 交互。可以将 WAF 配置为检测来自以下来源的流量:
- 特定 IP。
- 跨站脚本攻击。
- SQL 注入攻击。
- IP 范围或来源国家。
- 超过基于速率规则的 IP。
- 请求体、路径、JA3/JA4 指纹、查询、标头和 Cookie 中的内容模式。
借助 Firewall Manager,应用所有者可以配置适用于 AWS 组织内所有账户的规则。当传入流量与任何已配置规则匹配时,WAF 可以拒绝请求、返回自定义响应或简单地创建指标以监控适用的请求。AWS Marketplace 中也提供了其他规则。
它有两个主要功能:
- AWS WAF Bot Control。它提供专注于识别和处理遵循常见流行机器人模式的请求的规则。也可以将其配置为允许来自搜索引擎或正常运行状态监控工具的流量。对于常见的机器人流量,每评估 100 万次请求收费 1 美元。对于针对特定机器人的规则,每检查 100 万次请求收费 10 美元。
- AWS WAF Fraud Control。它保护登录和用户创建页面免受欺诈请求的侵害。对于每月请求量在 1 万到 200 万之间的部署,欺诈控制每分析 100 万次请求可能花费 1,000 美元。
Bot Control 和 Fraud Control 都支持配置显示验证码挑战的规则。这些挑战在 Bot Control Common 中每分析 10,000 次尝试会产生 4 美元的额外费用,而 Bot Control Targeted 和 Fraud Control 则没有额外费用。
WAF 对每个 Web 访问控制列表(ACL)每月收费 5 美元,对 Web ACL 中配置的每条规则每月收费 1 美元。一个 Web ACL 可以与多个资源关联;请查阅 文档 了解详情。
WAF 每 100 万次请求收费 0.60 美元。例如,一个每秒处理 10 个请求的应用程序每月大约花费 15 美元。此外,还需考虑与规则数量和 Web ACL 相关的任何费用。
什么是 AWS Firewall Manager?
AWS Firewall Manager 旨在跨多个 AWS 账户和资源进行 集中管理。它支持以下服务:
- WAF。
- Shield 高级版。
- Network Firewall。
- VPC 安全组。
- Route 53 Resolver DNS Firewall。
通过 Firewall Manager,应用所有者可以配置适用于所有账户的规则。所有者可以为账户或组织内的某种类型的所有资源配置规则,例如将规则应用于所有 CloudFront 分配。它还支持基于资源标签应用配置。当您向账户添加新资源时,可以自动为其分配特定的保护规则,这通过简化和自动化跨一个或多个 AWS 账户中多个 AWS 资源的关键保护功能配置来增强安全性。
大型组织有时难以保护其日益增长的配置和资源数量,Firewall Manager 有助于解决此问题。它按每个区域每个配置的策略每月收费 100 美元。此外,还需考虑与已创建资源(如 WAF webACL、WAF 规则、AWS Config 规则等)相关的任何费用。拥有 Shield 高级版的客户可以配置 Firewall Manager,且每个策略无需额外费用。
将 AWS Shield 标准版和 WAF 结合是中小型部署的绝佳选择。AWS Shield 高级版和 Firewall Manager 与 WAF 结合,是大型部署的合适选择。
如何确定哪种工具适合您的组织
虽然所有这三种云安全服务都为大多数 AWS 云部署提供了非常重要的功能,但评估它们是否适合特定的应用程序需求至关重要。受保护的 OSI 层是需要评估的一个重要领域,以及特定应用程序中需要保护的服务。
成本也是一个重要因素,特别是对于 AWS Shield 高级版,考虑到其每月 3,000 美元的费用和所需的 1 年承诺。拥有众多账户和云资源的大型组织确实应该考虑 Firewall Manager 这样的服务,因为它简化了许多云组件的管理。
鉴于安全在现代云部署中代表的高度优先级,强烈建议评估这些 AWS 安全服务,并根据特定的应用和合规性要求进行配置。
编者注:本文最初发表于 2022 年,并于 2025 年更新,包含了更新的功能和定价信息。 Ernesto Marquez 是 Concurrency Labs 的所有者和项目总监,他在那里帮助初创公司在 AWS 上启动和发展他们的应用程序。他喜欢构建无服务器架构、构建数据分析解决方案、实施自动化并帮助客户削减 AWS 成本。