Google Cloud Armor-Sicherheitsrichtlinien konfigurieren

Verwenden Sie diese Anweisungen, um Google Cloud Armor-Sicherheitsrichtlinien zu erstellen, um eingehenden Traffic zu filtern, der für globale externe HTTP(S)-Load-Balancer oder globale externe HTTP(S)-Load-Balancer (klassisch) bestimmt ist. Konzeptionelle Informationen zu Sicherheitsrichtlinien finden Sie in der Google Cloud Armor-Sicherheitsrichtlinie.

Informationen zum Konfigurieren von Google Cloud Armor in Google Kubernetes Engine (GKE) finden Sie unter Google Cloud Armor-Sicherheitsrichtlinie im Abschnitt Ingress-Features über BackendConfig-Parameter konfigurieren.

Hinweis

Führen Sie vor dem Konfigurieren von Sicherheitsrichtlinien folgende Schritte aus:

  • Machen Sie sich mit Konzepten des externen HTTP(S)-Load-Balancers vertraut.

  • Prüfen Sie Ihre vorhandenen Back-End-Dienste, um festzustellen, ob jeweils eine Sicherheitsrichtlinie angehängt ist. Back-End-Dienste ohne Sicherheitsrichtlinie und die zugehörigen Back-Ends sind nicht durch Google Cloud Armor geschützt. Um den von Google Cloud Armor bereitgestellten Schutz hinzuzufügen, folgen Sie der Anleitung in diesem Dokument, um eine neu erstellte oder vorhandene Sicherheitsrichtlinie an den Back-End-Dienst anzuhängen.

IAM-Berechtigungen für Google Cloud Armor-Sicherheitsrichtlinien einrichten

Für die folgenden Vorgänge ist die IAM-Rolle „Compute-Sicherheitsadministrator“ (roles/compute.securityAdmin) für Identity and Access Management (IAM) erforderlich:

  • Google Cloud Armor-Sicherheitsrichtlinie konfigurieren, ändern, aktualisieren und löschen
  • Verwenden Sie die folgenden API-Methoden:
    • SecurityPolicies insert
    • SecurityPolicies delete
    • SecurityPolicies patch
    • SecurityPolicies addRule
    • SecurityPolicies patchRule
    • SecurityPolicies removeRule

Ein Nutzer mit der Rolle „Compute-Netzwerkadministrator“ (roles/compute.networkAdmin) kann die folgenden Vorgänge ausführen:

  • Google Cloud Armor-Sicherheitsrichtlinie für einen Back-End-Dienst festlegen
  • Verwenden Sie die folgenden API-Methoden:
    • BackendServices setSecurityPolicy
    • BackendServices list (nur gcloud)

Nutzer mit den Rollen „Sicherheitsadministrator“ und „Netzwerkadministrator“ können die Google Cloud Armor-Sicherheitsrichtlinien mit den SecurityPolicies-API-Methoden get, list und getRule ansehen.

IAM-Berechtigungen für benutzerdefinierte Rollen einrichten

In der folgenden Tabelle sind die grundlegenden Berechtigungen der IAM-Rollen und die zugehörigen API-Methoden aufgeführt.

IAM-Berechtigung API-Methoden
compute.securityPolicies.create SecurityPolicies insert
compute.securityPolicies.delete SecurityPolicies delete
compute.securityPolicies.get SecurityPolicies get
SecurityPolicies getRule
compute.securityPolicies.list SecurityPolicies list
compute.securityPolicies.use BackendServices setSecurityPolicy
compute.securityPolicies.update SecurityPolicies patch
SecurityPolicies addRule
SecurityPolicies patchRule
SecurityPolicies removeRule
compute.backendServices.setSecurityPolicy BackendServices setSecurityPolicy

Sicherheitsrichtlinien für externe HTTP(S)-Load-Balancer konfigurieren

Im Folgenden werden die allgemeinen Schritte zum Konfigurieren der Google Cloud Armor-Sicherheitsrichtlinien beschrieben, die Regeln ermöglichen, die Traffic an den globalen externen HTTP(S)-Load-Balancer oder den globalen externen HTTP(S)-Load-Balancer (klassisch) 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. Hängen Sie die Sicherheitsrichtlinie an einen Back-End-Dienst des globalen externen HTTP(S)-Load-Balancers oder des globalen externen HTTP(S)-Load-Balancers (klassisch) an, 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.

Grafik: Beispiel, in dem zwei Sicherheitsrichtlinien auf verschiedene Back-End-Dienste angewendet werden.
Beispiel, bei 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-networkheißt.

Befinden sich die Back-End-Instanzen für einen Back-End-Dienst in mehreren Regionen, 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 Netzwerksicherheit auf.

    Netzwerksicherheit aufrufen

  2. Klicken Sie auf der Seite Richtlinien auf Richtlinie 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 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 der Seite Richtlinien auf Richtlinie 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, Regeln und Ausdrücke konfigurieren

Sie können Sicherheitsrichtlinien, Regeln und Ausdrücke für Google Cloud Armor mithilfe der Google Cloud Console, des Google Cloud CLI oder der REST API konfigurieren. Wenn Sie mit dem gcloud CLI Sicherheitsrichtlinien erstellen, geben Sie mit dem Flag --type an, ob die Sicherheitsrichtlinie eine Back-End-Sicherheitsrichtlinie oder eine Edge-Sicherheitsrichtlinie ist.

Sicherheitsrichtlinien testen

Es wird empfohlen, alle neuen Regeln im Vorschaumodus bereitzustellen. Prüfen Sie dann mithilfe der Anfragelogs, ob die Richtlinien und Regeln wie erwartet funktionieren.

Beispielausdrücke

Im Folgenden finden Sie Beispielausdrücke. Weitere Informationen zu Ausdrücken finden Sie in der Referenz zu benutzerdefinierten Regeln für Google Cloud Armor.

Wenn Sie eine Regel oder einen Ausdruck konfigurieren, die bzw. der die Länder- oder Regionscodes im Format ISO 3166-1 alpha 2 verwendet, behandelt Google Cloud Armor jeden Code unabhängig. Die Regeln und Ausdrücke von Google Cloud Armor verwenden diese Regionscodes explizit, um Anfragen zuzulassen oder abzulehnen.

  • Der folgende Ausdruck stimmt mit Anfragen von der IP-Adresse 1.2.3.4 überein und enthält den String Godzilla im user-agent-Header:

    inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('Godzilla')
    
  • Der folgende Ausdruck stimmt mit Anfragen überein, die ein Cookie mit einem bestimmten Wert enthalten:

    has(request.headers['cookie']) && request.headers['cookie'].contains('cookie_name=cookie_value')
    
  • Der folgende Ausdruck stimmt mit Anfragen aus der Region AU überein:

    origin.region_code == 'AU'
    
  • Der folgende Ausdruck stimmt mit Anfragen aus der Region AU überein, die nicht im angegebenen IP-Bereich liegen:

    origin.region_code == "AU" && !inIpRange(origin.ip, '1.2.3.0/24')
    
  • Der folgende Ausdruck stimmt mit Anfragen mit einem nummerierten Variablenpfad zu einer bestimmten Datei überein, falls der URI mit einem regulären Ausdruck übereinstimmt:

    request.path.matches('/path/[0-9]+/target_file.html')
    
  • Der folgende Ausdruck stimmt mit Anfragen überein, wenn der Base64-decodierte Wert des user-id-Headers einen bestimmten Wert enthält:

    has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')
    
  • Der folgende Ausdruck verwendet einen vorkonfigurierten Ausdruckssatzabgleich gegen SQLi-Angriffe:

    evaluatePreconfiguredExpr('sqli-stable')
    

JSON-Parsing verwenden

