機器人控制範例:允許特定的封鎖機器人 - AWS WAF、 AWS Firewall Manager、和 AWS Shield Advanced

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

機器人控制範例:允許特定的封鎖機器人

機器人可能會被一個以上的機器人控制規則封鎖。針對每個封鎖規則執行下列程序。

如果 AWS WAF 機器人控制規則封鎖了您不想封鎖的機器人,請執行下列動作:

  1. 透過檢查記錄來識別封鎖機器人的機器人控制規則。封鎖規則會在名稱開頭為的欄位中指定記錄檔terminatingRule。如需有關網路 ACL 記錄的資訊,請參閱記錄 AWS WAF 網頁 ACL 流量。請注意規則新增至要求的標籤。

  2. 在 Web ACL 中,覆寫要計數之封鎖規則的動作。若要在主控台中執行此操作,請在 Web ACL 中編輯規則群組規則,並為規則選擇Count的規則動作覆寫。這可確保機器人不會被規則封鎖,但規則仍會將其標籤套用至相符的要求。

  3. 在「機器人控制」受管規則群組之後,將標籤比對規則新增至 Web ACL。設定規則以符合覆寫規則的標籤,並封鎖除您不想封鎖的機器人以外的所有相符要求。

    您的 Web 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 處理順序中的前一個「機器人控制」受管理規則群組之後執行。

{ "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" } }