亚马逊AWS官方博客

AWS WAF 指南(十)用 Amazon Q Developer CLI 解决 DDoS 防护与 SEO 冲突问题

AWS 于 2025 年 6 月推出了全自动化的 WAF AntiDDoS 托管规则组。相比于 AWS Shield Advanced,它提供更快速的秒级检测与缓解,以及更高精准度和更灵活的配置。其中 ChallengeAllDuringEvent 规则会在攻击事件发生时,对所有请求(除了预先定义的 Challenge URI 例外路径)进行 JavaScript Challenge(软性缓解)。

问题:搜索引擎爬虫与 JavaScript Challenge 的冲突

部分搜索引擎的爬虫无法正确处理 JavaScript Challenge。如下图所示,它们可能会直接将 Challenge 响应作为索引内容并显示在搜索结果页面上,严重影响网站的 SEO 表现。

我们在另一篇博客文章 亚马逊云科技 WAF 部署小指南(九)利用 Amazon WAF Bot Control 增强网站安全与搜索引擎优化(SEO)表现 中介绍了 WAF Common Bot Control 托管规则组如何识别合法 SEO 爬虫和业务机器人。但在 AntiDDoS 场景下,使用 Bot Control 来标记搜索引擎爬虫并配置 Scope-down 成本过高,不够经济。

解决方案:基于 ASN 的爬虫识别

我们可以借鉴 Common Bot Control 的识别原理,利用同样在 2025 年 6 月发布的 ASN (Autonomous System Number) match statement 功能。通过同时验证 User-Agent 关键字和爬虫 IP 地址所属的 ASN,可以准确识别请求是否来自合法的搜索引擎爬虫。

这种双重验证机制既能防止恶意用户伪造 User-Agent,又能确保只有真正来自搜索引擎官方 IP 段的请求才会被排除在 Challenge 之外。

使用 Amazon Q Developer CLI 生成复杂的 WAF 规则

这种识别逻辑涉及复杂的多层嵌套条件判断,手工编写 JSON 规则既耗时又容易出错。使用 Amazon Q Developer CLI 可以大大简化这个过程。Amazon Q Developer CLI 是 Amazon Q 的命令行工具,Amazon Q 是一个由生成式 AI 驱动的助手。您可以使用它来询问有关 AWS 架构、资源和一般开发任务的问题。我们向 Q CLI 描述需求,让它生成相应的 WAF scope-down statement。

由于 WAF ASN match statement 功能刚发布不久,超出了 AI 模型的训练数据范围,Q CLI 最初提供的 Scope-down statement 使用了 IP Set 或 Label 来判断爬虫 IP 地址是否属于 ASN 15169(Google)或 ASN 8075(Microsoft Bing)。

我们参考 AWS WAF Developer Guide 中的 ASN match statement 示例,将正确的语法结构提供给 Q CLI 进行学习和调整。

仅通过 2 次交互,Q CLI 就成功生成了包含多层嵌套逻辑的复杂 WAF scope-down statement,大大提高了开发效率。完整的 Scope-down statement 如下:

{
  "NotStatement": {
    "Statement": {
      "OrStatement": {
        "Statements": [
          {
            "AndStatement": {
              "Statements": [
                {
                  "ByteMatchStatement": {
                    "SearchString": "google",
                    "FieldToMatch": {
                      "SingleHeader": {
                        "Name": "user-agent"
                      }
                    },
                    "TextTransformations": [
                      {
                        "Priority": 0,
                        "Type": "LOWERCASE"
                      }
                    ],
                    "PositionalConstraint": "CONTAINS"
                  }
                },
                {
                  "AsnMatchStatement": {
                    "AsnList": [
                      15169
                    ]
                  }
                }
              ]
            }
          },
          {
            "AndStatement": {
              "Statements": [
                {
                  "ByteMatchStatement": {
                    "SearchString": "bing",
                    "FieldToMatch": {
                      "SingleHeader": {
                        "Name": "user-agent"
                      }
                    },
                    "TextTransformations": [
                      {
                        "Priority": 0,
                        "Type": "LOWERCASE"
                      }
                    ],
                    "PositionalConstraint": "CONTAINS"
                  }
                },
                {
                  "AsnMatchStatement": {
                    "AsnList": [
                      8075
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    }
  }
}

配置 AntiDDoS 托管规则组

接下来配置 AntiDDoS AMR:

  1. 在 Web ACL 中编辑AWS-AWSManagedRulesAntiDDoSRuleSet
  2. Scope of inspection 部分选择 Only inspect requests that match a scope-down statement
  3. 点击 Rule JSON editor
  4. 将上面生成的 statement 内容复制粘贴到编辑器中
  5. 保存配置

配置完成后,即使在 DDoS 攻击期间,来自 Google 和 Microsoft Bing 的合法爬虫请求也不会受到 ChallengeAllDuringEvent 规则的影响,确保网站的搜索引擎可见性。

Google 和 Microsoft Bing 占据了超过 90% 的搜索引擎市场份额。如果需要支持其他搜索引擎爬虫(如百度、Yandex 等),可以采用相同的方法,让 Q CLI 生成包含相应 ASN 的新 Scope-down statement。您还可以将 Scope-down statement 中的关键字改成 Googlebot 和 Bingbot,以实现更精准更严格的控制。

请阅读我们的另一篇博文全新的 AWS WAF AntiDDoS 托管规则,了解更多的 AntiDDoS AMR 高阶用法。

总结

Amazon Q Developer CLI 结合了强大的 AI 能力和对 AWS 服务的深度理解,能够高效解决复杂的 AWS 配置挑战。在本案例中,我们成功利用 Q CLI 生成了复杂的 WAF 规则,有效解决了 DDoS 防护与 SEO 优化之间的冲突。通过使用 ASN match statement 结合精确的 User-Agent 匹配,我们实现了对合法搜索引擎爬虫的准确识别,确保在 DDoS 攻击期间网站的搜索引擎可见性不受影响。这种方法相比使用 Bot Control 托管规则组更加经济高效,同时保持了相同的安全防护水平。

随着 AWS 服务的持续演进和 AI 工具的不断完善,Amazon Q Developer CLI 正成为 AWS 开发者和运维人员的重要生产力工具,帮助您更快速、更准确地完成各种复杂的云基础设施配置任务。

附件:本文所使用的提示词

第一次交互的提示词:

请帮我写一个WAF scope-down statement,不检查Google和Bing搜索引擎爬虫发起的请求,只检查其他的请求。已知Google爬虫的特征为:1)User-Agent包含“Google”关键字;2)IP地址属于ASN 15169。Bing爬虫的特征为:1)User-Agent包含“Bing”关键字;2)IP地址属于ASN 8075。

第二次交互的提示词:

AWS WAF现在支持ASN match statement,示例如下。请根据这个示例修改上面的scope-down statement。```  "Statement": {
    "AsnMatchStatement": {
      "AsnList": [64496, 64500]
    },```

*前述特定亚马逊云科技生成式人工智能相关的服务目前在亚马逊云科技海外区域可用。亚马逊云科技中国区域相关云服务由西云数据和光环新网运营,具体信息以中国区域官网为准。

本篇作者

陈程

亚马逊云科技高级边缘产品架构师,专注于Amazon CloudFront、AWS WAF、AWS Shield、AWS Global Accelerator、Amazon Route 53等产品和服务。