Adresse IP transférée - 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.

Adresse IP transférée

Cette section s'applique aux instructions de règles qui utilisent l'adresse IP d'une requête Web. Par défaut, AWS WAF utilise l'adresse IP de l'origine de la requête Web. Toutefois, si une requête Web passe par un ou plusieurs proxys ou équilibreurs de charge, l'origine de la demande Web contiendra l'adresse du dernier proxy, et non l'adresse d'origine du client. Dans ce cas, l'adresse du client d'origine est généralement transmise dans un autre en-tête HTTP. Cet en-tête est généralement X-Forwarded-For (XFF), mais il peut être différent.

Déclarations de règles utilisant des adresses IP

Les instructions de règle qui utilisent les adresses IP sont les suivantes :

  • Correspondance d'ensemble d'adresses IP- Vérifie si l'adresse IP correspond aux adresses définies dans un ensemble d'adresses IP.

  • Correspondance géographique- Utilise l'adresse IP pour déterminer le pays et la région d'origine et compare le pays d'origine à une liste de pays.

  • Instruction de règle basée sur un taux- Peut agréger les demandes par adresse IP pour s'assurer qu'aucune adresse IP individuelle n'envoie de demandes à un rythme trop élevé. Vous pouvez utiliser l'agrégation d'adresses IP seule ou en combinaison avec d'autres clés d'agrégation.

Vous pouvez demander d' AWS WAF utiliser une adresse IP transférée pour chacune de ces instructions de règle, que ce soit à partir de l'X-Forwarded-Foren-tête ou d'un autre en-tête HTTP, au lieu d'utiliser l'origine de la requête Web. Pour plus de détails sur la manière de fournir les spécifications, consultez les instructions relatives aux différents types d'instructions de règles.

Note

Si l'en-tête que vous spécifiez n'est pas présent dans la demande, la règle AWS WAF n'est pas du tout appliquée à la demande Web.

Comportement de repli

Lorsque vous utilisez l'adresse IP transférée, vous indiquez le statut de correspondance AWS WAF à attribuer à la requête Web si celle-ci ne possède pas d'adresse IP valide à la position spécifiée :

  • MATCH - Traitez la requête Web comme correspondant à l'instruction de règle. AWS WAF applique l'action de règle à la demande.

  • AUCUNE CORRESPONDANCE - Traitez la requête Web comme ne correspondant pas à l'instruction de règle.

Adresses IP utilisées dans AWS WAF Bot Control

Le groupe de règles géré par Bot Control vérifie les robots à l'aide des adresses IP provenant de AWS WAF. Si vous utilisez Bot Control et que vous avez vérifié les bots qui acheminent via un proxy ou un équilibreur de charge, vous devez les autoriser explicitement à l'aide d'une règle personnalisée. Par exemple, vous pouvez configurer une règle personnalisée de correspondance des ensembles d'adresses IP qui utilise les adresses IP transférées pour détecter et autoriser vos robots vérifiés. Vous pouvez utiliser cette règle pour personnaliser la gestion de votre bot de différentes manières. Pour plus d'informations et d'exemples, consultez AWS WAF Contrôle des robots.

Considérations générales relatives à l'utilisation des adresses IP transférées

Avant d'utiliser une adresse IP transférée, prenez note des mises en garde générales suivantes :

  • Un en-tête peut être modifié par des proxys en cours de route, et les proxys peuvent gérer l'en-tête de différentes manières.

  • Les attaquants peuvent modifier le contenu de l'en-tête pour tenter de contourner AWS WAF les inspections.

  • L'adresse IP contenue dans l'en-tête peut être mal formée ou non valide.

  • L'en-tête que vous spécifiez peut ne pas être présent du tout dans une demande.

Considérations relatives à l'utilisation d'adresses IP transférées avec AWS WAF

