Verwenden von AWS WAF zum Schutz Ihrer APIs - Amazon API Gateway

Verwenden von AWS WAF zum Schutz Ihrer APIs

AWS WAF ist eine webbasierte Firewall, die Webanwendungen und APIs vor Angriffen schützt. Sie ermöglicht ihnen, eine Gruppe von Regeln (eine sogenannte Web-Zugriffskontrollliste oder Web-ACL) zum Zulassen, Blockieren oder Zählen von Webanforderungen basierend auf von Ihnen definierten anpassbaren Web-Sicherheitsregeln und Bedingungen zu konfigurieren. Weitere Informationen finden Sie unter Die Funktionsweise von AWS WAF.

Sie können AWS WAF verwenden, um Ihre API-Gateway-API vor gängigen Web-Exploits wie SQL-Injection- und Cross-Site-Scripting (XSS)-Angriffen zu schützen. Diese können sich auf die Verfügbarkeit und Leistung der API auswirken, die Sicherheit gefährden oder übermäßige Ressourcen verbrauchen. Sie können beispielsweise Regeln zum Zulassen oder Blockieren von Anforderungen von angegebenen IP-Adressbereichen, Anforderungen von CIDR-Blocks, Anforderungen aus einem bestimmten Land oder einer bestimmten Region, Anforderungen mit bösartigem SQL-Code oder Anforderungen mit bösartigem Skript erstellen.

Sie können auch Regeln erstellen, die mit einer bestimmten Zeichenfolge oder einem regulären Ausdrucksmuster in HTTP-Headern, einer Methode, einer Abfragezeichenfolge, einer URI und dem Anforderungstext (nur für die ersten 8 KB) übereinstimmen. Außerdem können Sie Regeln zum Blockieren von Angriffen von bestimmten Benutzeragenten, bösartigen Bots und Content Scrapers erstellen. Beispielsweise können Sie mit durchsatzbasierten Regeln die Anzahl der zulässigen Webanforderungen angeben, die von jeder Client-IP in einem sich anschließenden, fortlaufend aktualisierten 5-Minuten-Zeitraum zugelassen werden.

Wichtig

AWS WAF ist die erste Verteidigungslinie gegen Web-Exploits. Wenn AWS WAF für eine API aktiviert ist, werden AWS WAF-Regeln vor anderen Zugriffskontrollfunktionen wie Ressourcenrichtlinien, IAM-Richtlinien, Lambda-Genehmigern und Amazon-Cognito-Genehmigern ausgewertet. Wenn z. B. AWS WAF den Zugriff von einem CIDR-Block verhindert, den eine Ressourcenrichtlinie gewährt, hat AWS WAF Vorrang und die Ressourcenrichtlinie wird nicht ausgewertet.

Um AWS WAF für Ihre API zu aktivieren, müssen Sie Folgendes tun:

  1. Erstellen Sie mithilfe der AWS WAF-Konsole, dem AWS SDK oder der CLI eine regionale Web-ACL mit der gewünschten Kombination von verwalteten AWS WAF-Regeln und Ihren eigenen benutzerdefinierten Regeln. Weitere Informationen finden Sie unter Erste Schritte mit AWS WAF und Erstellen und Konfigurieren einer Web-Zugriffskontrollliste (Web-ACL).

    Wichtig

    API Gateway erfordert eine regionale Web-ACL.

  2. Verknüpfen Sie die regionale AWS WAF-Web-ACL mit einer API-Stufe. Sie können dies über die AWS WAF-Konsole, das AWS SDK, die CLI oder über die API-Gateway-Konsole, das AWS SDK oder die CLI tun.

So verknüpfen Sie eine regionale AWS WAF-Web-ACL mit einer API-Gateway-API-Stufe über die API-Gateway-Konsole:

Um die API-Gateway-Konsole zur Verknüpfung einer regionalen AWS WAF-Web-ACL mit einer bestehenden API-Gateway-API-Stufe zu verwenden, führen Sie die folgenden Schritte aus:

  1. Melden Sie sich bei der API Gateway-Konsole unter https://console.aws.amazon.com/apigateway an.

  2. Wählen Sie im Navigationsbereich APIs die API aus und klicken Sie dann auf Stages (Stufen).

  3. Wählen Sie im Bereich Stages den Namen der Stufe aus.

  4. Wählen Sie im Bereich Stage Editor die Registerkarte Settings.

  5. So verknüpfen Sie eine regionale Web-ACL mit der API-Stufe:

    1. Wählen Sie in der AWS WAF-Web-ACL-Dropdown-Liste die regionale Web-ACL aus, die Sie dieser Stufe zuordnen möchten.

      Anmerkung

      Wenn die benötigte Web-ACL noch nicht vorhanden ist, wählen Sie WebACL erstellen aus. Wählen Sie dann Gehen Sie zu AWS WAF aus, um die AWS WAF-Konsole in einer neuen Browserregisterkarte zu öffnen und eine regionale Web-ACL zu erstellen. Kehren Sie dann zur API Gateway-Konsole zurück, um die Web-ACL mit der Stufe zu verknüpfen.

  6. Wählen Sie Save Changes.

Zuordnen einer regionalen AWS WAF-Web-ACL einer API-Gateway-API-Stufe mithilfe der AWS CLI

Zur Verwendung der AWS CLI für das Zuordnen einer regionalen AWS WAF-Web-ACL zu einer vorhandenen API-Gateway-API-Stufe rufen Sie den Befehl associate-web-acl auf, wie im folgenden Beispiel:

aws waf-regional associate-web-acl \ --web-acl-id 'aabc123a-fb4f-4fc6-becb-2b00831cadcf' \ --resource-arn 'arn:aws:apigateway:{region}::/restapis/4wk1k4onj3/stages/prod'

Zuordnen einer regionalen AWS WAF-Web-ACL zu einer API-Stufe mithilfe der AWS WAF-REST-API

Zur Verwendung der AWS WAF-REST-API für das Zuordnen einer regionalen AWS WAF-Web-ACL zu einer vorhandenen API-Gateway-API-Stufe rufen Sie den Befehl AssociateWebACL auf, wie im folgenden Beispiel:

import boto3 waf = boto3.client('waf-regional') waf.associate_web_acl( WebACLId='aabc123a-fb4f-4fc6-becb-2b00831cadcf', ResourceArn='arn:aws:apigateway:{region}::/restapis/4wk1k4onj3/stages/prod' )