覆盖中的规则组操作 AWS WAF - AWS WAFAWS Firewall Manager、和 AWS Shield Advanced

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

覆盖中的规则组操作 AWS WAF

本节介绍了如何覆盖规则组操作。

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

规则组规则操作的覆盖

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

注意

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

以下是规则操作选项:

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

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

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

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

    CAPTCHA拼图和静默挑战只能在浏览器访问HTTPS端点时运行。浏览器客户端必须在安全环境中运行才能获取令牌。

    注意

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

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

    • 未过期的有效令牌不会终止 — 如果根据配置CAPTCHA或质询免疫时间,令牌有效且未过期,则 AWS WAF 处理请求的方式类似于 Count 行动。 AWS WAF 继续根据网络中的其余规则检查 Web 请求ACL。类似于 Count 配置,在您定义的规则中,您可以选择使用要插入请求的自定义标头来配置这些操作,也可以添加其他规则可以匹配的标签。

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

    有关更多信息,请参阅 CAPTCHA 以及 Challenge 在 AWS WAF中

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

将规则操作重写为 Count

规则操作覆盖的最常见用例是将部分或全部规则操作重写为 Count,用于在规则组投入生产之前对其行为进行测试和监控。

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

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

JSON清单:RuleActionOverrides替换 ExcludedRules

如果您将规则组规则操作设置为 Count 在 2022 年 10 月 27 日之前的网页ACL配置中,将您在网络中的覆盖 AWS WAF 保存ACLJSON为ExcludedRules。现在,重写规则的JSON设置为 Count 在RuleActionOverrides设置中。

我们建议您将JSON商品信息中的所有ExcludedRules设置更新为RuleActionOverrides设置,并将操作设置为 Count。 API接受任一设置,但如果你只使用新RuleActionOverrides设置,你就能在JSON列表中、主机API工作和工作之间保持一致。

注意

在 AWS WAF 控制台中,网络ACL采样请求选项卡不显示使用旧设置的规则的示例。有关更多信息,请参阅 查看 Web 请求示例

当您使用 AWS WAF 控制台编辑现有规则组设置时,控制台会自动将中的任何ExcludedRulesRuleActionOverrides设置JSON转换为设置,覆盖操作设置为 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

规则组将操作重写返回到 Count

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

注意

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

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

如果规则组中没有匹配的规则,或者所有匹配的规则都有 Count action,则此替代对规则组或 Web 的处理没有影响ACL。

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

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