La liste suivante décrit les exigences et les mises en garde relatives à l'utilisation d'adresses IP transférées dans : AWS WAF

  • Pour chaque règle, vous pouvez spécifier un en-tête pour l'adresse IP transférée. La spécification de l'en-tête ne distingue pas les majuscules et minuscules.

  • Pour les instructions de règle basées sur le taux, les instructions de portée imbriquées n'héritent pas de la configuration IP transférée. Spécifiez la configuration de chaque instruction qui utilise une adresse IP transférée.

  • Pour les règles de correspondance géographique et basées sur le taux, AWS WAF utilise la première adresse de l'en-tête. Par exemple, si un en-tête contient 10.1.1.1, 127.0.0.0, 10.10.10.10 AWS WAF des 10.1.1.1

  • Pour la correspondance des ensembles d'adresses IP, vous indiquez s'il convient de faire correspondre la première, la dernière ou une adresse quelconque de l'en-tête. Si vous en spécifiez une, AWS WAF inspecte toutes les adresses de l'en-tête pour détecter une correspondance, jusqu'à 10 adresses. Si l'en-tête contient plus de 10 adresses, AWS WAF inspecte les 10 dernières.

  • Les en-têtes contenant plusieurs adresses doivent être séparées par des virgules. Si une demande utilise un séparateur autre qu'une virgule, AWS WAF considère que les adresses IP de l'en-tête sont mal formées.

  • Si les adresses IP contenues dans l'en-tête sont mal formées ou non valides, AWS WAF indique que la requête Web correspond à la règle ou ne correspond pas, selon le comportement de secours que vous spécifiez dans la configuration IP transférée.

  • Si l'en-tête que vous spécifiez n'est pas présent dans une demande, la règle AWS WAF n'y est pas du tout appliquée. Cela signifie que AWS WAF cela n'applique pas l'action de la règle et n'applique pas le comportement de repli.

  • Une instruction de règle qui utilise un en-tête IP transféré pour l'adresse IP n'utilisera pas l'adresse IP indiquée par l'origine de la requête Web.

Bonnes pratiques d'utilisation des adresses IP transférées avec AWS WAF

Lorsque vous utilisez des adresses IP transférées, suivez les bonnes pratiques suivantes :

  • Examinez attentivement tous les états possibles de vos en-têtes de demande avant d'activer la configuration IP transférée. Il se peut que vous deviez utiliser plusieurs règles pour obtenir le comportement souhaité.

  • Pour inspecter plusieurs en-têtes IP transférés ou pour inspecter l'origine de la requête Web et un en-tête IP transféré, utilisez une règle pour chaque source d'adresse IP.

  • Pour bloquer les requêtes Web dont l'en-tête n'est pas valide, définissez l'action de règle à bloquer et définissez le comportement de secours correspondant à la configuration IP transférée.

Exemple de code JSON pour les adresses IP transférées

L'instruction de correspondance géographique suivante ne correspond que si l'X-Forwarded-Foren-tête contient une adresse IP dont le pays d'origine est US :

{ "Name": "XFFTestGeo", "Priority": 0, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "XFFTestGeo" }, "Statement": { "GeoMatchStatement": { "CountryCodes": [ "US" ], "ForwardedIPConfig": { "HeaderName": "x-forwarded-for", "FallbackBehavior": "MATCH" } } } }

La règle basée sur le débit suivante agrège les demandes en fonction de la première adresse IP de l'X-Forwarded-Foren-tête. La règle ne compte que les demandes correspondant à l'instruction de correspondance géographique imbriquée et bloque uniquement les demandes correspondant à l'instruction de correspondance géographique. L'instruction de correspondance géographique imbriquée utilise également l'X-Forwarded-Foren-tête pour déterminer si l'adresse IP indique le pays d'origine de. US Si c'est le cas, ou si l'en-tête est présent mais mal formé, l'instruction geo match renvoie une correspondance.

{ "Name": "XFFTestRateGeo", "Priority": 0, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "XFFTestRateGeo" }, "Statement": { "RateBasedStatement": { "Limit": "100", "AggregateKeyType": "FORWARDED_IP", "ScopeDownStatement": { "GeoMatchStatement": { "CountryCodes": [ "US" ], "ForwardedIPConfig": { "HeaderName": "x-forwarded-for", "FallbackBehavior": "MATCH" } } }, "ForwardedIPConfig": { "HeaderName": "x-forwarded-for", "FallbackBehavior": "MATCH" } } } }