Stellen Sie die WAF-Lösung Security Automations for AWS mithilfe von Terraform bereit - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Stellen Sie die WAF-Lösung Security Automations for AWS mithilfe von Terraform bereit

Erstellt von Dr. Rahul Sharad Gaikwad (AWS) und Tamilselvan P (AWS)

aws-waf-automation-terraformCode-Repository: -samples

Umgebung: PoC oder Pilot

Technologien: Sicherheit, Identität, Compliance; Infrastruktur; Bereitstellung von Inhalten; DevOps

Arbeitslast: Alle anderen Workloads

AWS-Dienste: AWS WAF

Übersicht

AWS WAF ist eine Firewall für Webanwendungen, die mithilfe anpassbarer Regeln, die Sie in Web Access Control Lists (ACLs) definieren und bereitstellen, zum Schutz von Anwendungen vor häufigen Exploits beiträgt. Die Konfiguration von AWS-WAF-Regeln kann eine Herausforderung sein, insbesondere für Unternehmen, die keine eigenen Sicherheitsteams haben. Um diesen Prozess zu vereinfachen, bietet Amazon Web Services (AWS) die WAF-Lösung Security Automations for AWS an, die automatisch eine einzige Web-ACL mit einer Reihe von AWS-WAF-Regeln bereitstellt, die webbasierte Angriffe filtern. Während der Terraform-Bereitstellung können Sie angeben, welche Schutzfunktionen enthalten sein sollen. Nach der Bereitstellung dieser Lösung überprüft AWS WAF Webanfragen an bestehende CloudFront Amazon-Distributionen oder Application Load Balancer und blockiert alle Anfragen, die nicht den Regeln entsprechen.

Die WAF-Lösung Security Automations for AWS kann mithilfe von AWS CloudFormation gemäß den Anweisungen im Security Automations for AWS WAF WAF-Implementierungsleitfaden bereitgestellt werden. Dieses Muster bietet eine alternative Bereitstellungsoption für Unternehmen, die HashiCorp Terraform als bevorzugtes Infrastructure-as-Code-Tool (IaC) zur Bereitstellung und Verwaltung ihrer Cloud-Infrastruktur verwenden. Wenn Sie diese Lösung bereitstellen, wendet Terraform die Änderungen automatisch in der Cloud an und stellt die AWS-WAF-Einstellungen und Schutzfunktionen bereit und konfiguriert sie.

Voraussetzungen und Einschränkungen

Voraussetzungen

Produktversionen

  • AWS CLI Version 2.4.25 oder höher

  • Terraform Version 1.1.9 oder höher

Architektur

Zielarchitektur

Dieses Muster stellt die WAF-Lösung Security Automations for AWS bereit. Weitere Informationen zur Zielarchitektur finden Sie unter Architekturübersicht im Security Automations for AWS WAF Implementation Guide. Weitere Informationen zu den AWS-Lambda-Automatisierungen in dieser Bereitstellung, dem Anwendungsprotokollparser, dem AWS-WAF-Protokollparser, dem IP-Listen-Parser und dem Zugriffshandler finden Sie unter Komponentendetails im Security Automations for AWS WAF Implementation Guide.

Terraform-Bereitstellung

Wenn Sie es ausführenterraform apply, macht Terraform Folgendes:

  1. Terraform erstellt IAM-Rollen und Lambda-Funktionen auf der Grundlage der Eingaben aus der Datei testing.tfvars.

  2. Terraform erstellt AWS WAF-ACL-Regeln und IP-Sets auf der Grundlage der Eingaben aus der Datei testing.tfvars.

  3. Terraform erstellt die Amazon Simple Storage Service (Amazon S3) -Buckets, EventBridge Amazon-Regeln, AWS Glue Glue-Datenbanktabellen und Amazon Athena-Arbeitsgruppen auf der Grundlage der Eingaben aus der Datei testing.tfvars.

  4. Terraform stellt den CloudFormation AWS-Stack bereit, um die benutzerdefinierten Ressourcen bereitzustellen.

  5. Terraform erstellt die Amazon API Gateway Gateway-Ressourcen auf der Grundlage der angegebenen Eingaben aus der Datei testing.tfvars.

Automatisierung und Skalierung

Sie können dieses Muster verwenden, um AWS-WAF-Regeln für mehrere AWS-Konten und AWS-Regionen zu erstellen, um die WAF-Lösung Security Automations for AWS in Ihrer gesamten AWS-Cloud-Umgebung bereitzustellen.

Tools

AWS-Services

  • AWS Command Line Interface (AWS CLI) ist ein Open-Source-Tool, mit dem Sie über Befehle in Ihrer Befehlszeilen-Shell mit AWS-Services interagieren können.

  • AWS WAF ist eine Firewall für Webanwendungen, mit der Sie HTTP- und HTTPS-Anfragen überwachen können, die an Ihre geschützten Webanwendungsressourcen weitergeleitet werden.