Sie können das Parsen des JSON-Textinhalts von POST-Anfragen für jede Sicherheitsrichtlinie aktivieren oder deaktivieren. Wenn der Header Content-Type auf application/json gesetzt ist, verwenden Sie das Flag --json-parsing im Google Cloud CLI.

Diese Option ist standardmäßig deaktiviert. Die Syntax für das Flag lautet:

--json-parsing=[STANDARD | DISABLED]

Das Flag ist nur mit gcloud compute security-policies update verfügbar. Mit dieser Option können Sie keine neue Sicherheitsrichtlinie erstellen, es sei denn, Sie erstellen eine Sicherheitsrichtlinie in einer Datei und importieren diese Datei dann. Weitere Informationen finden Sie unter Sicherheitsrichtlinien importieren.

Weitere Informationen zum JSON-Parsing finden Sie unter JSON-Parsing und ausführliches Logging.

Ausführliches Logging verwenden

Sie können die Logging-Ebene von Google Cloud Armor so konfigurieren, dass für jede Sicherheitsrichtlinie mit dem Flag --log-level im gcloud CLI ein detaillierteres Logging möglich ist.

Diese Option ist standardmäßig deaktiviert. Die Syntax für das Flag lautet:

--log-level=[NORMAL | VERBOSE]

Das Flag ist nur mit gcloud compute security-policies update verfügbar. Mit dieser Option können Sie keine neue Sicherheitsrichtlinie erstellen, es sei denn, Sie erstellen eine Sicherheitsrichtlinie in einer Datei und importieren diese Datei dann. Weitere Informationen finden Sie unter Sicherheitsrichtlinien importieren.

Weitere Informationen zum ausführlichen Logging finden Sie unter JSON-Parsing und ausführliches Logging.

Regeln für die Ratenbegrenzung konfigurieren

Dieser Abschnitt enthält Informationen zum Konfigurieren von Google Cloud Armor-Regeln, um clientspezifische Ratenbegrenzungen durch Konfigurieren einer Drosselungs- oder ratenbasierten Sperraktion zu erzwingen.

Regeln für ratenbasierte Drosselung

Regeln für die ratenbasierte Drosselung haben das folgende Format in der gcloud CLI:

gcloud compute security-policies rules create PRIORITY
   --security-policy=SECURITY_POLICY
   (--expression=EXPRESSION | --src-ip-ranges=SRC_IP_RANGE)
   --action "throttle"
   --rate-limit-threshold-count=RATE_LIMIT_THRESHOLD_COUNT
   --rate-limit-threshold-interval-sec=RATE_LIMIT_THRESHOLD_INTERVAL_SEC
   --conform-action=[allow]
   --exceed-action=[deny-403|deny-404|deny-429|deny-502|redirect]
   --exceed-redirect-type=[google-recaptcha|external-302]
   --exceed-redirect-target=REDIRECT_URL
   --enforce-on-key=[IP | ALL | HTTP-HEADER | XFF-IP | HTTP-COOKIE]
   --enforce-on-key-name=[HTTP_HEADER_NAME|HTTP_COOKIE_NAME]

Mit dem folgenden gcloud-Befehl wird beispielsweise eine throttle-Regel mit der Priorität 105 und einer Ratenbegrenzung von 100 Anfragen pro 60 Sekunden für jede IP-Adresse in 1.2.3.0/24 erstellt. Anfragen, die das Drosselungslimit überschreiten, geben den Fehlercode 429 zurück.

gcloud compute security-policies rules create 105 \
    --security-policy sec-policy     \
    --src-ip-ranges="1.2.3.0/24"     \
    --action=throttle                \
    --rate-limit-threshold-count=100 \
    --rate-limit-threshold-interval-sec=60 \
    --conform-action=allow           \
    --exceed-action=deny-429         \
    --enforce-on-key=IP

Beispiel: gcloud erstellt eine throttle-Regel mit Priorität 110 und einer Ratenbegrenzung von 10 Anfragen pro 60 Sekunden für jeden eindeutigen Wert des HTTP-Headers User-Agent für alle Anfragen, die von IP-Adressen in 1.2.3.0/24 stammen. Anfragen, die das Drosselungslimit überschreiten, geben den Fehlercode 429 zurück.

gcloud compute security-policies rules create 110 \
    --security-policy sec-policy     \
    --src-ip-ranges="1.2.3.0/24"     \
    --action=throttle                \
    --rate-limit-threshold-count=10 \
    --rate-limit-threshold-interval-sec=60 \
    --conform-action=allow           \
    --exceed-action=deny-429         \
    --enforce-on-key=HTTP-HEADER \
    --enforce-on-key-name='User-Agent'

Sie können auch ratenbasierte Sperrungen für Nutzer ausgeben, die ein gültiges reCAPTCHA-Ausnahme-Cookie haben. Der folgende gcloud-Befehl erstellt beispielsweise eine throttle-Regel mit der Priorität 115 und einem Ratenlimit von 20 Anfragen pro 5 Minuten für jedes einzelne reCAPTCHA-Ausnahme-Cookie für alle Anfragen, die ein gültiges reCAPTCHA-Ausnahme-Cookie haben. Anfragen, die das Drossellimit überschreiten, werden zur reCAPTCHA Enterprise-Bewertung weitergeleitet. Weitere Informationen zu Ausnahme-Cookies und der reCAPTCHA Enterprise-Bewertung finden Sie in der Übersicht über die Bot-Verwaltung.

gcloud compute security-policies rules create 115 \
    --security-policy sec-policy     \
    --expression="token.recaptcha_exemption.valid"     \
    --action=throttle                \
    --rate-limit-threshold-count=20 \
    --rate-limit-threshold-interval-sec=300 \
    --conform-action=allow           \
    --exceed-action=redirect         \
    --exceed-redirect-type=google-recaptcha         \
    --enforce-on-key=HTTP-COOKIE         \
    --enforce-on-key-name="recaptcha-ca-e"

Regeln für ratenbasierte Sperren

Regeln für ratenbasierte Sperren haben in der gcloud CLI folgendes Format:

gcloud compute security-policies rules create PRIORITY \
     --security-policy=SECURITY_POLICY \
     (--expression=EXPRESSION | --src-ip-ranges=SRC_IP_RANGE) \
     --action "rate-based-ban" \
     --rate-limit-threshold-count=RATE_LIMIT_THRESHOLD_COUNT \
     --rate-limit-threshold-interval-sec=RATE_LIMIT_THRESHOLD_INTERVAL_SEC \
     --ban-duration-sec=BAN_DURATION_SEC \
     --ban-threshold-count=BAN_THRESHOLD_COUNT \
     --ban-threshold-interval-sec=BAN_THRESHOLD_INTERVAL_SEC \
     --conform-action=[allow] \
     --exceed-action=[deny-403|deny-404|deny-429|deny-502|redirect]
     --exceed-redirect-type=[google-recaptcha|external-302]
     --exceed-redirect-target=REDIRECT_URL
     --enforce-on-key=[IP | ALL | HTTP-HEADER | XFF-IP | HTTP-COOKIE]
     --enforce-on-key-name=[HTTP_HEADER_NAME|HTTP_COOKIE_NAME]

Der folgende gcloud-Befehl erstellt beispielsweise eine ratenbasierte Sperrregel mit der Priorität 100 für jede IP-Adresse, deren Anfragen einem fish-Header mit dem Wert tuna entsprechen, und sperrt sie für 300 Sekunden, wenn ihre Rate ein Limit von 50 Anfragen pro 120 Sekunden überschreitet. Gesperrte Anfragen geben den Fehlercode 404 zurück.

gcloud compute security-policies rules create 100 \
    --security-policy=sec-policy     \
    --expression="request.headers['fish'] == 'tuna'" \
    --action=rate-based-ban                   \
    --rate-limit-threshold-count=50           \
    --rate-limit-threshold-interval-sec=120   \
    --ban-duration-sec=300           \
    --conform-action=allow           \
    --exceed-action=deny-404         \
    --enforce-on-key=IP

