Déployez la solution Security Automations for AWS WAF à l'aide de Terraform - 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.

Déployez la solution Security Automations for AWS WAF à l'aide de Terraform

Créée par le Dr Rahul Sharad Gaikwad (AWS) et Tamilselvan (AWS)

Référentiel de code : aws-waf-automation-terraform -samples

Environnement : PoC ou pilote

Technologies : sécurité, identité, conformité ; infrastructure ; diffusion de contenu ; DevOps

Charge de travail : toutes les autres charges de travail

Services AWS : AWS WAF

Récapitulatif

AWS WAF est un pare-feu d'applications Web qui aide à protéger les applications contre les exploits courants en utilisant des règles personnalisables, que vous définissez et déployez dans des listes de contrôle d'accès Web (ACL). La configuration des règles AWS WAF peut s'avérer difficile, en particulier pour les organisations qui ne disposent pas d'équipes de sécurité dédiées. Pour simplifier ce processus, Amazon Web Services (AWS) propose la solution Security Automations for AWS WAF, qui déploie automatiquement une seule ACL Web avec un ensemble de règles AWS WAF qui filtrent les attaques Web. Lors du déploiement de Terraform, vous pouvez spécifier les fonctionnalités de protection à inclure. Après avoir déployé cette solution, AWS WAF inspecte les requêtes Web adressées aux CloudFront distributions Amazon existantes ou aux équilibreurs de charge d'application, et bloque toutes les demandes qui ne respectent pas les règles.

La solution Security Automations for AWS WAF peut être déployée à l'aide d' CloudFormation AWS conformément aux instructions du Guide de mise en œuvre des automatisations de sécurité pour AWS WAF. Ce modèle fournit une option de déploiement alternative aux entreprises qui utilisent HashiCorp Terraform comme outil d'infrastructure en tant que code (IaC) préféré pour provisionner et gérer leur infrastructure cloud. Lorsque vous déployez cette solution, Terraform applique automatiquement les modifications dans le cloud et déploie et configure les paramètres et fonctionnalités de protection d'AWS WAF.

Conditions préalables et limitations

Prérequis

  • Un compte AWS actif.

  • AWS Command Line Interface (AWS CLI) a été installée et configurée avec les autorisations nécessaires. Pour plus d'informations, consultez Getting started (documentation de l'AWS CLI).

  • Terraform installé et configuré. Pour plus d'informations, consultez Installer Terraform (documentation Terraform).

Versions du produit

  • AWS CLI version 2.4.25 ou ultérieure

  • Terraform version 1.1.9 ou ultérieure

Architecture

Architecture cible

Ce modèle déploie la solution Security Automations for AWS WAF. Pour plus d'informations sur l'architecture cible, consultez la section Présentation de l'architecture dans le Guide de mise en œuvre des automatisations de sécurité pour AWS WAF. Pour plus d'informations sur les automatisations AWS Lambda dans ce déploiement, l'analyseur de journaux d'applications, l'analyseur de journaux AWS WAF, l'analyseur de listes d'adresses IP et le gestionnaire d'accès, consultez les détails des composants dans le guide de mise en œuvre des automatisations de sécurité pour AWS WAF.

Déploiement de Terraform

Lorsque vous exécutezterraform apply, Terraform effectue les opérations suivantes :

  1. Terraform crée des rôles IAM et des fonctions Lambda en fonction des entrées du fichier testing.tfvars.

  2. Terraform crée des règles ACL et des ensembles d'adresses IP AWS WAF en fonction des entrées du fichier testing.tfvars.

  3. Terraform crée les compartiments Amazon Simple Storage Service (Amazon S3), les règles EventBridge Amazon, les tables de base de données AWS Glue et les groupes de travail Amazon Athena en fonction des entrées du fichier testing.tfvars.

  4. Terraform déploie la CloudFormation pile AWS pour fournir les ressources personnalisées.

  5. Terraform crée les ressources Amazon API Gateway en fonction des entrées fournies par le fichier testing.tfvars.

Automatisation et mise à l'échelle

Vous pouvez utiliser ce modèle pour créer des règles AWS WAF pour plusieurs comptes AWS et régions AWS afin de déployer la solution Security Automations for AWS WAF dans votre environnement cloud AWS.

Outils

