CloudFront 或 AWS WAF 拦截了 AI 爬虫:修复方法
更新于 2026-11-03
如果检测报告显示 CloudFront 对 AI 爬虫返回 403,常见原因是你的分发所关联的 Web ACL 中启用了 AWS WAF Bot Control 托管规则组。
CategoryAI 却不同:AWS 文档写明它 “applies the action to all matches, regardless of whether the bots are verified or unverified.”(对所有匹配项执行该操作,无论爬虫是否已验证。)因此 OAI-SearchBot 和 PerplexityBot 会和训练爬虫一起被拦截。1. 找到这条规则
- 打开 AWS WAF → Web ACLs(或 protection packs),选择与你的 CloudFront 分发关联的那一个。
- 找到托管规则组
AWSManagedRulesBotControlRuleSet。 - 在 Sampled requests(抽样请求)或 WAF 日志中,查找命中
CategoryAI、带有标签awswaf:managed:aws:bot-control:bot:category:ai的请求。
2. 将 CategoryAI 改为 Count
编辑该规则组,为 CategoryAI 设置 rule action override(规则操作覆盖),改为 Count。请求仍会被打上标签,但这条规则不再拦截任何请求。
3. 重新加上你真正需要的拦截
在 Bot Control 规则组之后添加一条自己的规则,匹配标签 awswaf:managed:aws:bot-control:bot:category:ai,并排除你想放行的爬虫。针对 OAI-SearchBot、PerplexityBot、Claude-SearchBot 及其他搜索类爬虫,使用日志中出现的爬虫名称标签(awswaf:managed:aws:bot-control:bot:name:…)。GPTBot、ClaudeBot 等训练爬虫保持拦截。
如果你不想维护 WAF 规则,也可以让 CategoryAI 保持 Count,改用 robots.txt 拒绝训练:
User-agent: GPTBot Disallow: / User-agent: ClaudeBot Disallow: / User-agent: Google-Extended Disallow: /
4. 留意其他信号规则
SignalKnownBotDataCenter 和 SignalNonBrowserUserAgent 只作用于非已验证爬虫的请求。如果真实爬虫能够通过,而我们从数据中心发出的测试仍显示被拦截,报告会因此将该结果标为较低置信度。
5. 重新检测
WAF 的修改大约一分钟内生效。再次运行检测即可。
参考来源
修完再测一次
免费,无需注册。我们以 18 种不同身份请求你的首页,告诉你每个请求拿到了什么。
其他指南:Cloudflare · WordPress · Shopify · 腾讯云 EdgeOne · 阿里云 ESA / CDN · 宝塔面板 · 百度智能云 CDN / WAF