本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon WAF机器人控制示例:允许特定的被屏蔽机器人
机器人可能会被多个 Bot Control 规则阻止。针对每条阻塞规则运行以下步骤。
如果 aAmazon WAF机器人控制规则是阻止你不想屏蔽的机器人,请执行以下操作:
通过检查日志来识别阻止机器人的机器人控制规则。封禁规则将在日志中名称以开头的字段中指定
terminatingRule. 有关 Web ACL 日志的信息,请参见记录 Web ACL 流量. 请注意规则添加到请求的标签。在您的 Web ACL 中,从规则组中排除阻止规则。要在控制台中执行此操作,请在 Web ACL 中编辑规则组并将阻止规则设置为 count。这样可以确保机器人不会被规则阻止,同时仍然允许规则将其标签应用于匹配的请求。
在 Bot Control 托管规则组之后向您的 Web ACL 添加标签匹配规则。将规则配置为与排除规则的标签相匹配,并阻止除您不想屏蔽的机器人之外的所有匹配请求。
现已配置您的 Web ACL,这样您要允许的机器人就不会再被您在日志中确定的阻止规则所阻止。
再次检查流量和日志,确保机器人被允许通过。如果不是,请再次执行上述步骤。
例如,假设要阻止除以下各项之外的所有监控机器人pingdom. 在此情况下,您可以排除CategoryMonitoring规则,然后编写一条规则来屏蔽除带有机器人名称标签的机器人以外的所有监控机器人pingdom.
以下规则使用 Bot Control 托管规则组,但更改了的规则操作CategoryMonitoring计算方法是将其排除在正常的规则组处理之外。类别监控规则像往常一样将其标签应用于匹配的请求,但仅对其进行计数,而不是执行通常的屏蔽操作。
{ "Name": "AWS-AWSBotControl-Example", "Priority": 5, "Statement": { "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesBotControlRuleSet", "ExcludedRules": [ { "Name": "CategoryMonitoring" } ] } }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSBotControl-Example" } }
以下规则与前面的类别监控标签相匹配CategoryMonitoring规则添加到匹配的 Web 请求中。在类别监控请求中,该规则会阻止除带有机器人名称标签的请求以外的所有请求pingdom.
以下规则必须在 Web ACL 处理顺序中的上述 Bot Control 托管规则组之后运行。
{ "Name": "match_rule", "Priority": 0, "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" } }