App Engine-Firewallregeln erstellen

In App Engine können Sie eine Firewall mit bis zu 1.000 priorisierten Einzelregeln erstellen, die einen Bereich von IP-Adressen und Subnetzen entweder zulassen oder einschränken. Ihre Anwendung antwortet nur auf Anfragen, die von der Firewall zugelassen werden.

Informationen zur Funktionsweise der App Engine-Firewall finden Sie unter Firewalls verstehen.

Vorbereitung

Zur Erstellung von App Engine-Firewallregeln für Ihre Anwendung benötigen Sie eine der folgenden App Engine-IAM-Rollen mit den erforderlichen Berechtigungen zum Erstellen oder Ändern von Firewallregeln:

  • App Engine-Administrator
  • Editor
  • Owner

Firewallregeln erstellen

Verwenden Sie eine der folgenden Methoden, um eine Firewallregel zu erstellen. Wiederholen Sie diese Schritte für jede weitere Regel:

Console

Sie können eine Firewallregel in der Google Cloud Console auf der Seite „Firewallregeln” erstellen:

  1. Rufen Sie in der Google Cloud Console die Seite „Firewallregel erstellen“ auf:

    Zur Seite „Firewallregel erstellen“

  2. Geben Sie die Details der Firewallregel an:

    1. Unter Priorität geben Sie eine Ganzzahl ein, um die relative Wichtigkeit der Regel anzugeben und die Reihenfolge festzulegen, in der die Regel ausgewertet wird.

      Gültige Werte sind 1 bis 2147483646. Die Regel mit der Priorität 1 wird als erste ausgewertet. Die Regel mit der Priorität 2147483647 wird als letzte ausgewertet. Dieser Prioritätswert ist für die Standardregel „default“ reserviert.

    2. Geben Sie unter Aktion bei Übereinstimmung an, ob der Zugriff für Anfragen, die der Regel entsprechen, zugelassen oder abgelehnt wird. Regeln mit dem Wert allow leiten die Anfrage an die Anwendung weiter. Regeln mit dem Wert deny antworten auf Anfragen mit der Fehlermeldung 403 Forbidden.
    3. Definieren Sie unter IP-Bereich den Bereich der IP-Adressen, für die die Regel gelten soll. Der IP-Adressbereich muss in CIDR-Notation definiert sein, darf Subnetzmasken enthalten und unterstützt sowohl IPv4 als auch IPv6.
    4. Optional: Geben Sie unter Beschreibung eine Beschreibung für die Regel ein, die nicht mehr als 100 Zeichen enthalten darf.
  3. Klicken Sie auf Speichern, um die Regel zu erstellen.
  4. Testen Sie die Regel, um festzustellen, dass die Priorität und die Aktion zum gewünschten Verhalten führen:
    1. Klicken Sie auf IP-Adresse testen.
    2. Geben Sie die IP-Adresse ein, die Sie prüfen möchten, und klicken Sie dann auf Testen, um festzustellen, ob die entsprechende Regel korrekt ausgewertet wird.
gcloud

Mit den folgenden Befehlen vom Typ gcloud app firewall-rules können Sie eine Firewallregel erstellen:

  1. Mit diesem Befehl können Sie eine Firewallregel erstellen:

    gcloud app firewall-rules create PRIORITY --action ALLOW_OR_DENY --source-range IP_RANGE --description DESCRIPTION
    wobei:
    • PRIORITY ist eine Ganzzahl im Bereich von 1 bis 2147483646. Dieser Wert definiert die Wichtigkeit der Regel und legt die Reihenfolge der Regelauswertung fest. Die Regel mit der Priorität 1 wird als erste ausgewertet. Die Regel mit der Priorität 2147483647 wird als letzte ausgewertet. Dieser Prioritätswert ist für die Standardregel „default” reserviert.
    • ALLOW_OR_DENY gibt an, ob der Zugriff für Anfragen, die der Regel entsprechen, zugelassen oder verweigert wird. Gültige Werte sind allow und deny. Regeln mit dem Wert allow leiten die Anfrage an die Anwendung weiter. Regeln mit dem Wert deny antworten auf Anfragen mit der Fehlermeldung 403 Forbidden.
    • IP_RANGE definiert den Bereich der IP-Adressen, für die die Regel gelten soll. Der IP-Adressbereich muss in CIDR-Notation definiert sein, darf Subnetzmasken enthalten und unterstützt sowohl IPv4 als auch IPv6.
    • DESCRIPTION ist eine optionale Beschreibung der Regel und darf nicht mehr als 100 Zeichen enthalten.
  2. Führen Sie diesen Befehl aus, um die Regel zu testen und zu prüfen, ob die Priorität und die Aktion zum gewünschten Verhalten führen:
    gcloud app firewall-rules test-ip IP_ADDRESS
    IP_ADDRESS ist dabei die IP-Adresse, mit der Sie die Firewall testen möchten.
  3. Führen Sie diesen Befehl aus, um eine Liste der bestehenden Regeln anzuzeigen:
    gcloud app firewall-rules list
  4. Führen Sie diesen Befehl aus, um eine bestehende Regel zu löschen:
    gcloud app firewall-rules delete PRIORITY
    PRIORITY ist dabei der Prioritätswert der Regel, die Sie löschen möchten.
