规则组中的操作替代 - Amazon WAF、Amazon 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资源以 HTTP403 (Forbidden) 状态码进行响应。在您定义的规则中,您可以自定义响应。当Amazon WAF阻止请求时,Block操作设置决定受保护资源发送回客户机的响应。

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

  • CAPTCHA和Challenge —Amazon WAF 使用验证码谜题和静默挑战来验证请求不是来自机器人,并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 配置中将规则组规则操作设置为,则将网页 ACL JSON 中的覆盖Amazon WAF保存为ExcludedRules。现在,用于替换规则的 JSON 设置Count位于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设置,你的 JSON 列表以及控制台工作和 API 工作之间的一致性。

将规则组操作改为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