Der folgende gcloud-Befehl erstellt beispielsweise eine ratenbasierte Sperrregel mit der Priorität 101, um alle Anfragen mit dem Regionscode US auf 10 Anfragen pro 60 Sekunden zu begrenzen. Die Regel sperrt außerdem Anfragen aus der Region US für 300 Sekunden, wenn ihre Rate ein Limit von 1.000 Anfragen pro 600 Sekunden überschreitet. Gesperrte Anfragen geben den Fehlercode 403 zurück.

 gcloud compute security-policies rules create 101 \
    --security-policy sec-policy     \
    --expression "origin.region_code == 'US'" \
    --action rate-based-ban                 \
    --rate-limit-threshold-count 10         \
    --rate-limit-threshold-interval-sec 60  \
    --ban-duration-sec 300           \
    --ban-threshold-count 1000       \
    --ban-threshold-interval-sec 600 \
    --conform-action allow           \
    --exceed-action deny-403         \
    --enforce-on-key ALL

Der folgende gcloud-Befehl erstellt beispielsweise eine ratenbasierte Sperrregel mit der Priorität 102, um alle Anfragen aus einem Quell-IP-Adressbereich auf 20 Anfragen pro 60 Sekunden zu beschränken. Die Regel untersagt auch Anfragen aus jedem Quell-IP-Adressbereich 600 Sekunden lang, wenn ihre Rate ein Limit von 500 Anfragen pro 300 Sekunden überschreitet. Gesperrte Anfragen geben den Fehlercode 429 zurück.

 gcloud compute security-policies rules create 102 \
    --security-policy sec-policy     \
    --src-ip-ranges="*" \
    --action rate-based-ban                 \
    --rate-limit-threshold-count 20         \
    --rate-limit-threshold-interval-sec 60  \
    --ban-duration-sec 600           \
    --ban-threshold-count 500       \
    --ban-threshold-interval-sec 300 \
    --conform-action allow           \
    --exceed-action deny-429         \
    --enforce-on-key ALL

Mit der Google Cloud Console und der gcloud-CLI Sicherheitsrichtlinien erstellen

Bei den Anleitungen in diesem Abschnitt wird davon ausgegangen, dass Sie Sicherheitsrichtlinien konfigurieren, die auf einen vorhandenen globalen externen HTTP(S)-Load-Balancer oder einen globalen externen HTTP(S)-Load-Balancer (klassisch) und einen Back-End-Dienst angewendet werden sollen. Ein Beispiel zum 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 Back-End-Dienst an:

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit auf.

    Netzwerksicherheit aufrufen

  2. Klicken Sie auf der Seite Richtlinien auf Richtlinie 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 Back-End-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 in der Sprachreferenz für benutzerdefinierte Regeln.
  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. Eine neue Google Cloud Armor-Sicherheitsrichtlinie erstellen Sie mit dem Befehl gcloud compute security-policies create. Ersetzen Sie NAME und DESCRIPTION durch den Namen und die Beschreibung der Sicherheitsrichtlinie. Verwenden Sie im Feld type den Wert CLOUD_ARMOR, um eine Back-End-Sicherheitsrichtlinie zu erstellen, oder CLOUD_ARMOR_EDGE, um eine Edge-Sicherheitsrichtlinie zu erstellen. Das Flag type ist kein erforderliches Flag. 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]
    
    

    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. Ersetzen Sie PRIORITY durch die der Regel in der Richtlinie zugewiesene Priorität. Informationen zur Funktionsweise der Regelpriorität finden Sie unter Regelauswertungsreihenfolge.

    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]
    

    Der folgende Befehl fügt beispielsweise eine Regel hinzu, mit der Traffic von den IP-Adressbereichen 192.0.2.0/24 und 198.51.100.0/24 blockiert wird. 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 zur Richtlinie hinzugefügt, aber nicht erzwungen, und der Traffic, der die Regel auslöst, wird nur in Logs erfasst.

    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 in der Sprachreferenz für benutzerdefinierte Regeln eine benutzerdefinierte Bedingung anzugeben. 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 Godzilla 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('Godzilla')" \
        --action allow \
        --description "Block User-Agent 'Godzilla'"
    

    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"
    

Regeln für die Ratenbegrenzung konfigurieren

Dieser Abschnitt enthält Informationen zum Konfigurieren von Google Cloud Armor-Regeln, um clientspezifische Ratenbegrenzungen durch Konfigurieren einer Drosselungs- oder ratenbasierten Sperraktion zu erzwingen.

Regeln für ratenbasierte Drosselung

Regeln für die ratenbasierte Drosselung haben das folgende Format in der gcloud CLI:

gcloud compute security-policies rules create PRIORITY
   --security-policy=SECURITY_POLICY
   (--expression=EXPRESSION | --src-ip-ranges=SRC_IP_RANGE)
   --action "throttle"
   --rate-limit-threshold-count=RATE_LIMIT_THRESHOLD_COUNT
   --rate-limit-threshold-interval-sec=RATE_LIMIT_THRESHOLD_INTERVAL_SEC
   --conform-action=[allow]
   --exceed-action=[deny-403|deny-404|deny-429|deny-502|redirect]
   --exceed-redirect-type=[google-recaptcha|external-302]
   --exceed-redirect-target=REDIRECT_URL
   --enforce-on-key=[IP | ALL | HTTP-HEADER | XFF-IP | HTTP-COOKIE | HTTP-PATH | SNI | REGION-CODE]
   --enforce-on-key-name=[HTTP_HEADER_NAME|HTTP_COOKIE_NAME]

Ratenbegrenzung für einzelne Schlüssel

Mit dem folgenden gcloud-Befehl wird beispielsweise eine throttle-Regel mit der Priorität 105 und einer Ratenbegrenzung von 100 Anfragen pro 60 Sekunden für jede IP-Adresse in 1.2.3.0/24 erstellt. Anfragen, die das Drosselungslimit überschreiten, geben den Fehlercode 429 zurück.

gcloud compute security-policies rules create 105 \
    --security-policy sec-policy     \
    --src-ip-ranges="1.2.3.0/24"     \
    --action=throttle                \
    --rate-limit-threshold-count=100 \
    --rate-limit-threshold-interval-sec=60 \
    --conform-action=allow           \
    --exceed-action=deny-429         \
    --enforce-on-key=IP

Beispiel: gcloud erstellt eine throttle-Regel mit Priorität 110 und einer Ratenbegrenzung von 10 Anfragen pro 60 Sekunden für jeden eindeutigen Wert des HTTP-Headers User-Agent für alle Anfragen, die von IP-Adressen in 1.2.3.0/24 stammen. Anfragen, die das Drosselungslimit überschreiten, geben den Fehlercode 429 zurück.

gcloud compute security-policies rules create 110 \
    --security-policy sec-policy     \
    --src-ip-ranges="1.2.3.0/24"     \
    --action=throttle                \
    --rate-limit-threshold-count=10 \
    --rate-limit-threshold-interval-sec=60 \
    --conform-action=allow           \
    --exceed-action=deny-429         \
    --enforce-on-key=HTTP-HEADER \
    --enforce-on-key-name='User-Agent'

Außerdem haben Sie die Möglichkeit, preisbasierte Sperren für Nutzer mit einem gültigen reCAPTCHA-Befreiungscookie auszuführen. Der folgende gcloud-Befehl erstellt beispielsweise eine throttle-Regel mit der Priorität 115 und einem Ratenlimit von 20 Anfragen pro 5 Minuten für jedes einzelne reCAPTCHA-Ausnahme-Cookie für alle Anfragen, die ein gültiges reCAPTCHA-Ausnahme-Cookie haben. Anfragen, die das Drossellimit überschreiten, werden zur reCAPTCHA Enterprise-Bewertung weitergeleitet. Weitere Informationen zu Ausnahme-Cookies und der reCAPTCHA Enterprise-Bewertung finden Sie in der Übersicht über die Bot-Verwaltung.

