Implementa le automazioni di sicurezza per la AWS WAF soluzione utilizzando Terraform - Prontuario AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Implementa le automazioni di sicurezza per la AWS WAF soluzione utilizzando Terraform

Creato dal dott. Rahul Sharad Gaikwad () e Tamilselvan P () AWS AWS

aws-waf-automation-terraformArchivio di codice: -samples

Ambiente: PoC o pilota

Tecnologie: sicurezza, identità, conformità; infrastruttura; distribuzione dei contenuti; DevOps

Carico di lavoro: tutti gli altri carichi di lavoro

AWSservizi: AWS WAF

Riepilogo

AWSWAFè un firewall per applicazioni Web che aiuta a proteggere le applicazioni dagli exploit comuni utilizzando regole personalizzabili, che vengono definite e implementate nelle liste di controllo degli accessi Web ()ACLs. La configurazione AWS WAF delle regole può essere impegnativa, soprattutto per le organizzazioni che non dispongono di team di sicurezza dedicati. Per semplificare questo processo, Amazon Web Services (AWS) offre la AWS WAF soluzione Security Automations for, che distribuisce automaticamente un singolo Web ACL con una serie di AWS WAF regole che filtrano gli attacchi basati sul Web. Durante l'implementazione di Terraform, puoi specificare quali funzionalità di protezione includere. Dopo aver distribuito questa soluzione, AWS WAF ispeziona le richieste Web alle CloudFront distribuzioni Amazon esistenti o agli Application Load Balancer e blocca tutte le richieste che non corrispondono alle regole.

La AWS WAF soluzione Security Automations for può essere implementata AWS CloudFormation seguendo le istruzioni contenute nella Security Automations for Implementation Guide. AWS WAF Questo modello fornisce un'opzione di implementazione alternativa per le organizzazioni che utilizzano HashiCorp Terraform come strumento preferito di infrastruttura come codice (IaC) per fornire e gestire la propria infrastruttura cloud. Quando si implementa questa soluzione, Terraform applica automaticamente le modifiche nel cloud e implementa e configura le impostazioni e le funzionalità di protezione. AWS WAF

Prerequisiti e limitazioni

Prerequisiti

  • Un account AWS attivo.

  • AWSCommand Line Interface (AWSCLI) installata e configurata con le autorizzazioni necessarie. Per ulteriori informazioni, vedere Guida introduttiva (AWSCLIdocumentazione).

  • Terraform installato e configurato. Per ulteriori informazioni, consulta Install Terraform (documentazione Terraform).

Versioni del prodotto

  • AWSCLIversione 2.4.25 o successiva

  • Terraform versione 1.1.9 o successiva

Architettura

Architettura Target

Questo modello implementa la soluzione Security Automations for AWSWAF. Per ulteriori informazioni sull'architettura di destinazione, consulta la panoramica dell'architettura nella Security Automations for AWS WAF Implementation Guide. Per ulteriori informazioni sulle automazioni AWS Lambda in questa distribuzione, sul parser dei log delle applicazioni, sul parser dei registri, sul parser degli AWS WAF elenchi IP e sul gestore degli accessi, consulta i dettagli dei componenti nella Guida alle automazioni di sicurezza per l'implementazione. AWS WAF

Distribuzione di Terraform

Quando corriterraform apply, Terraform esegue le seguenti operazioni:

  1. Terraform crea IAM ruoli e funzioni Lambda in base agli input del file testing.tfvars.

  2. Terraform crea AWS WAF ACL regole e set IP in base agli input del file testing.tfvars.

  3. Terraform crea i bucket Amazon Simple Storage Service (Amazon S3), EventBridge le regole Amazon, le tabelle del database AWS Glue e i gruppi di lavoro Amazon Athena in base agli input del file testing.tfvars.

  4. Terraform distribuisce lo stack per fornire le risorse personalizzate. AWS CloudFormation

  5. Terraform crea le risorse Amazon API Gateway in base agli input forniti dal file testing.tfvars.

Automazione e scalabilità

Puoi utilizzare questo modello per creare AWS WAF regole per più AWS account e AWS regioni per implementare la AWS WAF soluzione Security Automations for in tutto il tuo AWS ambiente cloud.

