Beispiele für Sicherheitsrichtlinien

Auf dieser Seite werden Beispielkonfigurationen für Sicherheitsrichtlinien für verschiedene Arten von Load-Balancern und Sicherheitsrichtlinien beschrieben.

Sicherheitsrichtlinien für externe Application Load Balancer konfigurieren

Im Folgenden finden Sie die allgemeinen Schritte zum Konfigurieren von Google Cloud Armor-Sicherheitsrichtlinien, um Regeln zu aktivieren, die Traffic zum globalen externen oder zum klassischen Application Load Balancer zulassen oder ablehnen:

  1. Erstellen Sie eine Google Cloud Armor-Sicherheitsrichtlinie.
  2. Fügen Sie der Sicherheitsrichtlinie Regeln basierend auf IP-Adresslisten, benutzerdefinierten Ausdrücken oder vordefinierten Ausdruckssätzen hinzu.
  3. Verknüpfen Sie die Sicherheitsrichtlinie mit einem Back-End-Dienst des globalen externen Application Load Balancers oder dem klassischen Application Load Balancer, für den Sie den Zugriff steuern möchten.
  4. Aktualisieren Sie die Sicherheitsrichtlinie nach Bedarf.

Im folgenden Beispiel erstellen Sie zwei Google Cloud Armor-Sicherheitsrichtlinien und wenden sie auf verschiedene Back-End-Dienste an.

Beispiel, in dem zwei Sicherheitsrichtlinien auf verschiedene Back-End-Dienste angewendet werden.
Beispiel, in dem zwei Sicherheitsrichtlinien auf verschiedene Back-End-Dienste angewendet werden (zum Vergrößern klicken)

In diesem Beispiel sind dies die Google Cloud Armor-Sicherheitsrichtlinien:

  • mobile-clients-policy gilt für externe Nutzer Ihrer games Dienste.
  • internal-users-policy gilt für das test-network-Team Ihrer Organisation.

Sie wenden mobile-clients-policy auf den games-Dienst an, dessen Back-End-Dienst games heißt, und Sie wenden internal-users-policy auf den internen test-Dienst für das Testteam an, dessen entsprechender Back-End-Dienst test-network heißt.

Wenn sich die Back-End-Instanzen für einen Back-End-Dienst in mehreren Regionen befinden, gilt die mit dem Dienst verknüpfte Google Cloud Armor-Sicherheitsrichtlinie für Instanzen in allen Regionen. Im obigen Beispiel gilt die Sicherheitsrichtlinie mobile-clients-policy für die Instanzen 1, 2, 3 und 4 in us-central und für die Instanzen 5 und 6 in us-east.

Beispiel erstellen

Erstellen Sie anhand der folgenden Anleitung die Beispielkonfiguration aus dem vorherigen Abschnitt.

Console

Konfigurieren Sie die Sicherheitsrichtlinie für externe Nutzer:

  1. Rufen Sie in der Google Cloud Console die Seite Google Cloud Armor-Richtlinien auf.

    Google Cloud Armor-Richtlinien aufrufen

  2. Klicken Sie auf Richtlinien erstellen.

  3. Geben Sie im Feld Name mobile-clients-policy ein.

  4. Geben Sie im Feld Beschreibung den Text Policy for external users ein.

  5. Wählen Sie als Standardregel die Option Ablehnen aus.

  6. Wählen Sie für den Status "Abgelehnt" die Option 404 (Nicht gefunden) aus.

  7. Klicken Sie auf Next step (Nächster Schritt).

So fügen Sie weitere Regeln hinzu:

  1. Klicken Sie auf Regel hinzufügen.
  2. Geben Sie im Feld Beschreibung den Text allow traffic from 192.0.2.0/24 ein.
  3. Wählen Sie als Modus die Option Standardmodus (nur IP-Adressen bzw. -Bereiche) aus.
  4. Geben Sie im Feld Übereinstimmung den Wert 192.0.2.0/24 ein.
  5. Wählen Sie unter Aktion die Option Zulassen aus.
  6. Geben Sie in das Feld für die Priorität den Wert 1000 ein.
  7. Klicken Sie auf Fertig.
  8. Klicken Sie auf Next step (Nächster Schritt).

Wenden Sie die Richtlinie auf Ziele an:

  1. Klicken Sie auf Ziel hinzufügen.
  2. Wählen Sie in der Liste Ziel ein Ziel aus.
  3. Klicken Sie auf Fertig.
  4. Klicken Sie auf Richtlinie erstellen.