gcloud compute security-policies rules create 115 \
    --security-policy sec-policy     \
    --expression="token.recaptcha_exemption.valid"     \
    --action=throttle                \
    --rate-limit-threshold-count=20 \
    --rate-limit-threshold-interval-sec=300 \
    --conform-action=allow           \
    --exceed-action=redirect         \
    --exceed-redirect-type=google-recaptcha         \
    --enforce-on-key=HTTP-COOKIE         \
    --enforce-on-key-name="recaptcha-ca-e"

Ratenbegrenzung auf Basis mehrerer Schlüssel

Sie können Traffic mit mehreren Ratenbegrenzungsschlüsseln auch mithilfe des Flags enforce-on-key-configs drosseln. Dieses Flag ersetzt das Flag enforce-on-key sowie das Flag enforce-on-key-name. Das Flag enforce-on-key-configs erfordert eine durch Kommas getrennte Liste von KEY=NAME-Paaren, auch wenn Sie für einige Schlüssel keinen Namen angeben müssen.

Im folgenden Beispiel wird eine throttle-Regel für die Richtlinie POLICY_NAME mit der Priorität 105 mit einer Ratenbegrenzung von 100 Anfragen pro 60 Sekunden für jede Kombination aus HTTP-PATH und site_id für alle Anfragen von IP-Adressen in 1.2.3.0/24 erstellt. Bei Anfragen, die das Drosselungslimit überschreiten, wird der Fehlercode 429 zurückgegeben.

gcloud compute security-policies rules create 105
    --security-policy=POLICY_NAME
    --src-ip-ranges="1.2.3.0/24"
    --action=throttle
    --rate-limit-threshold-count=100
    --rate-limit-threshold-interval-sec=60
    --conform-action=allow
    --exceed-action=deny-429
    --enforce-on-key-configs="HTTP-PATH,HTTP-COOKIE=site_id"

Regeln für ratenbasierte Sperren

Regeln für ratenbasierte Sperren haben in der gcloud CLI folgendes Format:

gcloud compute security-policies rules create PRIORITY \
     --security-policy=SECURITY_POLICY \
     (--expression=EXPRESSION | --src-ip-ranges=SRC_IP_RANGE) \
     --action "rate-based-ban" \
     --rate-limit-threshold-count=RATE_LIMIT_THRESHOLD_COUNT \
     --rate-limit-threshold-interval-sec=RATE_LIMIT_THRESHOLD_INTERVAL_SEC \
     --ban-duration-sec=BAN_DURATION_SEC \
     --ban-threshold-count=BAN_THRESHOLD_COUNT \
     --ban-threshold-interval-sec=BAN_THRESHOLD_INTERVAL_SEC \
     --conform-action=[allow] \
     --exceed-action=[deny-403|deny-404|deny-429|deny-502|redirect]
     --exceed-redirect-type=[google-recaptcha|external-302]
     --exceed-redirect-target=REDIRECT_URL
     --enforce-on-key=[IP | ALL | HTTP-HEADER | XFF-IP | HTTP-COOKIE | HTTP-PATH | SNI | REGION-CODE]
     --enforce-on-key-name=[HTTP_HEADER_NAME|HTTP_COOKIE_NAME]

Der folgende gcloud-Befehl erstellt beispielsweise eine ratenbasierte Sperrregel mit der Priorität 100 für jede IP-Adresse, deren Anfragen einem fish-Header mit dem Wert tuna entsprechen, und sperrt sie für 300 Sekunden, wenn ihre Rate ein Limit von 50 Anfragen pro 120 Sekunden überschreitet. Gesperrte Anfragen geben den Fehlercode 404 zurück.

gcloud compute security-policies rules create 100 \
    --security-policy=sec-policy     \
    --expression="request.headers['fish'] == 'tuna'" \
    --action=rate-based-ban                   \
    --rate-limit-threshold-count=50           \
    --rate-limit-threshold-interval-sec=120   \
    --ban-duration-sec=300           \
    --conform-action=allow           \
    --exceed-action=deny-404         \
    --enforce-on-key=IP

Der folgende gcloud-Befehl erstellt beispielsweise eine ratenbasierte Sperrregel mit der Priorität 101, um alle Anfragen mit dem Regionscode US auf 10 Anfragen pro 60 Sekunden zu begrenzen. Die Regel sperrt außerdem Anfragen aus der Region US für 300 Sekunden, wenn ihre Rate ein Limit von 1.000 Anfragen pro 600 Sekunden überschreitet. Gesperrte Anfragen geben den Fehlercode 403 zurück.

 gcloud compute security-policies rules create 101 \
    --security-policy sec-policy     \
    --expression "origin.region_code == 'US'" \
    --action rate-based-ban                 \
    --rate-limit-threshold-count 10         \
    --rate-limit-threshold-interval-sec 60  \
    --ban-duration-sec 300           \
    --ban-threshold-count 1000       \
    --ban-threshold-interval-sec 600 \
    --conform-action allow           \
    --exceed-action deny-403         \
    --enforce-on-key ALL

Der folgende gcloud-Befehl erstellt beispielsweise eine ratenbasierte Sperrregel mit der Priorität 102, um alle Anfragen aus einem Quell-IP-Adressbereich auf 20 Anfragen pro 60 Sekunden zu beschränken. Die Regel sperrt auch Anfragen aus einem beliebigen Quell-IP-Adressbereich für 600 Sekunden, wenn ihre Rate ein Limit von 500 Anfragen pro 400 Sekunden überschreitet. Gesperrte Anfragen geben den Fehlercode 429 zurück.

 gcloud compute security-policies rules create 102 \
    --security-policy sec-policy     \
    --src-ip-ranges="*" \
    --action rate-based-ban                 \
    --rate-limit-threshold-count 20         \
    --rate-limit-threshold-interval-sec 60  \
    --ban-duration-sec 600           \
    --ban-threshold-count 500       \
    --ban-threshold-interval-sec 400 \
    --conform-action allow           \
    --exceed-action deny-429         \
    --enforce-on-key ALL

Regeln für die Bot-Verwaltung konfigurieren

Dieser Abschnitt enthält Informationen zum Konfigurieren der Sicherheitsrichtlinienregeln von Google Cloud Armor für die Bot-Verwaltung. Weitere Informationen finden Sie in der Übersicht über die Bot-Verwaltung.

Manuelle reCAPTCHA-Herausforderungen zur Unterscheidung zwischen menschlichen und automatisierten Clients verwenden

Verwenden Sie den folgenden Befehl, um Ihren eigenen reCAPTCHA WAF-Websiteschlüssel mit einer Sicherheitsrichtlinie zu verknüpfen oder zu trennen, und ersetzen Sie den Namen der Sicherheitsrichtlinie (SECURITY_POLICY) und des reCAPTCHA WAF-Aufgaben-Websiteschlüssel (SITE_KEY) entsprechend.

gcloud compute security-policies update SECURITY_POLICY \
   --recaptcha-redirect-site-key SITE_KEY

Im folgenden Beispiel wird ein reCAPTCHA WAF-Websiteschlüssel einer Sicherheitsrichtlinie zugeordnet. Der zugehörige Websiteschlüssel gilt für alle Regeln, die die manuelle Aufgabe gemäß der angegebenen Sicherheitsrichtlinie verwenden.

gcloud compute security-policies update my-policy \
   --recaptcha-redirect-site-key "SITE_KEY"

Sie können auch die Verknüpfung eines reCAPTCHA-WAF-Websiteschlüssels mit einer Sicherheitsrichtlinie aufheben:

gcloud compute security-policies update my-policy \
   --recaptcha-redirect-site-key ""

Um eine Regel zum internen Weiterleiten von Traffic für die reCAPTCHA Enterprise-Prüfung zu erstellen, verwenden Sie folgendes Format in gcloud:

gcloud compute security-policies rules create PRIORITY \
   --security-policy SECURITY_POLICY \
   (--expression EXPRESSION | --src-ip-ranges SRC_IP_RANGE) \
   --action redirect \
   --redirect-type google-recaptcha

Im folgenden Beispiel wird eine Regel erstellt, die den Traffic weiterleitet, der versucht, /login.html für eine manuelle reCAPTCHA Enterprise-Aufgabe zu erreichen.

gcloud compute security-policies rules create 1000 \
   --security-policy my-policy \
   --expression "request.path.matches(\"/login.html\")" \
   --action redirect \
   --redirect-type google-recaptcha

Reibungslose reCAPTCHA Enterprise-Bewertung erzwingen

Bevor Sie fortfahren, lesen Sie sich in der Übersicht über die Bot-Verwaltung die Voraussetzungen zur Verwendung von reCAPTCHA Enterprise-Aktions- oder Sitzungs-Tokens durch.

Sie können token.recaptcha_action.ATTRIBUTE verwenden (ersetzen Sie ATTRIBUTE durch ein gültiges Tokenattribut in der Regelsprache von Google Cloud Armor), um Attribute aus einem reCAPTCHA Enterprise-Aktionstoken zu extrahieren. Ebenso können Sie token.recaptcha_session.ATTRIBUTE für ein reCAPTCHA Enterprise-Sitzungstoken verwenden. Weitere Informationen zur Syntax der verfügbaren reCAPTCHA Enterprise-Tokenattribute finden Sie in der Sprachreferenz für Regeln.

Im folgenden Beispiel wird eine Regel erstellt, die Traffic für /login.html und mit einem reCAPTCHA Enterprise-Aktionstoken zulässt, dessen Score nicht kleiner als 0.8 ist.

gcloud compute security-policies rules create 1000 \
   --security-policy my-policy \
   --expression "request.path.matches(\"/login.html\") && token.recaptcha_action.score >= 0.8" \
   --action allow

Weiterleitung (302-Antwort)

Verwenden Sie folgendes Format in gcloud, um eine Regel zum Weiterleiten des Traffics an eine vom Nutzer konfigurierte URL zu erstellen.

gcloud compute security-policies rules create PRIORITY \
   --security-policy SECURITY_POLICY \
   (--expression EXPRESSION | --src-ip-ranges SRC_IP_RANGE) \
   --action redirect \
   --redirect-type external-302 \
   --redirect-target REDIRECT_URL

Im folgenden Beispiel wird eine Regel erstellt, die den Traffic von 10.10.10.0/24 an https://www.example.com weiterleitet.

gcloud compute security-policies rules create 1000 \
   --security-policy my-policy \
   --src-ip-ranges "10.10.10.0/24" \
   --action redirect \
   --redirect-type external-302 \
   --redirect-target "https://www.example.com"

Anfrage gestalten

Verwenden Sie das folgende Format in gcloud, um eine Regel zu erstellen, die Traffic zulässt, aber benutzerdefinierte Header und benutzerdefinierte statische Werte hinzufügt, bevor sie an geschützte Back-Ends weitergeleitet werden:

gcloud compute security-policies rules create PRIORITY \
   --security-policy SECURITY_POLICY \
   (--expression EXPRESSION | --src-ip-ranges SRC_IP_RANGE) \
   --action allow \
   --request-headers-to-add HEADER_1=VALUE_1,HEADER_2=VALUE_2,...

Im folgenden Beispiel wird eine Regel erstellt, die einen benutzerdefinierten Header für die Traffic-Ausrichtung für /login.html mit einem reCAPTCHA Enterprise-Aktionstoken-Score von weniger als 0.2 hinzufügt.

gcloud compute security-policies rules create 1000 \
   --security-policy my-policy \
   --expression "request.path.matches("/login.html") && token.recaptcha_action.score < 0.2" \
   --action allow \
   --request-headers-to-add "reCAPTCHA-Warning=high"

Adaptiven Schutz verwenden

Adaptive Protection wird pro Sicherheitsrichtlinie aktiviert.

Console

So aktivieren Sie Adaptive Protection für eine Sicherheitsrichtlinie:

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit auf.

    Netzwerksicherheit aufrufen

  2. Klicken Sie auf der Seite Richtlinien auf den Namen einer Sicherheitsrichtlinie.

  3. Klicken Sie auf Bearbeiten.

  4. Wählen Sie unter Adaptive Protection die Option Aktivieren aus.

  5. Klicken Sie auf Aktualisieren.

So deaktivieren Sie Adaptive Protection für eine Sicherheitsrichtlinie:

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit auf.

    Netzwerksicherheit aufrufen

  2. Klicken Sie auf der Seite Richtlinien auf den Namen einer Sicherheitsrichtlinie.

  3. Klicken Sie auf Bearbeiten.

  4. Heben Sie unter Adaptive Protection die Option Aktivieren auf.

  5. Klicken Sie auf Aktualisieren.

gcloud

So aktivieren Sie Adaptive Protection für eine Sicherheitsrichtlinie:

gcloud compute security-policies update MY-SECURITY-POLICY \
   --enable-layer7-ddos-defense

So deaktivieren Sie Adaptive Protection für eine Sicherheitsrichtlinie:

gcloud compute security-policies update MY-SECURITY-POLICY \
   --no-enable-layer7-ddos-defense

Verfügbare vorkonfigurierte Regeln auflisten

Listen Sie vorkonfigurierte Regeln auf, um die vordefinierten Anwendungsschutzregeln und -signaturen wie das von Google Cloud Armor bereitgestellte ModSecurity Core Rule Set anzeigen zu lassen. Diese vorkonfigurierten Regeln enthalten mehrere integrierte Signaturen, mit denen Google Cloud Armor eingehende Anfragen auswertet. Sie können diese vorkonfigurierten Regeln mithilfe der Sprachreferenz für benutzerdefinierte Regeln neuen oder vorhandenen Regeln hinzufügen.

Weitere Informationen finden Sie unter Vorkonfigurierte Regeln.

gcloud

  1. Führen Sie den Befehl gcloud compute security-policies list-preconfigured-expression-sets aus:

    gcloud compute security-policies list-preconfigured-expression-sets
    

    Das folgende Beispiel zeigt die Form der Befehlsausgabe:

    EXPRESSION_SET
    expression-set-1
       RULE_ID                SENSITIVITY
       expression-set-1-id-1  sensitivity-value-1
       expression-set-1-id-2  sensitivity-value-2
    expression-set-2
       alias-1
       RULE_ID                SENSITIVITY
       expression-set-2-id-1  sensitivity-value-1
       expression-set-2-id-2  sensitivity-value-2
    

    Das folgende Beispiel enthält ein Beispiel der tatsächlichen Befehlsausgabe. Beachten Sie, dass die tatsächliche Ausgabe alle Regeln enthält, die unter Google Cloud Armor-WaF-Regeln abstimmen aufgeführt sind.

    gcloud compute security-policies list-preconfigured-expression-sets
    
    EXPRESSION_SET
    sqli-canary
        RULE_ID                          SENSITIVITY
        owasp-crs-v030001-id942110-sqli  2
        owasp-crs-v030001-id942120-sqli  2
        …
    xss-canary
        RULE_ID                         SENSITIVITY
        owasp-crs-v030001-id941110-xss  1
        owasp-crs-v030001-id941120-xss  1
    …
    sourceiplist-fastly
    sourceiplist-cloudflare
    sourceiplist-imperva
    