Strumenti

AWSservizi

  • AWSCommand Line Interface (AWSCLI) è uno strumento open source che consente di interagire con i AWS servizi tramite comandi nella shell della riga di comando.

  • AWSWAFè un firewall per applicazioni Web che consente di monitorare HTTP e HTTPS inoltrare le richieste alle risorse protette delle applicazioni Web.

Altri servizi

  • Git è un sistema di controllo delle versioni distribuito e open source.

  • HashiCorp Terraform è un'applicazione di interfaccia a riga di comando che consente di utilizzare il codice per fornire e gestire l'infrastruttura e le risorse cloud.

Archivio di codice

Il codice per questo pattern è disponibile nel repository GitHub AWSWAFAutomation Using Terraform.

Best practice

  • Inserisci i file statici in bucket S3 separati.

  • Evita le variabili di codifica rigida.

  • Limita l'uso di script personalizzati.

  • Adotta una convenzione di denominazione.

Epiche

AttivitàDescrizioneCompetenze richieste

Installa Git.

Segui le istruzioni in Guida introduttiva (sito Web Git) per installare Git sulla tua workstation locale.

DevOps ingegnere

Clonare il repository.

Sulla tua workstation locale, inserisci il seguente comando per clonare il repository di codice. Per copiare l'intero comando, incluso il repositoryURL, consulta la sezione Informazioni aggiuntive di questo modello.

git clone <repo-URL>.git
DevOps ingegnere

Aggiorna le variabili.

  1. Naviga nella directory clonata inserendo il seguente comando.

    cd terraform-aws-waf-automation
  2. In qualsiasi editor di testo, apri il file testing.tfvars.

  3. Aggiorna i valori delle variabili nel file testing.tfvars.

  4. Salva e chiudi il file.

DevOps ingegnere
AttivitàDescrizioneCompetenze richieste

Inizializza la configurazione Terraform.

Immettete il seguente comando per inizializzare la directory di lavoro che contiene i file di configurazione Terraform.

terraform init
DevOps ingegnere

Visualizza l'anteprima del piano Terraform.

Inserire il seguente comando. Terraform valuta i file di configurazione per determinare lo stato di destinazione per le risorse dichiarate. Quindi confronta lo stato di destinazione con lo stato attuale e crea un piano.

terraform plan -var-file="testing.tfvars"
DevOps ingegnere

Verifica il piano.

Rivedi il piano e conferma che configuri l'architettura richiesta nell'AWSaccount di destinazione.

DevOps ingegnere

Distribuire la soluzione.

  1. Immettere il seguente comando per applicare il piano.

    terraform apply -var-file="testing.tfvars"
  2. Immettere yes per confermare. Terraform crea, aggiorna o distrugge l'infrastruttura per raggiungere lo stato di destinazione dichiarato nei file di configurazione. Per ulteriori informazioni sulla sequenza, vedere l'implementazione di Terraform nella sezione Architettura di questo modello.

DevOps ingegnere
AttivitàDescrizioneCompetenze richieste

Verifica le modifiche.

  1. Nella console Terraform, verifica che gli output corrispondano ai risultati previsti.

  2. Accedi alla console di AWS gestione.

  3. Verifica che gli output della console Terraform siano stati distribuiti correttamente nel tuo account. AWS

DevOps ingegnere

(Facoltativo) Pulisci l'infrastruttura.

Se desideri rimuovere tutte le risorse e le modifiche alla configurazione apportate da questa soluzione, procedi come segue:

  1. Nella console Terraform, inserisci il seguente comando.

    terraform destroy -var-file="testing.tfvars”
  2. Immettere yes per confermare.

DevOps ingegnere

Risoluzione dei problemi

ProblemaSoluzione

Errore WAFV2 IPSet: WAFOptimisticLockException

Se si riceve questo errore quando si esegue il terraform destroy comando, è necessario eliminare manualmente i set IP. Per istruzioni, vedere Eliminazione di un set IP (AWSWAFdocumentazione).

Risorse correlate

AWSriferimenti

Riferimenti Terraform

Informazioni aggiuntive

Il comando seguente clona il GitHub repository per questo pattern.

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