规则组中的操作覆盖 - Amazon WAFAmazon Firewall Manager、和 Amazon Shield Advanced
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

规则组中的操作覆盖

将规则组添加到 Web ACL 时,您可以覆盖它对匹配的 Web 请求所执行的操作。覆盖 Web ACL 配置中的规则组的操作不会改变规则组本身。它只会改变在 Web ACL 上下文中 Amazon WAF 使用规则组的方式。

规则操作覆盖

您可以将规则组内规则的操作覆盖为任何有效的规则操作。执行此操作时,将完全按照配置规则的操作为覆盖设置处理匹配的请求。

注意

规则操作可以是终止,也可以是非终止。终止操作会停止对请求的 Web ACL 评估,要么允许请求继续访问受保护的应用程序,要么将其阻止。

以下是规则操作选项:

  • Allow— Amazon WAF 允许将请求转发到受保护的 Amazon 资源进行处理和响应。这是终止操作。在您定义的规则中,您可以在请求中插入自定义标头,然后再将其转发到受保护的资源。

  • Block— Amazon WAF 阻止请求。这是终止操作。默认情况下,您的受保护 Amazon 资源以 HTTP 403 (Forbidden) 状态代码进行响应。在您定义的规则中,您可以自定义响应。当 Amazon WAF 阻止请求时,Block操作设置将决定受保护的资源发送回客户端的响应。

  • Count— 对请求进行 Amazon WAF 计数,但不确定是允许还是阻止请求。这是一个非终止操作。 Amazon WAF 继续处理 Web ACL 中的其余规则。在您定义的规则中,您可以将自定义标头插入请求中,也可以添加其他规则可以匹配的标签。

  • CAPTCHA并且 Challenge — Amazon WAF 使用 CAPTCHA 谜题和静默挑战来验证请求不是来自机器人,并 Amazon WAF 使用代币来跟踪最近成功的客户响应。

    注意

    当您在其中一个规则中使用 CAPTCHA 或 Challenge 规则操作或在规则组中将其作为规则操作覆盖时,您需要支付额外费用。有关更多信息,请参阅Amazon WAF 定价

    这些规则操作可以是终止操作,也可以是非终止操作,具体取决于请求中令牌的状态:

    • 未过期的有效令牌不终止 — 如果根据配置的验证码或质疑免疫时间,令牌有效且未过期,则 Amazon WAF 处理与操作类似的请求。Count Amazon WAF 继续根据 Web ACL 中的其余规则检查 Web 请求。与 Count 配置类似,在您定义的规则中,您可以选择使用自定义标头配置这些操作以插入到请求中,也可以添加其他规则可以匹配的标签。

    • 以对无效或过期令牌的请求被阻止而终止 — 如果令牌无效或指定的时间戳已过期,则 Amazon WAF 终止对 Web 请求的检查并阻止请求,类似于操作。Block Amazon WAF 然后使用自定义响应代码响应客户端。因为CAPTCHA,如果请求内容表明客户端浏览器可以处理它,则会在 JavaScript 插页式广告中 Amazon WAF 发送一个验证码拼图,该拼图旨在区分人类客户端和机器人。对于Challenge操作, Amazon WAF 会发送带有静默挑战的 JavaScript 插页式广告,该挑战旨在将普通浏览器与机器人运行的会话区分开来。

    有关更多信息,请参阅 CAPTCHA然后Challenge在 Amazon WAF

有关如何使用此选项的信息,请参阅 覆盖规则组的规则操作

将规则操作覆盖为 Count

规则操作覆盖的最常见用例是将部分或全部规则操作覆盖到 Count,以测试和监控规则组的行为,然后再将其投入生产。

您也可以使用它对生成误报的规则组进行故障排除。当规则组阻止了您不希望阻止的流量时,就会出现误报。如果您在规则组中发现某条规则将阻止您希望允许通过的请求,则您可以保留该规则的计数操作覆盖,使其无法对您的请求采取行动。

有关在测试中使用规则操作覆盖的更多信息,请参阅 测试和调整您的 Amazon WAF 保护措施

JSON 列表 – RuleActionOverrides 取代 ExcludedRules

如果您在 2022 年 10 月 27 日之前Count在 Web ACL 配置中将规则组规则操作设置为,请在 Web ACL JSON 中将覆盖内容 Amazon WAF 保存为ExcludedRules。现在,用于将规则替换为 Count 的 JSON 设置位于 RuleActionOverrides 设置中。

当您使用 Amazon WAF 控制台编辑现有规则组设置时,控制台会自动将 JSON 中的任何ExcludedRulesRuleActionOverrides设置转换为设置,覆盖操作设置为Count。

  • 当前设置示例:

    "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesAdminProtectionRuleSet", "RuleActionOverrides": [ { "Name": "AdminProtection_URIPATH", "ActionToUse": { "Count": {} } } ]
  • 旧设置示例:

    OLD SETTING "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesAdminProtectionRuleSet", "ExcludedRules": [ { "Name": "AdminProtection_URIPATH" } ] OLD SETTING

我们建议您将您的 JSON 列表中的所有 ExcludedRules 设置更新为 RuleActionOverrides 设置,并将操作设置为 Count。API 接受任一设置,但如果您只使用新 RuleActionOverrides 设置,则您的控制台工作和 API 工作之间的 JSON 列表都将保持一致。

规则组操作覆盖为 Count

您可以覆盖规则组返回的操作,将其设置为 Count。

注意

这不是测试规则组中规则的好选择,因为它不会改变 Amazon WAF 评估规则组本身的方式。它只会影响如何 Amazon WAF 处理规则组评估返回到 Web ACL 的结果。如果要测试规则组中的规则,请使用上一节中描述的方式 规则操作覆盖

当您将规则组操作改写为时Count,将正常 Amazon WAF 处理规则组评估。

如果规则组中没有匹配的规则,或者所有匹配的规则都有 Count 操作,则此覆盖对规则组或 Web ACL 的处理没有影响。

规则组中第一个与 Web 请求匹配且具有终止规则操作的规则会导致 Amazon WAF 停止评估该规则组,并将终止操作结果返回到 Web ACL 评估级别。此时,在 Web ACL 评估中,此替代生效。 Amazon WAF 覆盖终止操作,因此规则组评估的结果只是一个Count操作。 Amazon WAF 然后继续处理 Web ACL 中的其余规则。

有关如何使用此选项的信息,请参阅 将规则组的评估结果覆盖为 Count