Sicherheitsrichtlinien auflisten

Folgen Sie dieser Anleitung, um alle Google Cloud Armor-Sicherheitsrichtlinien im aktuellen Projekt oder in einem von Ihnen angegebenen Projekt aufzulisten.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit auf.

    Netzwerksicherheit aufrufen

  2. Wenn Sie eine bestimmte Richtlinie aufrufen möchten, klicken Sie auf der Seite Sicherheitsrichtlinien in der Liste der Richtlinien auf den Namen.

gcloud

gcloud compute security-policies list

Beispiel:

gcloud compute security-policies list
NAME
my-policy

Weitere Informationen finden Sie unter gcloud compute security-policies list.

Sicherheitsrichtlinien aktualisieren

So aktualisieren Sie eine Google Cloud Armor-Sicherheitsrichtlinie: Sie können beispielsweise die Beschreibung der Richtlinie, das Verhalten der Standardregel und den Ziel-Back-End-Dienst ändern sowie neue Regeln hinzufügen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit auf.

    Netzwerksicherheit aufrufen

  2. Wenn Sie eine bestimmte Richtlinie aktualisieren möchten, klicken Sie auf der Seite Sicherheitsrichtlinien in der Liste der Richtlinien bei der Richtlinie, die Sie aktualisieren möchten, auf das Menü.

    • Wählen Sie Bearbeiten aus, nehmen Sie die gewünschten Änderungen vor und klicken Sie anschließend auf Aktualisieren, um die Richtlinienbeschreibung der Standardregelaktion zu aktualisieren.
    • Wählen Sie zum Hinzufügen einer Regel Regel hinzufügen aus und folgen Sie dann der Anleitung unter Regeln zu einer Sicherheitsrichtlinie hinzufügen.
    • Wählen Sie zum Ändern des Ziel-Back-End-Dienstes für die RichtlinieRichtlinie auf Ziel anwenden aus, klicken Sie auf Ziel hinzufügen, wählen Sie ein Ziel aus und klicken Sie anschließend auf Hinzufügen.

gcloud

Aktualisieren Sie eine Sicherheitsrichtlinie anhand der folgenden Anleitungen im Google Cloud CLI:

Exportsicherheitsrichtlinien

Mit dem Google Cloud CLI können Sie eine Google Cloud Armor-Sicherheitsrichtlinie als YAML- oder JSON-Datei exportieren. Durch das Exportieren einer Richtlinie können Sie eine Kopie von ihr abrufen, die Sie in der Versionsverwaltung ändern oder speichern können.

gcloud

  1. Im folgenden Befehl ist NAME der Name der Sicherheitsrichtlinie. Gültige Dateiformate sind YAML und JSON. Wenn Sie das Dateiformat nicht angeben, verwendet Google Cloud Armor das Standardformat YAML.

    gcloud compute security-policies export NAME \
        --file-name FILE_NAME  \
        --file-format FILE_FORMAT
    

    Im folgenden Beispiel wird die Sicherheitsrichtlinie my-policy in die Datei my-file im YAML-Format exportiert:

    gcloud compute security-policies export my-policy \
        --file-name my-file \
        --file-format yaml
     

    Das folgende Beispiel zeigt eine exportierte Sicherheitsrichtlinie:

    description: my description
    fingerprint: PWfLGDWQDLY=
    id: '123'
    name: my-policy
    rules:
    - action: allow
      description: default rule
      match:
          config:
            srcIpRanges:
            - '*'
          versionedExpr: SRC_IPS_V1
        preview: false
        priority: 2147483647
      selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policy
      
  2. Sie können die exportierte Datei mit einem beliebigen Texteditor ändern und sie dann mit dem Befehl import wieder in Google Cloud importieren.

Sicherheitsrichtlinien importieren

Mit dem Google Cloud CLI können Sie Google Cloud Armor-Sicherheitsrichtlinien als YAML- oder JSON-Datei importieren. Mit dem Befehl import können Sie nicht die Regeln einer vorhandenen Richtlinie aktualisieren. Stattdessen müssen Sie sie nacheinander mithilfe des Verfahrens Einzelne Regel in einer Sicherheitsrichtlinie aktualisieren aktualisieren. Wenn Sie alle Regeln gleichzeitig aktualisieren möchten, nutzen Sie die Methode Mehrere Regeln in einer Sicherheitsrichtlinie atomar aktualisieren.

gcloud

Importieren Sie Sicherheitsrichtlinien mit dem Befehl gcloud compute security-policies import NAME. Ersetzen Sie NAME durch den Namen der Sicherheitsrichtlinie, die Sie importieren. Wenn Sie das Dateiformat nicht angeben, wird das richtige Format von der Dateistruktur abgeleitet. Wenn die Struktur ungültig ist, wird ein Fehler angezeigt.

gcloud compute security-policies import NAME \
    --file-name FILE_NAME  \
   [--file-format FILE_FORMAT]

Mit dem folgenden Befehl wird durch Importieren der Datei my-file beispielsweise die Richtlinie my-policy aktualisiert.

gcloud compute security-policies import my-policy \
    --file-name my-file \
    --file-format json

Wenn der Fingerabdruck der Richtlinie beim Import veraltet ist, zeigt Google Cloud Armor einen Fehler an. Das bedeutet, dass die Richtlinie seit dem letzten Export geändert wurde. Verwenden Sie zur Behebung dieses Problems den Befehl describe der Richtlinie, um den neuesten Fingerabdruck abzurufen. Führen Sie alle Unterschiede zwischen der beschriebenen Richtlinie und Ihrer Richtlinie zusammen und ersetzen Sie den veralteten Fingerabdruck durch den neuesten.

Sicherheitsrichtlinien löschen

Folgen Sie dieser Anleitung, um eine Google Cloud Armor-Sicherheitsrichtlinie zu löschen. Sie müssen alle Back-End-Dienste aus der Richtlinie entfernen, bevor Sie sie löschen können.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit auf.

    Netzwerksicherheit aufrufen

  2. Klicken Sie auf der Seite Sicherheitsrichtlinien neben dem Namen der Sicherheitsrichtlinie, die Sie löschen möchten, das Kästchen an.

  3. Klicken Sie oben rechts auf der Seite auf Löschen.

gcloud

Verwenden Sie gcloud compute security-policies delete NAME. Ersetzen Sie NAME durch den Namen der Sicherheitsrichtlinie:

gcloud compute security-policies delete NAME

Sicherheitsrichtlinie an einen Back-End-Dienst anhängen

Folgen Sie dieser Anleitung, um eine Google Cloud Armor-Sicherheitsrichtlinie an einen Back-End-Dienst anzuhängen. Eine Sicherheitsrichtlinie kann an mehrere Back-End-Dienste angehängt werden, an einen Back-End-Dienst kann jedoch jeweils nur ein Typ von Sicherheitsrichtlinien angehängt werden.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit auf.

    Netzwerksicherheit aufrufen

  2. Klicken Sie auf der Seite Sicherheitsrichtlinien auf den Namen der Sicherheitsrichtlinie. Die Seite Richtliniendetails wird angezeigt.

  3. Klicken Sie in der Mitte der Seite auf den Tab Ziele.

  4. Klicken Sie auf Richtlinie auf neues Ziel anwenden.

  5. Klicken Sie auf Ziel hinzufügen.

  6. Wählen Sie in der Liste Ziel ein Ziel aus und klicken Sie anschließend auf Hinzufügen.

gcloud

Verwenden Sie den Befehl gcloud compute backend-services und das Flag --security-policy, wenn Sie eine Back-End-Sicherheitsrichtlinie an einen Back-End-Dienst anhängen:

gcloud compute backend-services update my-backend \
    --security-policy my-policy

