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

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

Amazon WAF机器人控制示例:允许特定被阻止的自动程序

如果Amazon WAF机器人控制正在阻止您不想阻止的自动程序,请执行以下操作:

  1. 通过检查日志来确定阻止自动程序的机器人控制规则。有关 Web ACL 日志的信息,请参阅记录 Web ACL 流量信息. 记下任何标识功能,如标签和用户代理。

  2. 在 Web ACL 中,从规则组中排除阻止自动程序的规则。要在控制台中执行此操作,请编辑 Web ACL 内的规则组,并将阻止规则设置为计数。这可确保自动程序不被阻止,同时仍允许规则将其标签应用于匹配的请求。

    此时,您已将 Web ACL 配置为停止阻止通常被机器人控制规则阻止的所有机器人。

  3. 在 “机器人控制” 托管规则组之后,将自定义标签匹配规则添加到 Web ACL。将规则配置为与 Bot Control 规则标签进行匹配,并阻止除您不想阻止的自动程序以外的所有匹配请求。

    您的 Web ACL 现在已配置,以便自动程序控制托管规则组不再阻止您想允许的自动程序。

例如,假设您需要阻止除pingdom. 在这种情况下,您可以排除CategoryMonitoring规则,然后编写一个规则来阻止除带有机器人名称标签的机器人以外的所有监控机器人程序pingdom.

以下规则使用 “机器人控制” 托管规则组,但更改了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 处理顺序中之前的 “机器人控制” 托管规则组之后运行。

{ "Rule": { "Name": "match_rule", "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" } } } } ] } }, "RuleLabels": [], "Action": { "Block": {} } } }