本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
機器人控制範例:允許特定的封鎖機器人
機器人可能會被一個以上的機器人控制規則封鎖。針對每個封鎖規則執行下列程序。
如果 AWS WAF 機器人控制規則阻止了您不想阻止的機器人,請執行以下操作:
透過檢查記錄來識別封鎖機器人的機器人控制規則。封鎖規則會在名稱開頭為的欄位中指定記錄檔
terminatingRule
。如需 Web ACL 記錄檔的詳細資訊,請參閱日誌 AWS WAF 網路ACL流量。請注意規則新增至要求的標籤。在您的網站中ACL,覆寫要計數的封鎖規則的動作。若要在主控台中執行此操作,請在 Web 中編輯規則群組規則,ACL並選擇規則動作覆寫 Count 對於規則。這可確保機器人不會被規則封鎖,但規則仍會將其標籤套用至相符的要求。
在「機器人控制」受管規則群組之後ACL,將標籤比對規則新增至您的網站。設定規則以符合覆寫規則的標籤,並封鎖除您不想封鎖的機器人以外的所有相符要求。
您的網路現在ACL已設定好,因此您要允許的機器人不再遭到您透過記錄檔識別的封鎖規則封鎖。
再次檢查流量和您的日誌,以確保機器人被允許通過。如果沒有,請再次執行上述過程。
例如,假設您想要封鎖所有監視機器人,除了pingdom
. 在此情況下,您會覆寫要計數的CategoryMonitoring
規則,然後撰寫規則來封鎖所有監視機器人,但具有機器人名稱標籤的機器人除外pingdom
。
下列規則使用 Bot Control 受管理規則群組,但會覆寫CategoryMonitoring
要計數的規則動作。類別監控規則會像往常一樣將其標籤套用至相符的要求,但只會計算它們,而不是執行其一般的封鎖動作。
{ "Name": "AWS-AWSBotControl-Example", "Priority": 5, "Statement": { "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "
AWSManagedRulesBotControlRuleSet
", "ManagedRuleGroupConfigs": [ { "AWSManagedRulesBotControlRuleSet": { "InspectionLevel": "COMMON" } } ], "RuleActionOverrides": [ { "ActionToUse": { "Count": {} }, "Name": "CategoryMonitoring" } ], "ExcludedRules": [] } }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSBotControl-Example" } }
下列規則會比對先前規CategoryMonitoring
則新增至相符 Web 要求的類別監控標籤。在類別監控請求中,此規則會封鎖除機器人名稱標籤的所有要求以外的所有要求pingdom
。
下列規則必須在 Web ACL 處理順序中的前一個 Bot Control 受管理規則群組之後執行。
{ "Name": "match_rule", "Priority": 10, "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" } }