Google Cloud Armor-Sicherheitsrichtlinien konfigurieren

Folgen Sie dieser Anleitung, um Sicherheitsrichtlinien für Google Cloud Armor zu erstellen und eingehenden Traffic zu den folgenden Zielen zu filtern:

  • Globaler externer Application Load Balancer
  • Klassischer Application Load Balancer
  • Regionaler externer Application Load Balancer
  • Externer Proxy-Network Load Balancer
  • Klassischer Proxy-Network Load Balancer
  • Externer Passthrough-Network Load Balancer
  • Protokollweiterleitung
  • VMs mit öffentlichen IP-Adressen

Konzeptionelle Informationen zu Sicherheitsrichtlinien finden Sie in der Übersicht über die Google Cloud Armor-Sicherheitsrichtlinie.

Hinweise

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

  • Machen Sie sich mit den Konzepten des externen Application Load Balancers vertraut.

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

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

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

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

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

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

Nutzer mit der Rolle „Sicherheitsadministrator“ (roles/iam.securityAdmin) und der Rolle „Compute-Netzwerkadministrator“ können 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 erstellen

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 Backend-Sicherheitsrichtlinie oder eine Edge-Sicherheitsrichtlinie ist.

Wenn Sie mit der Konfiguration von Sicherheitsrichtlinien nicht vertraut sind, sollten Sie sich die Beispiele für Sicherheitsrichtlinien ansehen.

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 example im user-agent-Header:

    inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')
    

    Alternativ können Sie den IP-Adressbereich eines benutzerdefinierten Client-IP-Adressheaders mithilfe des Attributs origin.user_ip abgleichen:

    inIpRange(origin.user_ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')
    
  • 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')
    

Sicherheitsrichtlinien verwalten

Verwenden Sie die folgenden Abschnitte, um die Sicherheitsrichtlinien in Ihrem Projekt aufzulisten, Ihre Sicherheitsrichtlinien zu aktualisieren, Ihre Sicherheitsrichtlinien zu löschen oder Ihre Sicherheitsrichtlinien zu testen.

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 Google Cloud Armor-Richtlinien auf.

    Google Cloud Armor-Richtlinien 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 oder neue Regeln hinzufügen.

Console

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

    Google Cloud Armor-Richtlinien 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 zum Aktualisieren der Richtlinienbeschreibung der Standardregelaktion Bearbeiten aus, nehmen Sie die gewünschten Änderungen vor und klicken Sie dann auf 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.
    • Wenn Sie den Ziel-Back-End-Dienst für die Richtlinie ändern möchten, wählen Sie Richtlinie auf Ziel anwenden aus, klicken Sie auf Ziel hinzufügen, wählen Sie ein Ziel aus und klicken Sie dann auf Hinzufügen.

gcloud

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

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 Google Cloud Armor-Richtlinien auf.

    Google Cloud Armor-Richtlinien 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

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.

Sicherheitsrichtlinienregeln verwalten

In den folgenden Abschnitten können Sie Regeln für Sicherheitsrichtlinien auflisten, Regeln hinzufügen, Regeln aktualisieren oder löschen.

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 Google Cloud Armor-Richtlinien auf.

    Google Cloud Armor-Richtlinien 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

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 Google Cloud Armor-Richtlinien auf.

    Google Cloud Armor-Richtlinien 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 example im user-agent-Header:

        inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')
        
      • 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 example 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('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('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

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 Google Cloud Armor-Richtlinien auf.

    Google Cloud Armor-Richtlinien 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 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. Erstellen Sie mit der geänderten Datei eine neue Sicherheitsrichtlinie und ändern Sie dann die Sicherheitsrichtlinie für die relevanten 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 geänderte Format an, wie im folgenden Beispiel gezeigt:

    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 Google Cloud Armor-Richtlinien auf.

    Google Cloud Armor-Richtlinien aufrufen

  2. Klicken Sie 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

Sicherheitsrichtlinien anhängen und entfernen

In den folgenden Abschnitten wird beschrieben, wie Sie Sicherheitsrichtlinien an Back-End-Dienste und Back-End-Buckets anhängen bzw. daraus entfernen.

Sicherheitsrichtlinie an einen Backend-Dienst anhängen

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

Console

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

    Google Cloud Armor-Richtlinien 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 Backend-Sicherheitsrichtlinie an einen Backend-Dienst anhängen:

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

Wenn Sie eine Edge-Sicherheitsrichtlinie an einen Backend-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 Backend-Dienst entfernen

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

Console

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

    Google Cloud Armor-Richtlinien 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 möchten.

  5. Klicken Sie auf Entfernen.

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

gcloud

Wenn Sie eine Backend-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 Backend-Bucket anhängen

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

Console

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

    Google Cloud Armor-Richtlinien 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 Backend-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 Backend-Bucket entfernen

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

Console

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

    Google Cloud Armor-Richtlinien 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 möchten.

  5. Klicken Sie auf Entfernen.

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

gcloud

Wenn Sie eine Edge-Sicherheitsrichtlinie aus einem Backend-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 ""

Sicherheitsrichtlinien importieren und exportieren

In den folgenden Abschnitten können Sie Sicherheitsrichtlinien als YAML- oder JSON-Dateien importieren und exportieren.

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. Wird kein Dateiformat angegeben, wird anhand der Dateistruktur das richtige Format vorausgesetzt. 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.

Exportsicherheitsrichtlinien

Mit dem Google Cloud CLI können Sie eine Google Cloud Armor-Sicherheitsrichtlinie als YAML- oder JSON-Datei exportieren. Wenn Sie eine Richtlinie exportieren, können Sie eine Kopie davon abrufen, die Sie ändern oder in der Versionsverwaltung 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 die Standard-YAML-Datei.

    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 import.

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
    

Nächste Schritte