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

引入全新的主机体验 Amazon WAF

现在,您可以使用更新的体验访问控制台中任意位置的 Amazon WAF 功能。有关更多详细信息,请参阅 使用更新的主机体验

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

机器人控制功能示例:允许特定的被阻止机器人

机器人可能会被多条机器人控制功能规则阻止。对每条阻止规则执行以下步骤。

如果 Amazon WAF 机器人控制规则正在屏蔽您不想屏蔽的机器人,请执行以下操作:

  1. 通过查看日志,识别阻止机器人的机器人控制功能规则。将在日志中名称以 terminatingRule 开头的字段中指定阻止规则。有关保护包或 Web ACL 日志的信息,请参阅记录 Amazon WAF 保护包或 Web ACL 流量。请注意规则添加到请求中的标签。

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

  3. 将标签匹配规则添加到您的保护包或 Web ACL 中,在 Bot Control 托管规则组之后。将规则配置为与被覆盖的规则的标签相匹配,并阻止除您不想阻止的机器人之外的所有匹配请求。

    您的保护包或 Web ACL 现已配置完毕,因此您要允许的机器人不再被您通过日志识别的屏蔽规则所阻止。

再次检查流量和您的日志,确保机器人被允许通过。如果不是,请再次执行上述步骤。

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

以下规则使用机器人控制功能托管规则组,但会将 CategoryMonitoring 规则操作覆盖为计数。类别监控规则像往常一样将其标签应用于匹配的请求,但仅对它们进行计数,而不是执行通常的阻止操作。

{ "Name": "AWS-AWSBotControl-Example", "Priority": 5, "Statement": { "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesBotControlRuleSet", "ManagedRuleGroupConfigs": [ { "AWSManagedRulesBotControlRuleSet": { "InspectionLevel": "COMMON" } } ], "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" } }