Andere Dienste

  • Git ist ein verteiltes Open-Source-Versionskontrollsystem.

  • HashiCorp Terraform ist eine Befehlszeilenschnittstelle, mit der Sie mithilfe von Code Cloud-Infrastruktur und -Ressourcen bereitstellen und verwalten können.

Code-Repository

Der Code für dieses Muster ist im GitHub AWS WAF Automation Using Terraform Repository verfügbar.

Bewährte Methoden

  • Platzieren Sie statische Dateien in separaten S3-Buckets.

  • Vermeiden Sie es, Variablen fest zu codieren.

  • Beschränken Sie die Verwendung von benutzerdefinierten Skripten.

  • Nehmen Sie eine Namenskonvention an.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Installieren Sie Git.

Folgen Sie den Anweisungen unter Erste Schritte (Git-Website), um Git auf Ihrer lokalen Workstation zu installieren.

DevOps Ingenieur

Klonen Sie das Repository

Geben Sie auf Ihrer lokalen Workstation den folgenden Befehl ein, um das Code-Repository zu klonen. Informationen zum Kopieren des vollständigen Befehls, einschließlich der Repo-URL, finden Sie im Abschnitt Zusätzliche Informationen dieses Musters.

git clone <repo-URL>.git
DevOps Ingenieur

Aktualisieren Sie die Variablen.

  1. Navigieren Sie in das geklonte Verzeichnis, indem Sie den folgenden Befehl eingeben.

    cd terraform-aws-waf-automation
  2. Öffnen Sie in einem beliebigen Texteditor die Datei testing.tfvars.

  3. Aktualisieren Sie die Werte der Variablen in der Datei testing.tfvars.

  4. Speichern und schließen Sie die Datei.

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Initialisieren Sie die Terraform-Konfiguration.

Geben Sie den folgenden Befehl ein, um Ihr Arbeitsverzeichnis zu initialisieren, das die Terraform-Konfigurationsdateien enthält.

terraform init
DevOps Ingenieur

Sehen Sie sich eine Vorschau des Terraform-Plans an.

Geben Sie den folgenden Befehl ein. Terraform wertet die Konfigurationsdateien aus, um den Zielstatus für die deklarierten Ressourcen zu ermitteln. Anschließend wird der Zielstatus mit dem aktuellen Status verglichen und ein Plan erstellt.

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

Überprüfen Sie den Plan.

Überprüfen Sie den Plan und stellen Sie sicher, dass er die erforderliche Architektur in Ihrem AWS-Zielkonto konfiguriert.

DevOps Ingenieur

Stellen Sie die Lösung bereit.

  1. Geben Sie den folgenden Befehl ein, um den Plan anzuwenden.

    terraform apply -var-file="testing.tfvars"
  2. Geben Sie yes zur Bestätigung ein. Terraform erstellt, aktualisiert oder zerstört die Infrastruktur, um den in den Konfigurationsdateien angegebenen Zielstatus zu erreichen. Weitere Informationen zur Reihenfolge finden Sie unter Terraform-Bereitstellung im Abschnitt Architektur dieses Musters.

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Überprüfen Sie die Änderungen.

  1. Stellen Sie in der Terraform-Konsole sicher, dass die Ausgaben den erwarteten Ergebnissen entsprechen.

  2. Melden Sie sich bei der AWS-Managementkonsole an.

  3. Stellen Sie sicher, dass die Ausgaben in der Terraform-Konsole erfolgreich in Ihrem AWS-Konto bereitgestellt wurden.

DevOps Ingenieur

(Optional) Säubern Sie die Infrastruktur.

Wenn Sie alle Ressourcen und Konfigurationsänderungen, die durch diese Lösung vorgenommen wurden, entfernen möchten, gehen Sie wie folgt vor:

  1. Geben Sie in der Terraform-Konsole den folgenden Befehl ein.

    terraform destroy -var-file="testing.tfvars”
  2. Geben Sie yes zur Bestätigung ein.

DevOps Ingenieur

Fehlerbehebung

ProblemLösung

WAFV2 IPSet: WAFOptimisticLockException-Fehler

Wenn Sie diesen Fehler bei der Ausführung des terraform destroy Befehls erhalten, müssen Sie die IP-Sätze manuell löschen. Anweisungen finden Sie unter Löschen eines IP-Sets (AWS WAF WAF-Dokumentation).

Zugehörige Ressourcen

AWS-Referenzen

Terraform-Referenzen

Zusätzliche Informationen

Der folgende Befehl klont das GitHub Repository für dieses Muster.

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