AWS WAF Classic规则删除IP地址段后自动恢复问题咨询
这种情况我之前帮团队排查过好几次,大概率是下面几个常见原因导致的,一个个给你捋清楚:
1. 基础设施即代码(IaC)工具自动同步
很多团队会用Terraform、CloudFormation或者AWS CDK来管理WAF规则——如果你手动在控制台删掉了IP段,但IaC配置文件里还保留着这个段,下次部署、同步甚至是定期的配置校验都会把它重新加回去。
解决步骤:
- 去查你们团队的IaC配置文件(比如Terraform的
main.tf、CloudFormation的模板JSON/YAML),找到对应WAF规则或IP集的配置,把目标IP段删掉; - 重新执行一次IaC部署,确保控制台的配置和代码完全对齐;
- 建议团队后续尽量避免手动修改控制台配置,统一走IaC流程,从根源上避免这种冲突。
2. WAF规则关联的共享IP集被其他资源更新
你可能是直接在规则里操作的,但这个IP段其实来自一个共享IP集(IP Set)——如果其他规则、自动化脚本或者团队成员在更新这个IP集,就会导致被移除的IP段再次出现在关联的WAF规则里。
解决步骤:
- 在AWS控制台找到该WAF规则关联的IP集(规则详情里能看到关联的资源);
- 查看IP集的修改历史(IP集详情页的“修改历史”标签),定位到是谁/哪个服务在更新它;
- 确认所有使用这个IP集的场景都不需要该IP段后,直接修改IP集本身,而不是只改单个规则。
3. 自动化脚本或Lambda函数在维护IP列表
不少团队会用Lambda函数搭配CloudWatch Events做定时任务,自动从威胁情报平台、内部黑名单等数据源同步IP到WAF。如果数据源里还保留着你删掉的IP段,脚本就会定期把它加回去。
解决步骤:
- 检查AWS Lambda控制台,有没有和WAF/IP集相关的函数;
- 查看函数代码的逻辑,找到数据源地址(比如S3文件、API接口),把目标IP段从数据源中移除;
- 可以在脚本里添加一个排除名单,避免特定IP被自动同步。
4. WAF规则版本回滚导致的恢复
如果你的WAF规则开启了版本管理,或者有自动备份回滚的设置,某次意外的回滚操作可能会把包含目标IP段的旧版本规则恢复成激活状态。
解决步骤:
- 进入WAF规则的“版本管理”页面,查看最近的版本变更记录;
- 确认当前激活的版本是你修改后的版本,如果不是,手动切换到正确版本并设置为默认;
- 检查是否有自动回滚的配置(比如某些监控工具触发的回滚),调整相关规则。
5. 权限问题导致的误操作(少见但需排查)
有没有其他团队成员或者服务账号拥有修改该WAF规则的权限?有可能是不知情的同事又把IP段加回去了,或者某个服务账号的误操作。
解决步骤:
- 打开AWS CloudTrail控制台,搜索该WAF规则的修改事件(事件名称找
UpdateWebACL或UpdateIPSet); - 从日志里找到操作的账号ID或IAM角色,确认操作来源;
- 要么和相关人员沟通,要么调整IAM权限,限制不必要的修改权限。
内容的提问来源于stack exchange,提问作者Dani
相关产品推荐
相关产品推荐

