Stellen Sie die Lösung Security Automations für AWS WAF 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 Lösung Security Automations für AWS WAF mithilfe von Terraform bereit

Erstellt von Dr. Rahul Sharad Gaikwad (AWS) undilsel Bol P (AWS)

Code-Repository: aws-waf-automation-terraform-samples

Umgebung: PoC oder Pilotprojekt

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

Workload: Alle anderen Workloads

AWS-Services: AWS WAF

Übersicht

AWS WAF ist eine Firewall für Webanwendungen, die Anwendungen vor häufigen Exploits schützt, indem anpassbare Regeln verwendet werden, die Sie definieren und in Web-Zugriffskontrolllisten (ACLs) bereitstellen. Die Konfiguration von AWS WAF-Regeln kann schwierig sein, insbesondere für Organisationen, die keine dedizierten Sicherheitsteams haben. Um diesen Prozess zu vereinfachen, bietet Amazon Web Services (AWS) die Lösung Security Automations for AWS WAF, die automatisch eine einzelne Web-ACL mit einem Satz von AWS WAF-Regeln bereitstellt, die webbasierte Angriffe filtern. Während der Terraform-Bereitstellung können Sie angeben, welche Schutzfunktionen berücksichtigt werden sollen. Nach der Bereitstellung dieser Lösung überprüft AWS WAF Webanforderungen an vorhandene Amazon- CloudFront Verteilungen oder Application Load Balancer und blockiert alle Anforderungen, die nicht den Regeln entsprechen.

Die Lösung Security Automations for AWS WAF kann mithilfe von AWS CloudFormation gemäß den Anweisungen im Implementierungshandbuch für Security Automations for AWS WAF bereitgestellt werden. Dieses Muster bietet eine alternative Bereitstellungsoption für Organisationen, die HashiCorp Terraform als bevorzugtes Infrastructure as Code (IaC)-Tool 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

  • Ein aktives AWS-Konto.

  • AWS Command Line Interface (AWS CLI) installiert und mit den erforderlichen Berechtigungen konfiguriert. Weitere Informationen finden Sie unter Erste Schritte (AWS-CLI-Dokumentation).

  • Terraform installiert und konfiguriert. Weitere Informationen finden Sie unter Installieren von Terraform (Terraform-Dokumentation).

Produktversionen

  • AWS CLI Version 2.4.25 oder höher

  • Terraform Version 1.1.9 oder höher

Architektur

Zielarchitektur

Dieses Muster stellt die Lösung Security Automations für AWS WAF bereit. Weitere Informationen zur Zielarchitektur finden Sie unter Architekturübersicht im Handbuch zur Implementierung von Sicherheitsautomatisierungen für AWS WAF. Weitere Informationen zu den AWS Lambda-Automatisierungen in dieser Bereitstellung, zum Anwendungsprotokoll-Parser, zum AWS WAF-Protokoll-Parser, zum IP-Listen-Parser und zum Zugriffshandler finden Sie unter Komponentendetails im Handbuch zur Implementierung von Sicherheitsautomatisierungen für AWS WAF.

Terraform-Bereitstellung

Wenn Sie ausführenterraform apply, geht Terraform wie folgt vor:

  1. Terraform erstellt IAM-Rollen und Lambda-Funktionen basierend auf den Eingaben aus der Datei test.tfvars.

  2. Terraform erstellt AWS WAF-ACL-Regeln und IP-Sets basierend auf den Eingaben aus der Datei test.tfvars.

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

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

  5. Terraform erstellt die Amazon API Gateway-Ressourcen basierend auf den angegebenen Eingaben aus der Datei test.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 Lösung Security Automations for AWS WAF 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-Anforderungen überwachen können, die an Ihre geschützten Webanwendungsressourcen weitergeleitet werden.

Andere -Services

  • Git ist ein verteiltes Open-Source-Versionsverwaltungssystem.

  • HashiCorp Terraform ist eine Befehlszeilenschnittstellenanwendung, mit der Sie Code für die Bereitstellung und Verwaltung von Cloud-Infrastrukturen und -Ressourcen verwenden 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 die Hartkodierung von Variablen.

  • Beschränken Sie die Verwendung von benutzerdefinierten Skripts.

  • Übernehmen Sie eine Namenskonvention.

Sekunden

AufgabeBeschreibungErforderliche Fähigkeiten

Installieren Sie Git.

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

DevOps Techniker

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 Techniker

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 test.tfvars.

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

  4. Speichern und schließen Sie die Datei.

DevOps Techniker
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 Techniker

Zeigen Sie 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 bestimmen. Anschließend wird der Zielstatus mit dem aktuellen Status verglichen und ein Plan erstellt.

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

Überprüfen Sie den Plan.

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

DevOps Techniker

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 Infrastrukturen, um den in den Konfigurationsdateien deklarierten Zielstatus zu erreichen. Weitere Informationen zur Sequenz finden Sie unter Terraform-Bereitstellung im Abschnitt Architektur dieses Musters.

DevOps Techniker
AufgabeBeschreibungErforderliche Fähigkeiten

Überprüfen Sie die Änderungen.

  1. Überprüfen Sie in der Terraform-Konsole, ob die Ausgaben den erwarteten Ergebnissen entsprechen.

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

  3. Überprüfen Sie, ob die Ausgaben in der Terraform-Konsole erfolgreich in Ihrem AWS-Konto bereitgestellt wurden.

DevOps Techniker

(Optional) Bereinigen Sie die Infrastruktur.

Wenn Sie alle Ressourcen und Konfigurationsänderungen entfernen möchten, die von dieser Lösung vorgenommen wurden, 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 Techniker

Fehlerbehebung

ProblemLösung

WAFV2 IPSet: WAFOptimisticLockException-Fehler

Wenn Sie diesen Fehler erhalten, wenn Sie den terraform destroy Befehl ausführen, müssen Sie die IP-Sets manuell löschen. Anweisungen finden Sie unter Löschen eines IP-Sets (AWS 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