本文由 亚马逊云站代理商『翼龙云/Yilongcloud-亚马逊云服务器服务商•撰写』如需转载请注明!

一、 现象:异常流量导致带宽账单暴涨

云系统管理员和 DevOps 工程师常遇到 AWS CloudFront 遭遇 CC(Challenge Collapsar)攻击或恶意爬虫高频抓取的情况。由于 AWS CloudFront 主要依据下行流量、带宽及请求次数计费,大量无效的高频请求会穿透至边缘节点,导致账单异常激增。

若不及时限制,这些恶意流量不仅消耗源站资源,还会产生高额云服务费用。在 CDN 边缘节点前置应用层防火墙(AWS WAF)进行攻击拦截与流量过滤,是降低 AWS CloudFront 带宽账单的直接方案。

二、 核心原理:CloudFront 结合 AWS WAF 的防护机制

AWS WAF 是一款应用层防火墙,通过在 CloudFront 分配(Distribution)上部署 Web ACL,所有访问边缘节点的请求都会先经过规则过滤。只有合法请求会被放行,从而实现恶意爬虫防护并控制业务消耗。

提示:WAF 只防护应用层 CC 攻击;超大带宽网络层 DDoS 依靠 AWS Shield 能力,WAF 无法抵御网络层洪水攻击。

以下是单纯使用 CDN 与结合 WAF 防护的差异对比:

维度 单纯 CloudFront 承载 CloudFront + AWS WAF 联动防护
恶意流量处理 接收所有请求,消耗边缘节点带宽与请求数。 在边缘节点精准识别并拦截恶意请求。
账单影响 遭遇攻击时,账单随恶意请求量呈线性暴涨。 拦截请求不再产生 CloudFront 流量费,但 WAF 仍会对全部检测请求计费,整体可显著降低总支出。
防护精准度 缺乏应用层防护,无法区分正常用户与脚本。 基于 IP 速率、声誉库及 Bot Control 识别特征。
运维效率 需人工分析日志并在源站封禁,响应滞后。 自动化规则拦截,减少人工排障时间。

 

三、 前置条件与准备工作

在开始配置前,请确保满足以下条件:
1. 已配置并运行正常的 Amazon CloudFront 分配。
2. 拥有具备 AWS WAF 操作权限的 AWS 账户。
3. 明确业务正常流量峰值,用于设定合理的限速阈值。

在准备阶段,如对流量异常或账单明细有疑问,翼龙云/Yilongcloud 可提供售后使用指导,包括控制台操作、基础排障、账单理解及产品搭配建议,协助梳理前置条件。

四、 AWS WAF 配置框架与操作逻辑
上线安全建议:新规则优先设置动作为Count(仅计数),观察 WAF 访问日志确认规则效果,验证无误后再切换为Block,避免大规模误封用户;也可优先使用 Challenge 人机验证代替直接阻断。

步骤一:创建 Web ACL 并关联 CloudFront 在 AWS WAF 控制台中创建 Web ACL。地域选择 useast1(Global for CloudFront),否则无法关联 CDN。在资源选择环节,勾选目标 CloudFront 分配。完成后,进入该 CDN 的请求将开始接受 WAF 检查。

规则顺序:IP 白名单 IPSet 规则放在最顶部优先匹配,防止被速率 / 托管规则误拦截。

步骤二:配置速率限制规则(Ratebased rule)防御 CC 攻击 添加一条基于速率的规则:

  1. 设置滚动评估窗口为 5 分钟,配置单 IP 最大请求阈值(例如 2000 次,根据业务实际调整);
  2. 关键配置:开启 Forwarded IP,读取 XForwardedFor获取真实客户端 IP 做速率统计

⚠️ 如果不开启 Forwarded IP,速率规则统计的是 CloudFront 边缘节点 IP,会造成大规模误封正常访客。

  1. 初期建议动作选择 Count,观察一段时间后再改为 Block。 当真实源 IP 请求频率超过阈值时,WAF 将自动拦截该 IP 的新请求。