Aktivieren Sie optional Google Cloud Armor Adaptive Protection:

  1. Klicken Sie das Kästchen Aktivieren an, um Adaptive Protection zu aktivieren.

Konfigurieren Sie die Sicherheitsrichtlinie für interne Nutzer:

  1. Klicken Sie auf Richtlinien erstellen.
  2. Geben Sie im Feld Name internal-users-policy ein.
  3. Geben Sie im Feld Beschreibung den Text Policy for internal test users ein.
  4. Wählen Sie als Standardregel die Option Ablehnen aus.
  5. Wählen Sie für den Status "Abgelehnt" die Option 502 (Fehlerhaftes Gateway) aus.
  6. Klicken Sie auf Next step (Nächster Schritt).

So fügen Sie weitere Regeln hinzu:

  1. Klicken Sie auf Regel hinzufügen.
  2. Geben Sie im Feld Beschreibung den Text allow traffic from 198.51.100.0/24 ein.
  3. Wählen Sie als Modus die Option Standardmodus (nur IP-Adressen bzw. -Bereiche) aus.
  4. Geben Sie im Feld Übereinstimmung den Wert 198.51.100.0/24 ein.
  5. Wählen Sie unter Aktion die Option Zulassen aus.
  6. Klicken Sie unter Nur Vorschau das Kästchen Aktivieren an.
  7. Geben Sie in das Feld für die Priorität den Wert 1000 ein.
  8. Klicken Sie auf Fertig.
  9. Klicken Sie auf Next step (Nächster Schritt).

Wenden Sie die Richtlinie auf Ziele an:

  1. Klicken Sie auf Ziel hinzufügen.
  2. Wählen Sie in der Liste Ziel ein Ziel aus.
  3. Klicken Sie auf Fertig.
  4. Klicken Sie auf Richtlinie erstellen.

gcloud

  1. Erstellen Sie die Google Cloud Armor-Sicherheitsrichtlinien:

    gcloud compute security-policies create mobile-clients-policy \
        --description "policy for external users"
    
    gcloud compute security-policies create internal-users-policy \
        --description "policy for internal test users"
    
  2. Aktualisieren Sie die Standardregeln in den Sicherheitsrichtlinien, um Traffic abzulehnen:

    gcloud compute security-policies rules update 2147483647 \
        --security-policy mobile-clients-policy \
        --action "deny-404"
    
    gcloud compute security-policies rules update 2147483647 \
        --security-policy internal-users-policy \
        --action "deny-502"
    
  3. Fügen Sie den Sicherheitsrichtlinien Regeln hinzu:

    gcloud compute security-policies rules create 1000 \
        --security-policy mobile-clients-policy \
        --description "allow traffic from 192.0.2.0/24" \
        --src-ip-ranges "192.0.2.0/24" \
        --action "allow"
    
    gcloud compute security-policies rules create 1000 \
        --security-policy internal-users-policy \
        --description "allow traffic from 198.51.100.0/24" \
        --src-ip-ranges "198.51.100.0/24" \
        --action "allow"
    
  4. Hängen Sie die Sicherheitsrichtlinien an die Back-End-Dienste an:

    gcloud compute backend-services update games \
        --security-policy mobile-clients-policy
    
    gcloud compute backend-services update test-network \
        --security-policy internal-users-policy
    
  5. Aktivieren Sie optional Adaptive Protection:

    gcloud compute security-policies update mobile-clients-policy \
        --enable-layer7-ddos-defense
    
    gcloud compute security-policies update internal-users-policy \
        --enable-layer7-ddos-defense
    

Sicherheitsrichtlinien erstellen

Sie können die Google Cloud Console oder die gcloud CLI verwenden, um Sicherheitsrichtlinien zu erstellen. Bei den Anleitungen in diesem Abschnitt wird davon ausgegangen, dass Sie Sicherheitsrichtlinien so konfigurieren, dass sie auf einen vorhandenen globalen externen Application Load Balancer oder einen klassischen Application Load Balancer und Back-End-Dienst angewendet werden. Ein Beispiel für das Ausfüllen der Felder finden Sie unter Beispiel erstellen.

Console