Beispiele:
Diese Beispiele helfen Ihnen beim Erstellen der Firewall:
  • Fügen Sie eine Regel hinzu, die einer IPv6-Adresse und einer Subnetzmaske den Zugriff erlaubt, und testen Sie diese Regel, um sicherzustellen, dass sie vor den anderen Regeln ausgewertet wird:

    gcloud app firewall-rules create 123 --source-range fe80::3636:3bff:fecc:8778/128 --action allow
    gcloud app firewall-rules test-ip fe80::3636:3bff:fecc:8778
  • Fügen Sie eine Regel hinzu, die den Zugriff über eine IPv4-Adresse und eine Subnetzmaske verweigert, und testen Sie diese Regel, um zu prüfen, ob sie korrekt ausgewertet wird.

    gcloud app firewall-rules create 123456 --source-range "74.125.0.0/16" --action deny
    gcloud app firewall-rules test-ip 74.125.0.8
  • Aktualisieren Sie die Standardregel und testen Sie sie, um sicherzustellen, dass der Zugriff über alle IP-Adressen verweigert wird, die nicht mit anderen Regeln übereinstimmen.

    gcloud app firewall-rules update default --action deny
    gcloud app firewall-rules test-ip 123.456.7.89
API

Mit den Methoden apps.firewall.ingressRules in der Admin API können Sie Firewallregeln für Ihre App Engine-Anwendung programmgesteuert erstellen.

Mit der Methode apps.firewall.ingressRules.list können Sie eine Firewallregel testen und prüfen, ob die Priorität und die Aktion zum gewünschten Verhalten führen. Dabei geben Sie im Parameter matchingAddress die IP-Adresse an, die getestet werden soll.

Informationen zu App Engine-Firewallregeln

Eine App Engine-Firewall besteht aus einer sortierten Liste von Regeln, die den Zugriff von der angegebenen IP-Adresse oder dem angegebenen IP-Bereich auf Ihre App zulassen oder verweigern können. Die Regel gilt für alle Ressourcen der App Engine-Anwendung.

Priorität von Firewallregeln

Die Firewallregeln sind nach Wichtigkeit sortiert. Sie definieren für jede Regel die Priorität als numerischen Wert. Sie müssen für jede Regel einen eindeutigen Prioritätswert festlegen, da dieser die Wichtigkeit im Verhältnis zu den anderen Regeln in der Firewall definiert. Die Werte für die Priorität einer Regel beginnen mit 1 für die wichtigste Regel und werden immer höher bis zum Wert 2147483647 für die am wenigsten wichtige Regel.

Jede Firewall enthält eine Regel default, die automatisch mit der Priorität 2147483647 erstellt wird und für den gesamten IP-Bereich Ihrer Anwendung gilt. Die Regel default wird immer nach allen anderen Regeln in der Firewall ausgewertet und auf alle Anfragen von allen IP-Adressen angewendet.

Die Regel mit der höchsten Priorität wird von der Firewall zuerst ausgewertet. Alle übrigen Regeln in der Firewall werden der Reihe nach ausgewertet, bis eine Regel dem IP-Bereich dieser Anfrage entspricht. Wird eine übereinstimmende Regel gefunden, wird die Verbindung entweder zugelassen oder abgelehnt. Die restlichen Regeln in der Firewall werden dann übersprungen. Wenn keine der manuell definierten Regeln in der Firewall der Anfrage entspricht, wird die Regel default ausgewertet.

