AWS WAF機器人控制範例:為封鎖的使用者代理程式建立例外 - AWS WAF、AWS Firewall Manager 與 AWS Shield Advanced

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS WAF機器人控制範例:為封鎖的使用者代理程式建立例外

如果機器人遭到錯誤封鎖,您可以藉由排除AWS WAF機器人控制規則,然後將規則標籤與例外狀況準則合併。

下列規則使用 Bot Control 受管理的規則群組,但會變更SignalNonBrowserUserAgent計數,方法是將其排除在一般規則群組處理之外。信號規則像往常一樣應用其標籤匹配請求,但只計算它們,而不是執行塊的通常操作。

{ "Name": "AWS-AWSBotControl-Example", "Priority": 5, "Statement": { "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesBotControlRuleSet", "ExcludedRules": [ { "Name": "SignalNonBrowserUserAgent" } ] } }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSBotControl-Example" } }

下列規則與上述 Bot Control 排除規則新增至其相符 Web 要求的信號標籤相符。在信號請求中,此規則會阻止除那些您想要允許的用戶代理之外的所有規則。

下列規則必須在 Web ACL 處理順序中先前的 Bot Control 管理規則群組之後執行。

{ "Rule": { "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": "TW96aWxsYS81LjAgQSBGcmllbmRseSBPbmU=", "TextTransformations": [ { "Priority": 0, "Type": "NONE" } ] } } } } ] } }, "RuleLabels": [], "Action": { "Block": {} } } }