Erstellen Sie Google Cloud Armor-Sicherheitsrichtlinien und -regeln und hängen Sie eine Sicherheitsrichtlinie an einen Backend-Dienst an:

  1. Rufen Sie in der Google Cloud Console die Seite Google Cloud Armor-Richtlinien auf.

    Google Cloud Armor-Richtlinien aufrufen

  2. Klicken Sie auf Richtlinien erstellen.

  3. Geben Sie im Feld Name den Namen Ihrer Richtlinie ein.

  4. Optional: Geben Sie eine Beschreibung der Richtlinie ein.

  5. Wählen Sie als Richtlinientyp Backend-Sicherheitsrichtlinie oder Edge-Sicherheitsrichtlinie aus.

  6. Wählen Sie als Aktion der Standardregel Zulassen für eine Standardregel aus, die den Zugriff erlaubt, oder Ablehnen für eine Standardregel, die den Zugriff auf eine IP-Adresse oder einen IP-Adressbereich ablehnt.

    Die Standardregel ist die Regel mit der niedrigsten Priorität, die nur dann wirksam wird, wenn keine andere Regel zutrifft.

  7. Wenn Sie eine Ablehnungsregel konfigurieren, wählen Sie Status "Abgelehnt" aus. Dies ist die Fehlermeldung, die Google Cloud Armor anzeigt, wenn ein Nutzer ohne Zugang versucht, Zugriff zu erhalten.

  8. Klicken Sie unabhängig von der Art der Regel, die Sie konfigurieren, auf Nächster Schritt.

So fügen Sie weitere Regeln hinzu:

  1. Klicken Sie auf Regel hinzufügen.
  2. Optional: Geben Sie eine Beschreibung für die Regel ein.
  3. Wählen Sie den Modus aus:

    • Basis-Modus: Zulassen oder Ablehnen von Traffic basierend auf IP-Adressen oder -Bereichen.
    • Erweiterter Modus: Zulassen oder Ablehnen von Traffic basierend auf Regelausdrücken.
  4. Geben Sie im Feld Abgleich die Bedingungen an, unter denen die Regel angewendet wird.

    • Basis-Modus: Geben Sie die IP-Adressen oder -Bereiche ein, die in der Regel übereinstimmen sollen.
    • Erweiterter Modus: Geben Sie einen Ausdruck oder Unterausdrücke ein, um sie anhand eingehender Anfragen auszuwerten. Informationen zum Schreiben der Ausdrücke finden Sie unter Benutzerdefinierte Sprachattribute für Regeln konfigurieren.
  5. Wählen Sie als Aktion Zulassen oder Ablehnen aus, um Traffic zuzulassen oder abzulehnen, wenn die Regel übereinstimmt.

  6. Klicken Sie das Kästchen Aktivieren an, um den Vorschaumodus zu aktivieren. Im Vorschaumodus können Sie sehen, wie sich die Regel verhält. Sie ist jedoch nicht aktiviert.

  7. Geben Sie die Priorität der Regel ein. Dies kann eine beliebige positive Ganzzahl von 0 bis 2.147.483.646 sein. Weitere Informationen zur Auswertungsreihenfolge finden Sie unter Regelauswertungsreihenfolge.

  8. Klicken Sie auf Fertig.

  9. Wenn Sie weitere Regeln hinzufügen möchten, klicken Sie auf Regel hinzufügen und wiederholen Sie die vorherigen Schritte. Klicken Sie andernfalls auf Nächster Schritt.

Wenden Sie die Richtlinie auf Ziele an:

  1. Klicken Sie auf Ziel hinzufügen.
  2. Wählen Sie in der Liste Ziel ein Ziel aus.
  3. Wenn Sie weitere Ziele hinzufügen möchten, klicken Sie auf Ziel hinzufügen.
  4. Klicken Sie auf Fertig.
  5. Klicken Sie auf Richtlinie erstellen.

