Limitez l'accès en fonction de l'adresse IP ou de la géolocalisation en utilisant AWS WAF - Recommandations AWS

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.

Limitez l'accès en fonction de l'adresse IP ou de la géolocalisation en utilisant AWS WAF

Créée par Louis Hourcade () AWS

Dépôt de code : dépôt Github dans aws-samples

Environnement : PoC ou pilote

Technologies : sécurité, identité, conformité ; applications Web et mobiles

AWSservices : AWS CDK ; AWS WAF

Récapitulatif

AWS WAFest un pare-feu pour applications Web qui aide à protéger les applications Web APIs contre les exploits Web courants et les robots susceptibles d'affecter la disponibilité, de compromettre la sécurité ou de consommer des ressources excessives. Les listes de contrôle d'accès Web (WebACLs) vous AWS WAF permettent de contrôler la manière dont le trafic atteint vos applications. Sur un site WebACL, vous ajoutez des règles ou des groupes de règles conçus pour autoriser le trafic légitime, contrôler le trafic des robots et bloquer les modèles d'attaque courants. Pour plus d'informations, consultez la section AWS WAF Fonctionnement.

Vous pouvez associer les types de règles suivants à votre AWS WAF site Web ACLs :

  • Groupes de règles AWS gérés : les équipes chargées des règles gérées et AWS Marketplace les vendeurs proposent des ensembles de règles préconfigurés. Certains groupes de règles gérés sont conçus pour protéger des types spécifiques d'applications Web. D'autres offrent une protection étendue contre les menaces connues ou les vulnérabilités courantes.

  • Règles personnalisées et groupes de règles personnalisés — Vous pouvez également créer des règles et des groupes de règles qui personnalisent l'accès à vos applications Web etAPIs. Par exemple, vous pouvez restreindre le trafic en fonction d'une liste spécifique d'adresses IP ou d'une liste de pays.

En utilisant ce modèle et le référentiel de code associé, vous pouvez utiliser le AWS Cloud Development Kit (AWS CDK)pour déployer le AWS WAF Web ACLs avec des règles personnalisées. Ces règles limitent l'accès aux ressources des applications Web en fonction de l'adresse IP ou de la géolocalisation de l'utilisateur final. Vous pouvez également éventuellement associer plusieurs groupes de règles gérés.

Conditions préalables et limitations

Prérequis

Limites

  • Vous ne pouvez utiliser ce modèle que Régions AWS là où il AWS WAF est disponible. Pour connaître la disponibilité par région, voir Services AWS par région.

Outils

Services AWS

  • AWS Cloud Development Kit (AWS CDK)est un framework de développement logiciel qui vous aide à définir et à provisionner AWS Cloud l'infrastructure dans le code.

  • AWS WAFest un pare-feu d'applications Web qui vous aide à surveiller HTTP et à transmettre les HTTPS demandes à vos ressources d'applications Web protégées.

Référentiel de code

Le code de ce modèle est disponible dans la restriction d' GitHub adresse IP et de géolocalisation avec AWS WAF le référentiel. Le code déploie deux AWS WAF sites Web. ACLs Le premier est un site Web ACL régional destiné aux ressources Amazon API Gateway. Le second est le Web mondial ACL pour les CloudFront ressources Amazon. Les deux sites Web ACLs contiennent les règles personnalisées suivantes :

  • IPMatchbloque les demandes provenant d'adresses IP non autorisées.

  • GeoMatchbloque les demandes provenant de pays non autorisés.

Au cours du déploiement, vous pouvez éventuellement associer tous les groupes de règles gérés suivants à votre site Web ACLs :

  • Ensemble de règles de base (CRS) : ce groupe de règles contient des règles généralement applicables aux applications Web. Il permet de se protéger contre l'exploitation d'un large éventail de vulnérabilités, notamment certaines des vulnérabilités à haut risque et fréquentes décrites dans OWASP des publications, telles que OWASPTop 10.

  • Protection de l'administrateur : ce groupe de règles contient des règles qui vous aident à bloquer l'accès externe aux pages administratives exposées.

  • Entrées erronées connues — Ce groupe de règles permet de bloquer les modèles de demandes dont on sait qu'ils ne sont pas valides et qui sont associés à l'exploitation ou à la découverte de vulnérabilités.

  • Liste de réputation IP d'Amazon : ce groupe de règles contient des règles basées sur les renseignements internes d'Amazon sur les menaces. Il vous aide à bloquer les adresses IP généralement associées à des robots ou à d'autres menaces.

  • Groupe de règles géré par le système d'exploitation Linux : ce groupe de règles permet de bloquer les modèles de demandes associés à l'exploitation de vulnérabilités Linux, notamment les attaques d'inclusion de fichiers locaux () LFI spécifiques à Linux.

  • SQLgroupe de règles géré par base de données : ce groupe de règles permet de bloquer les modèles de demandes associés à l'exploitation de SQL bases de données, tels que les attaques SQL par injection.

