Exemple de contrôle des bots : autoriser un bot bloqué spécifique - AWS WAF, AWS Firewall Manager, et AWS Shield Advanced

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemple de contrôle des bots : autoriser un bot bloqué spécifique

Il est possible qu'un bot soit bloqué par plusieurs règles de contrôle des robots. Exécutez la procédure suivante pour chaque règle de blocage.

Si une AWS WAF règle de contrôle des bots bloque un bot que vous ne souhaitez pas bloquer, procédez comme suit :

  1. Identifiez la règle de contrôle du bot qui bloque le bot en consultant les journaux. La règle de blocage sera spécifiée dans les journaux dans les champs dont le nom commence parterminatingRule. Pour plus d'informations sur les journaux ACL Web, consultezJournalisation AWS WAF du trafic ACL Web. Notez l'étiquette que la règle ajoute aux demandes.

  2. Dans votre ACL Web, remplacez l'action de la règle de blocage pour compter. Pour ce faire, dans la console, modifiez la règle du groupe de règles dans l'ACL Web et choisissez une action de remplacement Count pour la règle. Cela garantit que le bot n'est pas bloqué par la règle, mais que la règle appliquera toujours son étiquette aux demandes correspondantes.

  3. Ajoutez une règle de correspondance d'étiquettes à votre ACL Web, après le groupe de règles géré par Bot Control. Configurez la règle pour qu'elle corresponde à l'étiquette de la règle remplacée et pour bloquer toutes les demandes correspondantes, à l'exception du bot que vous ne souhaitez pas bloquer.

    Votre ACL Web est désormais configurée de telle sorte que le bot que vous souhaitez autoriser ne soit plus bloqué par la règle de blocage que vous avez identifiée dans les journaux.

Vérifiez à nouveau le trafic et vos journaux pour vous assurer que le bot est autorisé à entrer. Si ce n'est pas le cas, réexécutez la procédure ci-dessus.

Supposons, par exemple, que vous souhaitiez bloquer tous les robots de surveillance à l'exception depingdom. Dans ce cas, vous remplacez la CategoryMonitoring règle pour compter, puis vous rédigez une règle pour bloquer tous les robots de surveillance, à l'exception de ceux portant le nom du bot. pingdom

La règle suivante utilise le groupe de règles géré par Bot Control mais remplace l'action de la règle pour qu'elle soit prise CategoryMonitoring en compte. La règle de surveillance des catégories applique ses étiquettes comme d'habitude aux demandes correspondantes, mais les compte uniquement au lieu d'effectuer son action habituelle de blocage.

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

La règle suivante correspond à l'étiquette de surveillance des catégories que la CategoryMonitoring règle précédente ajoute aux requêtes Web correspondantes. Parmi les demandes de surveillance des catégories, cette règle bloque toutes sauf celles dont le nom du bot est étiquetépingdom.

La règle suivante doit être exécutée après le groupe de règles géré par Bot Control précédent dans l'ordre de traitement de l'ACL Web.

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