gcloud

  1. Verwenden Sie den Befehl gcloud compute security-policies create, um eine neue Google Cloud Armor-Sicherheitsrichtlinie zu erstellen.

    Verwenden Sie im Feld type CLOUD_ARMOR, um eine Back-End-Sicherheitsrichtlinie zu erstellen, oder CLOUD_ARMOR_EDGE, um eine Edge-Sicherheitsrichtlinie zu erstellen. Das Flag type ist optional. Wenn kein Typ angegeben ist, wird standardmäßig eine Back-End-Sicherheitsrichtlinie erstellt:

    gcloud compute security-policies create NAME \
       [--type=CLOUD_ARMOR|CLOUD_ARMOR_EDGE] \
       [--file-format=FILE_FORMAT | --description=DESCRIPTION] \
       [--file-name=FILE_NAME]
    
    

    Ersetzen Sie Folgendes:

    • NAME: der Name der Sicherheitsrichtlinie
    • DESCRIPTION: die Beschreibung der Sicherheitsrichtlinie

    Mit dem folgenden Befehl wird eine zuvor erstellte Richtlinie aktualisiert, das JSON-Parsen aktiviert und die Logging-Ebene in VERBOSE geändert:

    gcloud compute security-policies update my-policy \
        --json-parsing=STANDARD \
        --log-level=VERBOSE
    
  2. Verwenden Sie den Befehl gcloud compute security-policies rules create PRIORITY, um einer Sicherheitsrichtlinie Regeln hinzuzufügen.

    gcloud compute security-policies rules create PRIORITY  \
        [--security-policy POLICY_NAME] \
        [--description DESCRIPTION] \
        --src-ip-ranges IP_RANGE,... | --expression EXPRESSION \
        --action=[ allow | deny-403 | deny-404 | deny-502 ] \
        [--preview]
    

    Ersetzen Sie PRIORITY durch die Priorität, die der Regel in der Richtlinie zugewiesen ist. Informationen zur Funktionsweise der Regelpriorität finden Sie unter Regelauswertungsreihenfolge.

    Mit dem folgenden Befehl wird beispielsweise eine Regel hinzugefügt, die Traffic aus den IP-Adressbereichen 192.0.2.0/24 und 198.51.100.0/24 blockiert. Die Regel hat die Priorität 1.000 und ist eine Regel in der Richtlinie my-policy.

    gcloud compute security-policies rules create 1000 \
        --security-policy my-policy \
        --description "block traffic from 192.0.2.0/24 and 198.51.100.0/24" \
        --src-ip-ranges "192.0.2.0/24","198.51.100.0/24" \
        --action "deny-403"
    

    Wenn das Flag --preview hinzugefügt wird, wird die Regel der Richtlinie hinzugefügt, aber nicht erzwungen. Traffic, der die Regel auslöst, wird nur protokolliert.

    gcloud compute security-policies rules create 1000 \
        --security-policy my-policy \
        --description "block traffic from 192.0.2.0/24 and 198.51.100.0/24" \
        --src-ip-ranges "192.0.2.0/24","198.51.100.0/24" \
        --action "deny-403" \
        --preview
    

    Verwenden Sie das Flag --expression, um eine benutzerdefinierte Bedingung anzugeben. Weitere Informationen finden Sie unter Sprachattribute für benutzerdefinierte Regeln konfigurieren. Der folgende Befehl fügt eine Regel hinzu, die Traffic von der IP-Adresse 1.2.3.4 zulässt, und enthält den String example im user-agent-Header:

    gcloud beta compute security-policies rules create 1000 \
        --security-policy my-policy \
        --expression "inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')" \
        --action allow \
        --description "Block User-Agent 'example'"
    

    Der folgende Befehl fügt eine Regel zum Blockieren von Anfragen hinzu, wenn das Cookie der Anfrage einen bestimmten Wert enthält:

    gcloud compute security-policies rules create 1000 \
        --security-policy my-policy \
        --expression "has(request.headers['cookie']) && request.headers['cookie'].contains('cookie_name=cookie_value')" \
        --action "deny-403" \
        --description "Cookie Block"
    

    Der folgende Befehl fügt eine Regel hinzu, um Anfragen aus der Region AU zu blockieren:

    gcloud compute security-policies rules create 1000 \
        --security-policy my-policy \
        --expression "origin.region_code == 'AU'" \
        --action "deny-403" \
        --description "AU block"
    

    Der folgende Befehl fügt eine Regel hinzu, um Anfragen aus der Region AU zu blockieren, die nicht im angegebenen IP-Bereich liegen:

    gcloud compute security-policies rules create 1000 \
        --security-policy my-policy \
        --expression "origin.region_code == 'AU' && !inIpRange(origin.ip, '1.2.3.0/24')" \
        --action "deny-403" \
        --description "country and IP block"
    

    Der folgende Befehl fügt eine Regel hinzu, um Anfragen mit einem URI zu blockieren, der einem regulären Ausdruck entspricht:

    gcloud compute security-policies rules create 1000 \
        --security-policy my-policy \
        --expression "request.path.matches('/bad_path/')" \
        --action "deny-403" \
        --description "regex block"
    

    Der folgende Befehl fügt eine Regel zum Blockieren von Anfragen hinzu, wenn der Base64-decodierte Wert des Headers user-id einen bestimmten Wert enthält:

    gcloud compute security-policies rules create 1000 \
        --security-policy my-policy \
        --expression "has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')" \
        --action "deny-403" \
        --description "country and IP block"
    

    Der folgende Befehl fügt eine Regel hinzu, die einen vorkonfigurierten Ausdruck verwendet, um SQLi-Angriffe abzuwenden:

    gcloud compute security-policies rules create 1000 \
        --security-policy my-policy \
        --expression "evaluatePreconfiguredExpr('sqli-stable')" \
        --action "deny-403"
    

    Der folgende Befehl fügt eine Regel hinzu, die einen vorkonfigurierten Ausdruck verwendet, um den Zugriff von allen IP-Adressen in einer Liste mit benannten IP-Adressen zuzulassen:

    gcloud compute security-policies rules create 1000 \
        --security-policy my-policy \
        --expression "evaluatePreconfiguredExpr('sourceiplist-fastly')" \
        --action "allow"
    

