Amazon WAF机器人控制示例:允许特定被屏蔽的机器人 - Amazon WAF、Amazon Firewall Manager 和 Amazon Shield Advanced
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon WAF机器人控制示例:允许特定被屏蔽的机器人

一个机器人可能会被多个机器人控制规则阻止。针对每条阻塞规则运行以下步骤。

如果Amazon WAF Bot Control 规则阻止了您不想屏蔽的机器人,请执行以下操作:

  1. 通过检查日志来确定阻止机器人的机器人控制规则。将在日志中名称以开头的字段中指定屏蔽规则terminatingRule。有关 Web ACL 日志的信息,请参见记录 Web ACL 流量。请注意规则添加到请求的标签。

  2. 在您的 Web ACL 中,替换阻塞规则的操作以计算在内。要在控制台中执行此操作,请编辑 Web ACL 中的规则组规则,然后Count为该规则选择规则操作替换。这样可以确保机器人不会被规则阻止,但规则仍会将其标签应用于匹配的请求。

  3. 在 Bot Control 托管规则组后面,将标签匹配规则添加到 Web ACL。将规则配置为与被替换规则的标签相匹配,并阻止除您不想屏蔽的机器人之外的所有匹配请求。

    您的 Web ACL 现已配置,因此您想要允许的机器人不再被您在日志中确定的阻止规则所阻止。

再次检查流量和日志,确保机器人被允许通过。如果不是,请再次运行上述程序。

例如,假设您要阻止除以下之外的所有监控机器人pingdom。在这种情况下,您可以将CategoryMonitoring规则改写为计数,然后编写一条规则来屏蔽除带有机器人名称标签的机器人之外的所有监控机器人pingdom

以下规则使用 Bot Control 托管规则组,但会覆盖规则操作才算CategoryMonitoring在内。类别监控规则照常将其标签应用于匹配的请求,但仅对请求进行计数,而不是执行通常的封锁操作。

{ "Name": "AWS-AWSBotControl-Example", "Priority": 5, "Statement": { "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesBotControlRuleSet", "RuleActionOverrides": [ { "ActionToUse": { "Count": {} }, "Name": "CategoryMonitoring" } ], "ExcludedRules": [] } }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSBotControl-Example" } }

以下规则与前面CategoryMonitoring规则添加到匹配的 Web 请求中的类别监控标签相匹配。在类别监控请求中,该规则会屏蔽除带有机器人名称标签的请求以外的所有请求pingdom

以下规则必须在 Web ACL 处理顺序中前面的 Bot Control 托管规则组之后运行。

{ "Name": "match_rule", "Priority": 10, "Statement": { "AndStatement": { "Statements": [ { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:managed:aws:bot-control:bot:category:monitoring" } }, { "NotStatement": { "Statement": { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:managed:aws:bot-control:bot:name:pingdom" } } } } ] } }, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "match_rule" } }