

**引入全新的主机体验 AWS WAF**

现在，您可以使用更新的体验访问控制台中任意位置的 AWS WAF 功能。有关更多详细信息，请参阅[使用控制台](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html)。

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

# 机器人控制功能示例：为被阻止的用户代理创建例外
<a name="waf-bot-control-example-user-agent-exception"></a>

如果来自某些非浏览器用户代理的流量被错误屏蔽，则可以通过将违规的 Bot Control 规则设置为 Coun AWS WAF t，然后将该规则的标签与您的例外标准结合起来`SignalNonBrowserUserAgent`来创建例外。

**注意**  
移动应用程序通常具有非浏览器用户代理，`SignalNonBrowserUserAgent` 规则在默认情况下会阻止这些代理。

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

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

以下规则与机器人控制功能 `SignalNonBrowserUserAgent` 规则添加到其匹配的 web 请求中的信号标签相匹配。在信号请求中，除了那些拥有我们想要允许的用户代理的请求外，该规则会阻止所有请求。

以下规则必须在保护包（web ACL）处理顺序中前面的机器人控制功能托管规则组之后运行。

```
{
    "Name": "match_rule",
    "Statement": {
      "AndStatement": {
        "Statements": [
          {
            "LabelMatchStatement": {
              "Scope": "LABEL",
              "Key": "awswaf:managed:aws:bot-control:signal:non_browser_user_agent"
            }
          },
          {
            "NotStatement": {
              "Statement": {
                "ByteMatchStatement": {
                  "FieldToMatch": {
                    "SingleHeader": {
                      "Name": "user-agent"
                    }
                  },
                  "PositionalConstraint": "EXACTLY",
                  "SearchString": "PostmanRuntime/7.29.2",
                  "TextTransformations": [
                    {
                      "Priority": 0,
                      "Type": "NONE"
                    }
                  ]
                }
              }
            }
          }
        ]
      }
    },
    "RuleLabels": [],
    "Action": {
      "Block": {}
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "match_rule"
    }
}
```