Wenn Sie eine Edge-Sicherheitsrichtlinie an einen Back-End-Dienst anhängen, verwenden Sie den Befehl gcloud compute backend-services und das Flag --edge-security-policy:

gcloud compute backend-services update my-backend \
    --edge-security-policy my-policy

Sicherheitsrichtlinie aus einem Back-End-Dienst entfernen

Folgen Sie dieser Anleitung, um eine Google Cloud Armor-Back-End-Sicherheitsrichtlinie oder eine Edge-Sicherheitsrichtlinie von einem Back-End-Dienst zu entfernen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit auf.

    Netzwerksicherheit aufrufen

  2. Klicken Sie auf der Seite Sicherheitsrichtlinien auf den Namen der Sicherheitsrichtlinie. Die Seite Richtliniendetails wird angezeigt.

  3. Klicken Sie in der Mitte der Seite auf den Tab Ziele.

  4. Wählen Sie den Ziel-Back-End-Dienst aus, von dem Sie die Richtlinie entfernen.

  5. Klicken Sie auf Entfernen.

  6. Klicken Sie in der Meldung Ziel entfernen auf Entfernen.

gcloud

Wenn Sie eine Back-End-Sicherheitsrichtlinie entfernen, verwenden Sie den Befehl gcloud compute backend-services und das Flag --security-policy:

gcloud compute backend-services update my-backend \
    --security-policy ""

Wenn Sie eine Edge-Sicherheitsrichtlinie entfernen, verwenden Sie den Befehl gcloud compute backend-services und das Flag --edge-security-policy:

gcloud compute backend-services update my-backend \
    --edge-security-policy ""

Sicherheitsrichtlinie an einen Back-End-Bucket anhängen

Folgen Sie dieser Anleitung, um eine Google Cloud Armor-Edge-Sicherheitsrichtlinie an einen Back-End-Bucket anzuhängen. Eine Edge-Sicherheitsrichtlinie kann an mehrere Back-End-Buckets angehängt werden.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit auf.

    Netzwerksicherheit aufrufen

  2. Klicken Sie auf der Seite Sicherheitsrichtlinien auf den Namen der Sicherheitsrichtlinie. Die Seite Richtliniendetails wird angezeigt.

  3. Klicken Sie in der Mitte der Seite auf den Tab Ziele.

  4. Klicken Sie auf Richtlinie auf neues Ziel anwenden.

  5. Klicken Sie auf Ziel hinzufügen.

  6. Wählen Sie in der Liste Ziel ein Ziel aus und klicken Sie anschließend auf Hinzufügen.

gcloud

Wenn Sie eine Edge-Sicherheitsrichtlinie an einen Back-End-Bucket anhängen, verwenden Sie den Befehl cloud compute backend-buckets und das Flag --edge-security-policy:

gcloud compute backend-services update my-bucket \
    --edge-security-policy my-edge-policy

Sicherheitsrichtlinie aus einem Back-End-Bucket entfernen

Folgen Sie dieser Anleitung, um eine Google Cloud Armor-Edge-Sicherheitsrichtlinie aus einem Back-End-Bucket zu entfernen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit auf.

    Netzwerksicherheit aufrufen

  2. Klicken Sie auf der Seite Sicherheitsrichtlinien auf den Namen der Sicherheitsrichtlinie. Die Seite Richtliniendetails wird angezeigt.

  3. Klicken Sie in der Mitte der Seite auf den Tab Ziele.

  4. Wählen Sie den Ziel-Back-End-Dienst aus, von dem Sie die Richtlinie entfernen.

  5. Klicken Sie auf Entfernen.

  6. Klicken Sie in der Meldung Ziel entfernen auf Entfernen.

gcloud

Wenn Sie eine Edge-Sicherheitsrichtlinie aus einem Back-End-Bucket entfernen, verwenden Sie den Befehl cloud compute backend-buckets und das Flag --edge-security-policy:

gcloud compute backend-services update my-bucket \
    --edge-security-policy ""

Regeln zu einer Sicherheitsrichtlinie hinzufügen

Folgen Sie dieser Anleitung, um Regeln zu einer Google Cloud Armor-Sicherheitsrichtlinie hinzuzufügen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit auf.

    Netzwerksicherheit aufrufen

  2. Klicken Sie auf der Seite Sicherheitsrichtlinien auf den Namen der Sicherheitsrichtlinie. Die Seite Richtliniendetails wird angezeigt.

  3. Klicken Sie in der Mitte der Seite auf den Tab Regeln.

  4. Klicken Sie auf Regel hinzufügen.

  5. Optional: Geben Sie eine Beschreibung der Regel ein.

  6. 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.
  7. Geben Sie im Feld Abgleich die Bedingungen an, unter denen die Regel angewendet wird.

    • Basis-Modus: Geben Sie einen (1) bis fünf (5) IP-Adressbereiche 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 von Ausdrücken und zum Lesen der folgenden Beispiele finden Sie in der Sprachreferenz für benutzerdefinierte Regeln.

      • Der folgende Ausdruck stimmt mit Anfragen von der IP-Adresse 1.2.3.4 überein und enthält den String Godzilla im user-agent-Header:

        inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('Godzilla')
        
      • Der folgende Ausdruck stimmt mit Anfragen überein, die ein Cookie mit einem bestimmten Wert enthalten:

        has(request.headers['cookie']) && request.headers['cookie'].contains('cookie_name=cookie_value')
        
      • Der folgende Ausdruck stimmt mit Anfragen aus der Region AU überein:

        origin.region_code == 'AU'
        
      • Der folgende Ausdruck stimmt mit Anfragen aus der Region AU überein, die nicht im angegebenen IP-Bereich liegen:

        origin.region_code == "AU" && !inIpRange(origin.ip, '1.2.3.0/24')
        
      • Der folgende Ausdruck stimmt mit Anfragen überein, wenn der URI mit einem regulären Ausdruck übereinstimmt:

        request.path.matches('/bad_path/')
        
      • Der folgende Ausdruck stimmt mit Anfragen überein, wenn der Base64-decodierte Wert des user-id-Headers einen bestimmten Wert enthält:

        has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')
        
      • Der folgende Ausdruck verwendet einen vorkonfigurierten Ausdruckssatzabgleich gegen SQLi-Angriffe:

        evaluatePreconfiguredExpr('sqli-stable')
        
  8. Wählen Sie unter Aktion die Option Zulassen oder Ablehnen aus.

  9. Wenn Sie eine Ablehnungsregel konfigurieren, wählen Sie Status "Abgelehnt" aus.

  10. Wenn Sie den Vorschaumodus für die Regel aktivieren möchten, klicken Sie das Kästchen Aktivieren an.

  11. Geben Sie im Feld Priorität eine positive Ganzzahl ein.

  12. Klicken Sie auf Add.

gcloud

Führen Sie den Befehl gcloud compute security-policies rules create PRIORITY aus: Ersetzen Sie PRIORITY durch die Priorität der Regel in der Richtlinie:

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

Der folgende Befehl fügt beispielsweise eine Regel hinzu, mit der Traffic von den IP-Adressbereichen 192.0.2.0/24 und 198.51.100.0/24 blockiert wird. 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"

Verwenden Sie das Flag --expression, um in der Sprachreferenz für benutzerdefinierte Regeln eine benutzerdefinierte Bedingung anzugeben. 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 Godzilla im user-agent-Header:

gcloud 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('Godzilla')" \
    --action allow \
    --description "Block User-Agent 'Godzilla'"

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('80=BLAH')" \
    --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-502 \
    --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

Regeln in einer Sicherheitsrichtlinie auflisten

Folgen Sie dieser Anleitung, um Regeln in einer Google Cloud Armor-Sicherheitsrichtlinie aufzulisten.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit auf.

    Netzwerksicherheit aufrufen

  2. Klicken Sie auf der Seite Sicherheitsrichtlinien auf den Namen der Sicherheitsrichtlinie. Die Seite Richtliniendetails wird angezeigt und die Richtlinienregeln werden auf dem Tab Regeln in der Mitte der Seite aufgelistet.