Wenn Sie beispielsweise eine Regel mit der Priorität 1 erstellen, wird diese immer zuerst ausgewertet. Wenn eine eingehende Anfrage der Regel mit der Priorität 1 entspricht, wird nur diese Regel ausgewertet und alle anderen Regeln in der Firewall werden übersprungen, einschließlich der Regel default.

Die folgende Beispielfirewall zeigt, wie die Priorität einer Regel das Verhalten der Firewall ändern kann.

Beispielfirewall

In diesem Beispiel hat ein Unternehmen eine Firewall eingerichtet, um dem Entwicklerteam und dem internen Unternehmensnetzwerk Zugriff auf die gerade entwickelte Anwendung zu gewähren. Bei den Firewallregeln wurden große Lücken zwischen den einzelnen Prioritäten gelassen, damit spätere Ergänzungen möglich sind.

Priorität Aktion IP-Bereich Beschreibung
1.000 Ablehnen 192.0.2.1 Verweigert einem DoS-Angreifer den Zugriff
2.000 Zulassen 198.51.100.2 Ermöglicht einem Entwickler in einer Außenstelle den Zugriff
3.000 Ablehnen 198.51.100.0/24 Verweigert den Zugriff aus allen Nicht-Entwicklungsgebäuden
5.000 Zulassen 203.0.113.0/24 Ermöglicht den Zugriff aus dem Netzwerk des Hauptgebäudes
2147483647 Ablehnen * Standardaktion

Nach dem Erstellen der Firewall werden die folgenden Anfragen an die Beispielanwendung gerichtet. Beachten Sie die Antwort der Anwendung:

  • Eine Anfrage von 198.51.100.2 entspricht der Regel mit der Priorität 2.000 und wird zugelassen.
  • Eine Anfrage von 198.51.100.100 entspricht der Regel mit der Priorität 3.000 und wird abgelehnt.
  • Eine Anfrage von 203.0.113.54 entspricht der Regel mit der Priorität 5.000 und wird zugelassen.
  • Eine Anfrage von 45.123.35.242 entspricht der Standardregel und wird abgelehnt.

Regelkonflikte auflösen

Angenommen, zwei der Prioritäten in der Firewall des Unternehmens werden vertauscht. Wenn die Regeln für die Prioritäten 2.000 und 3.000 vertauscht werden, tritt ein unerwünschtes Verhalten auf.

Priorität Aktion IP-Bereich Beschreibung
1.000 Ablehnen 192.0.2.1 Verweigert einem DoS-Angreifer den Zugriff
2.000 Ablehnen 198.51.100.0/24 Verweigert den Zugriff aus allen Gebäuden außer denen der Entwicklungsabteilung.
3.000 Zulassen 198.51.100.2 Ermöglicht einem Entwickler in einer Außenstelle den Zugriff
5.000 Zulassen 203.0.113.0/24 Ermöglicht den Zugriff aus dem Netzwerk des Hauptgebäudes
2147483647 Ablehnen * Standardaktion

Der Entwickler in der Außenstelle kann nicht auf die Anwendung des Unternehmens zugreifen, da die neue Priorität der Regel dazu führt, dass sie nie ausgewertet wird. Für die IP-Adresse 198.51.100.2 des Entwicklers gilt die Regel, durch die allen Nicht-Entwicklern im Bereich 198.51.100.0/24 der Zugriff verweigert wird. Die Regel, die den Zugriff durch die IP-Adresse des Entwicklers erlaubt, hat eine niedrigere Priorität.

Wenn Sie dieses Problem beheben möchten, müssen Sie die Priorität der Regel, die den Zugriff von 198.51.100.2 aus erlaubt, höher einstellen als die Priorität der Regel, die den Zugriff vom IP-Bereich 198.51.100.0/24 aus verhindert.

Nächste Schritte

Informationen zur sicheren Konfiguration einer Anwendung und zur Festlegung der erforderlichen Zugriffsebenen finden Sie in den Abschnitten zur Anwendungssicherheit und Zugriffssteuerung.