AWS WAF À utiliser pour protéger vos API REST dans API Gateway - APIPasserelle Amazon

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.

AWS WAF À utiliser pour protéger vos API REST dans API Gateway

AWS WAF est un pare-feu d'applications Web qui aide à protéger les applications Web et les API contre les attaques. Il vous permet de configurer un ensemble de règles appelé liste de contrôle d'accès web (ACL web) qui autorisent, bloquent ou comptent les requêtes web en fonction des règles et conditions de sécurité web personnalisables que vous définissez. Pour plus d'informations, consultez la section AWS WAF Fonctionnement.

Vous pouvez l'utiliser AWS WAF pour protéger votre API REST API Gateway contre les exploits Web courants, tels que l'injection SQL et les attaques par script intersite (XSS). Celles-ci peuvent affecter la disponibilité et les performances des API, compromettre la sécurité ou consommer des ressources excessives. Par exemple, vous pouvez créer des règles pour autoriser ou bloquer les demandes provenant de plages d'adresses IP spécifiées, les demandes provenant de blocs CIDR, les demandes provenant d'un pays ou d'une région spécifique, les demandes contenant du code SQL malveillant ou les demandes contenant des scripts malveillants.

Vous pouvez également créer des règles qui correspondent à une chaîne spécifiée ou à un modèle d'expression régulière dans les en-têtes HTTP, la méthode, la chaîne de requête, l'URI et le corps de la demande (limité aux 64 premiers Ko). De plus, vous pouvez créer des règles pour bloquer les attaques émanant d'agents utilisateurs spécifiques, de robots malveillants et d'extracteurs de contenu. Par exemple, vous pouvez utiliser des règles basées sur le débit pour spécifier le nombre de requêtes web que chaque adresse IP du client est autorisée à envoyer au cours d'une période de 5 minutes mise à jour en continu.

Important

AWS WAF est votre première ligne de défense contre les exploits Web. Lorsqu'elle AWS WAF est activée sur une API, AWS WAF les règles sont évaluées avant les autres fonctionnalités de contrôle d'accès, telles que les politiques de ressources, les politiques IAM, les autorisateurs Lambda et les autorisateurs Amazon Cognito. Par exemple, si AWS WAF l'accès à partir d'un bloc CIDR autorisé par une politique de ressources est AWS WAF prioritaire et que la stratégie de ressources n'est pas évaluée.

AWS WAF Pour activer votre API, vous devez effectuer les opérations suivantes :

  1. Utilisez la AWS WAF console, le AWS SDK ou la CLI pour créer une ACL Web contenant la combinaison souhaitée de règles AWS WAF gérées et de vos propres règles personnalisées. Pour plus d'informations, consultez les sections Mise en route AWS WAF et listes de contrôle d'accès Web (ACL Web).

    Important

    API Gateway nécessite une ACL AWS WAFV2 Web pour une application régionale ou une ACL AWS WAF Classic Regional Web.

  2. Associez l'ACL AWS WAF Web à une étape d'API. Vous pouvez le faire à l'aide de la AWS WAF console, du AWS SDK, de la CLI ou de la console API Gateway.

Pour associer une ACL AWS WAF Web à un stage d'API API Gateway à l'aide de la console API Gateway

Pour utiliser la console API Gateway afin d'associer une ACL AWS WAF Web à un stage d'API API Gateway existant, procédez comme suit :

  1. Connectez-vous à la console API Gateway à l'adresse : https://console.aws.amazon.com/apigateway.

  2. Choisissez une API existante ou créez-en une.

  3. Dans le volet de navigation principal, choisissez Étapes, puis sélectionnez une étape.

  4. Dans la section Détails de l'étape, choisissez Modifier.

  5. Sous Pare-feu d'application Web (AWS WAF), sélectionnez votre ACL Web.

    Si vous utilisez AWS WAFV2, sélectionnez une ACL AWS WAFV2 Web pour une application régionale. L'ACL Web et toutes les autres AWS WAFV2 ressources qu'il utilise doivent être situées dans la même région que votre API.

    Si vous utilisez AWS WAF Classic Regional, sélectionnez une ACL Web régionale.

  6. Sélectionnez Enregistrer les modifications.

Associez une ACL AWS WAF Web à un stage d'API API Gateway à l'aide du AWS CLI

AWS CLI Pour associer une ACL AWS WAFV2 Web pour une application régionale à un stage d'API API Gateway existant, appelez la associate-web-aclcommande, comme dans l'exemple suivant :

aws wafv2 associate-web-acl \ --web-acl-arn arn:aws:wafv2:{region}:111122223333:regional/webacl/test-cli/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --resource-arn arn:aws:apigateway:{region}::/restapis/4wk1k4onj3/stages/prod

Pour associer une ACL AWS WAF Classic Regional Web AWS CLI à un stage d'API API Gateway existant, appelez la associate-web-aclcommande, comme dans l'exemple suivant :

aws waf-regional associate-web-acl \ --web-acl-id 'aabc123a-fb4f-4fc6-becb-2b00831cadcf' \ --resource-arn 'arn:aws:apigateway:{region}::/restapis/4wk1k4onj3/stages/prod'

Associer une ACL AWS WAF Web à une étape d'API à l'aide de l' AWS WAF API REST

Pour utiliser l' AWS WAFV2 API REST afin d'associer une ACL AWS WAFV2 Web pour une application régionale à un stage d'API API Gateway existant, utilisez la commande AssociateWebACL, comme dans l'exemple suivant :

import boto3 wafv2 = boto3.client('wafv2') wafv2.associate_web_acl( WebACLArn='arn:aws:wafv2:{region}:111122223333:regional/webacl/test/abc6aa3b-fc33-4841-b3db-0ef3d3825b25', ResourceArn='arn:aws:apigateway:{region}::/restapis/4wk1k4onj3/stages/prod' )

Pour utiliser l' AWS WAF API REST afin d'associer une ACL AWS WAF Classic Regional Web à un stage d'API API Gateway existant, utilisez la commande AssociateWebACL, comme dans l'exemple suivant :

import boto3 waf = boto3.client('waf-regional') waf.associate_web_acl( WebACLId='aabc123a-fb4f-4fc6-becb-2b00831cadcf', ResourceArn='arn:aws:apigateway:{region}::/restapis/4wk1k4onj3/stages/prod' )