Services AWS

  • L'interface de ligne de commande AWS (AWS CLI) est un outil open source qui vous permet d'interagir avec les services AWS par le biais de commandes dans votre shell de ligne de commande.

  • AWS WAF est un pare-feu d'applications Web qui vous aide à surveiller les requêtes HTTP et HTTPS qui sont transmises aux ressources protégées de votre application Web.

Autres services

  • Git est un système de contrôle de version distribué et open source.

  • HashiCorp Terraform est une application d'interface en ligne de commande qui vous aide à utiliser du code pour provisionner et gérer l'infrastructure et les ressources du cloud.

Référentiel de code

Le code de ce modèle est disponible dans le référentiel GitHub AWS WAF Automation Using Terraform.

Bonnes pratiques

  • Placez les fichiers statiques dans des compartiments S3 séparés.

  • Évitez de coder des variables en dur.

  • Limitez l'utilisation de scripts personnalisés.

  • Adoptez une convention de dénomination.

Épopées

TâcheDescriptionCompétences requises

Installez Git.

Suivez les instructions de la section Mise en route (site Web Git) pour installer Git sur votre poste de travail local.

DevOps ingénieur

Pour cloner le référentiel.

Sur votre poste de travail local, entrez la commande suivante pour cloner le référentiel de code. Pour copier la commande complète, y compris l'URL du dépôt, consultez la section Informations supplémentaires de ce modèle.

git clone <repo-URL>.git
DevOps ingénieur

Mettez à jour les variables.

  1. Accédez au répertoire cloné en saisissant la commande suivante.

    cd terraform-aws-waf-automation
  2. Dans n'importe quel éditeur de texte, ouvrez le fichier testing.tfvars.

  3. Mettez à jour les valeurs des variables dans le fichier testing.tfvars.

  4. Enregistrez et fermez le fichier .

DevOps ingénieur
TâcheDescriptionCompétences requises

Initialisez la configuration Terraform.

Entrez la commande suivante pour initialiser votre répertoire de travail contenant les fichiers de configuration Terraform.

terraform init
DevOps ingénieur

Prévisualisez le plan Terraform.

Entrez la commande suivante. Terraform évalue les fichiers de configuration pour déterminer l'état cible des ressources déclarées. Il compare ensuite l'état cible à l'état actuel et crée un plan.

terraform plan -var-file="testing.tfvars"
DevOps ingénieur

Vérifiez le plan.

Passez en revue le plan et confirmez qu'il configure l'architecture requise dans votre compte AWS cible.

DevOps ingénieur

Déployez la solution.

  1. Entrez la commande suivante pour appliquer le plan.

    terraform apply -var-file="testing.tfvars"
  2. Saisissez yes pour confirmer. Terraform crée, met à jour ou détruit l'infrastructure pour atteindre l'état cible déclaré dans les fichiers de configuration. Pour plus d'informations sur la séquence, consultez la section Déploiement de Terraform dans la section Architecture de ce modèle.

DevOps ingénieur
TâcheDescriptionCompétences requises

Vérifiez les modifications.

  1. Dans la console Terraform, vérifiez que les sorties correspondent aux résultats attendus.

  2. Connectez-vous à l'AWS Management Console.

  3. Vérifiez que les sorties de la console Terraform ont été déployées avec succès sur votre compte AWS.

DevOps ingénieur

(Facultatif) Nettoyez l'infrastructure.

Si vous souhaitez supprimer toutes les modifications de ressources et de configuration apportées par cette solution, procédez comme suit :

  1. Dans la console Terraform, entrez la commande suivante.

    terraform destroy -var-file="testing.tfvars”
  2. Saisissez yes pour confirmer.

DevOps ingénieur

Résolution des problèmes

ProblèmeSolution

WAFV2 IPSet: WAFOptimisticLockExceptionErreur

Si vous recevez cette erreur lorsque vous exécutez la terraform destroy commande, vous devez supprimer manuellement les ensembles d'adresses IP. Pour obtenir des instructions, consultez Supprimer un ensemble d'adresses IP (documentation AWS WAF).

Ressources connexes

Références AWS

Références Terraform

Informations supplémentaires

La commande suivante clone le GitHub référentiel pour ce modèle.

git clone https://github.com/aws-samples/aws-waf-automation-terraform-samples.git