Sicherheitsrichtlinien für regionale externe Application Load Balancer konfigurieren

Dieser Abschnitt enthält Informationen zum Konfigurieren regionaler Google Cloud Armor-Sicherheitsrichtlinien für regionale externe Application Load Balancer.

Arbeitslasten mit regionalem Load-Balancing schützen

Führen Sie die folgenden Schritte aus, um eine Sicherheitsrichtlinie zum Schutz Ihres regional beschränkten Back-End-Dienstes zu konfigurieren:

  1. Erstellen Sie eine regionale Sicherheitsrichtlinie.

    gcloud beta compute security-policies create POLICY_NAME \
       --type=CLOUD_ARMOR \
       --region=REGION
    
  2. Hängen Sie die regional beschränkte Sicherheitsrichtlinie an einen regional beschränkten Back-End-Dienst an. Ersetzen Sie BACKEND_NAME durch den Namen Ihres vorhandenen regional beschränkten Back-End-Dienstes.

    gcloud beta compute backend-services update BACKEND_NAME \
       --security-policy=POLICY_NAME \
       --region=REGION
    

Google Cloud Armor-Sicherheitsrichtlinie mit regionalem Geltungsbereich anwenden

Nehmen wir ein Beispiel, in dem Sie ein Sicherheitsadministrator sind, der eine Standortanforderung erfüllen möchte, dass alle Ihre Back-End-Arbeitslasten und WAF-Regeln in einer bestimmten Region bereitgestellt werden. Gehen Sie davon aus, dass Sie zuvor Folgendes getan haben:

  1. Sie haben regionale Back-End-Dienste mit Load-Balancing in der Region erstellt.
  2. Sie haben alle vorhandenen globalen Sicherheitsrichtlinien in Ihrer Bereitstellung deaktiviert.
  3. Sie haben eine regional beschränkte Sicherheitsrichtlinie in derselben Region erstellt und angehängt (wie im vorherigen Abschnitt beschrieben).

Mit den folgenden Beispielbefehlen können Sie WAF-Regeln und andere erweiterte Regeln zu Ihrer Richtlinie hinzufügen und gleichzeitig die Anforderung erfüllen:

  • Fügen Sie der Richtlinie eine WAF-Regel hinzu:

    gcloud beta compute security-policies rules create 1000 --action=deny-404 \
      --expression="evaluatePreconfiguredExpr('xss-v33-stable', ['owasp-crs-v030301-id941100-xss', 'owasp-crs-v030301-id941160-xss'])" \
      --security-policy=POLICY_NAME \
      --region=REGION
    
  • Fügen Sie der Richtlinie eine erweiterte Regel hinzu:

    gcloud beta compute security-policies rules create 1000 --action=allow \
      --expression="has(request.headers['cookie']) && request.headers['cookie'].contains('80=EXAMPLE')" \
      --security-policy=POLICY_NAME \
      --region=REGION
    
  • Fügen Sie der Richtlinie eine Regel zur Ratenbegrenzung hinzu:

    gcloud beta compute security-policies rules create 1000 --action=throttle \
      --src-ip-ranges="1.1.1.1/32" \
      --rate-limit-threshold-count=1000 \
      --rate-limit-threshold-interval-sec=120 \
      --conform-action="allow" \
      --exceed-action="deny-429" \
      --enforce-on-key=IP \
      --ban-duration-sec=999 \
      --ban-threshold-count=5000 \
      --ban-threshold-interval-sec=60 \
      --security-policy=POLICY_NAME \
      --region=REGION
    

Nächste Schritte