步骤三:添加 AWS 托管规则(Managed Rules)拦截恶意爬虫 引入特征识别以拦截恶意爬虫。

  1. 建议启用Amazon IP reputation list亚马逊 IP 声誉列表;
  2. Bot Control机器人控制:区分 Common / Targeted 等级,Targeted 高级检测会产生额外计费。纯静态 CDN 站点谨慎开启 Bot Control,会拉高 WAF 请求成本;动态业务建议先 Common 级别观察

步骤四:配置默认操作与自定义响应 将 Web ACL 的默认操作(Default action)设置为Allow,确保正常用户访问。同时可配置自定义 403 拦截页面,在阻断恶意请求的同时避免暴露源站敏感信息。

 

五、 连接验证与排错

配置完成后,需验证规则生效情况:

  1. 模拟测试:使用测试 IP 发起高频请求,模拟 CC 攻击;测试前把测试 IP 加入白名单,避免自己被封禁。
  2. 日志验证:开启 WAF 访问日志投递到 CloudWatch Logs(日志存储会产生额外费用),查看拦截记录,确认测试 IP 是否触发 Ratebased rule,状态为 BLOCK。
  3. 常见排错:
    1. 正常用户被误拦截:优先把规则切回 Count 模式,查看 WAF 日志定位命中条件;调高速率阈值,或把办公、运维 IP 加入 IPSet 白名单。
    2. 速率规则完全不生效:检查是否开启Forwarded IP读取 XForwardedFor 真实客户端 IP。

 

六、常见问题
Q:AWS WAF 是什么,适合哪些场景,选型时要确认什么?
A:AWS WAF 是保护 Web 应用和 API 的应用层防火墙,可与 CloudFront、ALB 等结合,防御 SQL 注入、CC 攻击及恶意爬虫。选型前应明确业务规模、性能、可用性及运维要求,核对产品支持矩阵、地域、版本配额及计费项;WAF 仅处理应用层攻击,网络层大流量 DDoS 需要搭配 Shield。

Q:AWS CloudFront 是什么,适合哪些场景,选型时要确认什么?
A:AWS CloudFront 是全球内容分发网络服务,用于加速静态和动态内容分发。适合需要降低源站负载、提升全球访问速度的场景。计费涉及下行流量、请求数等。选型时需对比地域、服务层级、资源配额及迁移方案,价格与政策应以当期官方信息为准。

Q:如何使用 AWS WAF 为 CloudFront 配置速率限制规则?速率规则出现大量误封是什么原因?
A:在 AWS WAF 控制台创建 Web ACL 时地域必须选择useast1(Global for CloudFront)。添加 Ratebased rule,务必开启 ForwardedIP 配置读取 XForwardedFor 头获取真实访客 IP,设置 5 分钟滚动窗口与请求阈值。不开启 Forwarded IP,会统计 CloudFront 边缘节点 IP,造成大量正常用户被误拦截。上线初期建议 Count 模式观察日志,再切换 Block。

Q:CloudFront 遭遇 CC 攻击导致账单暴涨怎么办?
A:应立即查看 CloudFront、CloudWatch 监控指标确认异常流量来源。确认攻击后,在 WAF 绑定 WebACL,配置速率限制规则,启用 IP 声誉托管规则;优先 Count 模式验证效果,再开启阻断。止损后通过 WAF 访问日志进一步调优阈值与规则。

Q:WAF 拦截的请求还会收费吗?
A:被 WAF BLOCK 的请求不再产生 CloudFront 流量、请求费用;但所有送到 WAF 做检测的请求,无论放行还是拦截,都会计入 WAF 的请求计费

相关新闻

联系我们

联系我们

电报:@yilongcloud

邮件:yilongcloud@hotmail.com

工作时间:早上8:00-晚上11:00

认准电报
认准电报
分享本页
返回顶部