机器人控制功能示例:为被阻止的用户代理创建例外 - AWS WAFAWS Firewall Manager、和 AWS Shield Advanced

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

机器人控制功能示例:为被阻止的用户代理创建例外

如果来自某些非浏览器用户代理的流量被错误阻止,可以通过将违规 AWS WAF 机器人控制功能规则 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" } }