Épopées

TâcheDescriptionCompétences requises

Pour cloner le référentiel.

Entrez la commande suivante pour cloner l'adresse IP et la restriction de géolocalisation avec le AWS WAF référentiel sur votre poste de travail local :

git clone https://github.com/aws-samples/ip-and-geolocation-restriction-with-waf-cdk.git
Git

Configurez les règles.

  1. Dans le référentiel cloné, ouvrez le fichier app.py.

  2. Modifiez les valeurs des variables suivantes pour personnaliser les règles :

    aws_acccount = "AWS_ACCOUNT" region = "AWS_REGION" ip_list = ["CIDR_RANGE_1", "CIDR_RANGE_2"] geo_list = ["COUNTRY_CODE_1", "COUNTRY_CODE_2"] aws_managed_rules = True

    Où :

    • aws_accountest l'ID de la cible Compte AWS.

    • regionest la cible du Web Région AWS ACL pour les ressources de API Gateway.

      Remarque : Le Web ACL pour les CloudFront ressources est mondial et sera déployé dans la us-east-1 région.

    • ip_listest la liste des CIDR plages dont l'accès est autorisé.

    • geo_listest la liste des pays autorisés à y accéder. Pour connaître les valeurs valides, consultez la AWS WAF documentation.

    • aws_managed_rulescontrôle si les groupes de règles gérés sont ajoutés au WebACL. Si cette valeur l'estTrue, ils sont ajoutés. Si cette valeur l'estFalse, ils sont exclus.

  3. Enregistrez et fermez le fichier app.py.

GénéralAWS, Python
TâcheDescriptionCompétences requises

Bootstrap votre AWS environnement.

Si ce n'est pas déjà fait, vous devez démarrer votre AWS environnement avant de pouvoir déployer l' AWS CDK application.

  1. Dans le AWS CDK CLI, entrez la commande suivante pour démarrer la us-east-1 région :

    cdk bootstrap aws://<account-id>/us-east-1
  2. Si vous déployez le Web ACL pour API Gateway dans une région autre queus-east-1, entrez la commande suivante pour démarrer la région cible :

    cdk bootstrap aws://<account-id>/<region>
Général AWS

Déployez AWS CDK l'application.

  1. Entrez la commande suivante pour déployer l' AWS CDK application :

    cdk deploy --all
  2. Attendez que le déploiement de la AWS CloudFormation pile soit terminé.

Général AWS
TâcheDescriptionCompétences requises

Vérifiez que le Web ACLs a été correctement déployé.

  1. Connectez-vous à la AWS WAF console AWS Management Console, puis ouvrez-la.

  2. Dans le volet de navigation, sélectionnez Web ACLs.

  3. Dans la liste de Régions AWS, choisissez Global (CloudFront).

  4. Vérifiez que le nouveau CloudFront site Web ACL a été déployé et vérifiez qu'il possède l'adresse IP et les règles de géolocalisation que vous avez définies. Le nom par défaut de ce site Web ACL estWebACLCloudfront-<ID>.

  5. Dans la liste des Régions AWS, choisissez la région dans laquelle vous avez déployé la pile.

  6. Vérifiez qu'un nouveau site Web ACL pour les ressources API Gateway a été déployé. Vérifiez qu'il possède l'adresse IP et les règles de géolocalisation que vous avez définies. Le nom par défaut de ce site Web ACL estWebACLApiGW-<ID>.

Général AWS

(Facultatif) Associez le Web ACLs à vos ressources.

Associez le AWS WAF Web ACLs à vos AWS ressources, telles qu'un Application Load Balancer, une API passerelle ou CloudFront une distribution. Pour obtenir des instructions, consultez la section Associer ou dissocier un site Web ACL à une AWS ressource. Pour un exemple, voir class CfnWeb ACLAssociation (construct) dans la AWS CDK documentation.

Général AWS
TâcheDescriptionCompétences requises

Supprimez les piles.

  1. Dissociez le Web ACL de toutes les AWS ressources. Pour obtenir des instructions, consultez la AWS WAF documentation.

  2. Dans le AWS CDK CLI, entrez la commande suivante pour supprimer l' AWS CDK application.

    cdk destroy --all
Général AWS

Ressources connexes