gcloud

Verwenden Sie den folgenden gcloud-Befehl, um alle Regeln in einer einzelnen Sicherheitsrichtlinie zusammen mit einer Beschreibung der Richtlinie aufzulisten.

gcloud compute security-policies describe NAME \

Verwenden Sie den folgenden gcloud-Befehl, um eine Regel mit der angegebenen Priorität in der angegebenen Sicherheitsrichtlinie zu beschreiben:

gcloud compute security-policies rules describe PRIORITY \
    --security-policy POLICY_NAME

Der folgende Befehl beschreibt zum Beispiel die Regel mit der Priorität 1.000 in der Sicherheitsrichtlinie my-policy:

gcloud compute security-policies rules describe 1000 \
    --security-policy my-policy

Ausgabe:

action: deny(403)
description: block traffic from 192.0.2.0/24 and 198.51.100.0/24
kind: compute#securityPolicyRule
match:
  srcIpRanges:
  - '192.0.2.0/24'
  - '198.51.100.0/24'
preview: false
priority: 1000

Einzelne Regel in einer Sicherheitsrichtlinie aktualisieren

Folgen Sie dieser Anleitung, um eine einzelne Regel in einer Google Cloud Armor-Sicherheitsrichtlinie zu aktualisieren. Informationen zum Aktualisieren mehrerer Regeln finden Sie unter Mehrere Regeln in einer Sicherheitsrichtlinie atomar aktualisieren.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit auf.

    Netzwerksicherheit aufrufen

  2. Klicken Sie auf der Seite Sicherheitsrichtlinien auf den Namen der Sicherheitsrichtlinie. Die Seite Richtliniendetails wird angezeigt.

  3. Klicken Sie in der Mitte der Seite auf den Tab Regeln.

  4. Klicken Sie neben der Regel, die Sie aktualisieren möchten, auf Bearbeiten. Die Seite Regel bearbeiten wird angezeigt.

  5. Nehmen Sie die gewünschten Änderungen vor und klicken Sie dann auf Aktualisieren.

gcloud

Mit diesem Befehl aktualisieren Sie eine Regel mit der angegebenen Priorität in einer bestimmten Sicherheitsrichtlinie. Mit dem folgenden Befehl können Sie immer nur eine Sicherheitsrichtlinie aktualisieren:

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

Mit dem folgenden Befehl wird beispielsweise eine Regel mit der Priorität 1111 aktualisiert, um Traffic aus dem IP-Adressbereich 192.0.2.0/24 zuzulassen:

gcloud compute security-policies rules update 1111 \
    --security-policy my-policy \
    --description "allow traffic from 192.0.2.0/24" \
    --src-ip-ranges "192.0.2.0/24" \
    --action "allow"

Weitere Informationen zu diesem Befehl finden Sie unter gcloud compute security-policies rules update.

Um die Priorität einer Regel zu aktualisieren, müssen Sie die REST API verwenden. Weitere Informationen finden Sie unter securityPolicies.patchRule.

Mehrere Regeln in einer Sicherheitsrichtlinie kleinstmöglich aktualisieren

Bei einer atomaren Aktualisierung werden Änderungen an mehreren Regeln in einer einzigen Aktualisierung angewendet. Wenn Sie Regeln einzeln aktualisieren, kann es zu einem unbeabsichtigten Verhalten kommen, da alte und neue Regeln möglicherweise für kurze Zeit zusammenarbeiten.

Exportieren Sie die aktuelle Sicherheitsrichtlinie in eine JSON- oder YAML-Datei und ändern Sie diese dann entsprechend, um mehrere Regeln atomar zu aktualisieren. Verwenden Sie die geänderte Datei, um eine neue Sicherheitsrichtlinie zu erstellen, und wechseln Sie dann die Sicherheitsrichtlinie für die entsprechenden Back-End-Dienste.

gcloud

  1. Exportieren Sie die Richtlinie, die Sie aktualisieren möchten, wie im folgenden Beispiel gezeigt:

    gcloud compute security-policies export my-policy \
        --file-name my-file \
        --file-format yaml
    

    Die exportierte Richtlinie sieht etwa so aus:

    description: my description
    fingerprint: PWfLGDWQDLY=
    id: '123'
    name: my-policy
    rules:
    - action: deny(404)
      description: my-rule-1
      match:
        expr:
          expression: evaluatePreconfiguredExpr('xss-stable')
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 1
    - action: allow
      description: my-rule-2
      match:
        config:
          srcIpRanges:
          - '1.2.3.4'
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 2
    - action: deny
      description: default rule
      kind: compute#securityPolicyRule
      match:
        config:
          srcIpRanges:
          - '*'
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 2147483647
    selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policy
    
  2. Ändern Sie die Richtlinie in einem beliebigen Texteditor. Sie können beispielsweise die Prioritäten der vorhandenen Regeln ändern und eine neue Regel hinzufügen:

    description: my description
    fingerprint: PWfLGDWQDLY=
    id: '123'
    name: my-policy
    rules:
    - action: deny(404)
      description: my-rule-1
      match:
        expr:
          expression: evaluatePreconfiguredExpr('xss-stable')
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 1
    - action: allow
      description: my-new-rule
      match:
        config:
          srcIpRanges:
          - '1.2.3.1'
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 10
    - action: allow
      description: my-rule-2
      match:
        config:
          srcIpRanges:
          - '1.2.3.4'
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 11
    - action: deny
      description: default rule
      kind: compute#securityPolicyRule
      match:
        config:
          srcIpRanges:
          - '*'
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 2147483647
    selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policy
    
  3. Erstellen Sie eine neue Google Cloud Armor-Sicherheitsrichtlinie und geben Sie den geänderten Dateinamen und das Format wie im folgenden Beispiel an:

    gcloud compute security-policies create new-policy \
        --file-name modified-policy \
        --file-format yaml
    
  4. Entfernen Sie die alte Sicherheitsrichtlinie aus dem entsprechenden Back-End-Dienst, wie im folgenden Beispiel gezeigt:

    gcloud compute backend-services update my-backend \
        --security-policy ""
    
  5. Fügen Sie dem Back-End-Dienst die neue Sicherheitsrichtlinie hinzu, wie im folgenden Beispiel gezeigt:

    gcloud compute backend-services update my-backend \
        --security-policy new-policy
    
  6. Wenn die alte Richtlinie nicht verwendet wird, löschen Sie sie:

    gcloud compute security-policies delete my-policy
    

Regeln aus einer Sicherheitsrichtlinie löschen

Folgen Sie dieser Anleitung, um Regeln aus einer Google Cloud Armor-Sicherheitsrichtlinie zu löschen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit auf.

    Netzwerksicherheit aufrufen

  2. Klicken Sie auf der Seite Sicherheitsrichtlinien auf den Namen der Sicherheitsrichtlinie. Die Seite Richtliniendetails wird angezeigt.

  3. Klicken Sie in der Mitte der Seite auf dem Tab Regeln das Kästchen neben der Regel an, die Sie löschen möchten.

  4. Klicken Sie auf Löschen.

gcloud

Mit diesem Befehl entfernen Sie eine Regel mit der angegebenen Priorität aus einer bestimmten Sicherheitsrichtlinie. Sie können jeweils nur eine Sicherheitsrichtlinie ändern. Sie können aber mehrere Regeln gleichzeitig löschen:

gcloud compute security-policies rules delete PRIORITY [...] [
    --security-policy POLICY_NAME \
  ]

Beispiel:

gcloud compute security-policies rules delete 1000 \
    --security-policy my-policy

Nächste Schritte