So erstellen Sie Google Cloud Armor-Sicherheitsrichtlinien zum Filtern von eingehenden Zugriffen auf die folgenden Ziele:
- Globaler externer Application Load Balancer
- Klassischer Application Load Balancer
- Regionaler externer Application Load Balancer
- Regionaler interner 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, 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 Rolle Compute-Sicherheitsadministrator (roles/compute.securityAdmin
) für Identity and Access Management (IAM) erforderlich:
- Google Cloud Armor-Sicherheitsrichtlinien konfigurieren, ändern, aktualisieren und löschen
- Mithilfe der 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
- Mithilfe der folgenden API-Methoden:
BackendServices setSecurityPolicy
BackendServices list
(nurgcloud
)
Nutzer mit der Rolle Sicherheitsadministrator (roles/iam.securityAdmin
) und der Rolle „Compute-Netzwerkadministrator“ können sich die Google Cloud Armor-Sicherheitsrichtlinien mithilfe der 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, sehen Sie sich Beispiele für Sicherheitsrichtlinien an.
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 Stringexample
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 mit dem Attribut
origin.user_ip
den IP-Adressbereich eines benutzerdefinierten Client-IP-Adress-Headers 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
In den folgenden Abschnitten können Sie die Sicherheitsrichtlinien in Ihrem Projekt auflisten, aktualisieren, löschen oder 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
Rufen Sie in der Google Cloud Console die Seite Google Cloud Armor-Richtlinien auf.
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
Rufen Sie in der Google Cloud Console die Seite Google Cloud Armor-Richtlinien auf.
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 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:
- Informationen zum Aktualisieren einer Regel in einer Sicherheitsrichtlinie finden Sie unter Einzelne Regel in einer Sicherheitsrichtlinie aktualisieren.
- Informationen zum Hinzufügen einer Regel zu einer Sicherheitsrichtlinie finden Sie unter Regeln zu einer Sicherheitsrichtlinie hinzufügen.
- Informationen zum Löschen einer Regel aus einer Sicherheitsrichtlinie finden Sie unter Regeln aus einer Sicherheitsrichtlinie löschen.
- Informationen zum Aktualisieren mehrerer Regeln in einer einzelnen Aktualisierung (atomare Aktualisierung) finden Sie unter Mehrere Regeln in einer Sicherheitsrichtlinie atomar aktualisieren.
- Informationen zum Aktualisieren von Nichtregelfeldern in einer Sicherheitsrichtlinie (z. B. dem Beschreibungsfeld) finden Sie unter Sicherheitsrichtlinien exportieren und Sicherheitsrichtlinien importieren.
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
Rufen Sie in der Google Cloud Console die Seite Google Cloud Armor-Richtlinien auf.
Klicken Sie auf der Seite Sicherheitsrichtlinien neben dem Namen der Sicherheitsrichtlinie, die Sie löschen möchten, das Kästchen an.
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.
Regeln für Sicherheitsrichtlinien verwalten
In den folgenden Abschnitten können Sie Regeln für Sicherheitsrichtlinien auflisten, hinzufügen, aktualisieren oder löschen.
Regeln in einer Sicherheitsrichtlinie auflisten
Folgen Sie dieser Anleitung, um Regeln in einer Google Cloud Armor-Sicherheitsrichtlinie aufzulisten.
Console
Rufen Sie in der Google Cloud Console die Seite Google Cloud Armor-Richtlinien auf.
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
Rufen Sie in der Google Cloud Console die Seite Google Cloud Armor-Richtlinien auf.
Klicken Sie auf der Seite Sicherheitsrichtlinien auf den Namen der Sicherheitsrichtlinie. Die Seite Richtliniendetails wird angezeigt.
Klicken Sie in der Mitte der Seite auf den Tab Regeln.
Klicken Sie auf Regel hinzufügen.
Optional: Geben Sie eine Beschreibung der Regel ein.
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.
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 Stringexample
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('/example_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')
Wählen Sie unter Aktion die Option Zulassen oder Ablehnen aus.
Wenn Sie eine Ablehnungsregel konfigurieren, wählen Sie Status "Abgelehnt" aus.
Wenn Sie den Vorschaumodus für die Regel aktivieren möchten, klicken Sie das Kästchen Aktivieren an.
Geben Sie im Feld Priorität eine positive Ganzzahl ein.
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('/example_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
Rufen Sie in der Google Cloud Console die Seite Google Cloud Armor-Richtlinien auf.
Klicken Sie auf der Seite Sicherheitsrichtlinien auf den Namen der Sicherheitsrichtlinie. Die Seite Richtliniendetails wird angezeigt.
Klicken Sie in der Mitte der Seite auf den Tab Regeln.
Klicken Sie neben der Regel, die Sie aktualisieren möchten, auf
Bearbeiten. Die Seite Regel bearbeiten wird angezeigt.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. 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
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
Ä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
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
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 ""
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
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
Rufen Sie in der Google Cloud Console die Seite Google Cloud Armor-Richtlinien auf.
Klicken Sie auf den Namen der Sicherheitsrichtlinie. Die Seite Richtliniendetails wird angezeigt.
Klicken Sie in der Mitte der Seite auf dem Tab Regeln das Kästchen neben der Regel an, die Sie löschen möchten.
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 erfahren Sie, wie Sie Sicherheitsrichtlinien an Backend-Dienste und Backend-Buckets anhängen und 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
Rufen Sie in der Google Cloud Console die Seite Google Cloud Armor-Richtlinien auf.
Klicken Sie auf der Seite Sicherheitsrichtlinien auf den Namen der Sicherheitsrichtlinie. Die Seite Richtliniendetails wird angezeigt.
Klicken Sie in der Mitte der Seite auf den Tab Ziele.
Klicken Sie auf Richtlinie auf neues Ziel anwenden.
Klicken Sie auf Ziel hinzufügen.
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
Rufen Sie in der Google Cloud Console die Seite Google Cloud Armor-Richtlinien auf.
Klicken Sie auf der Seite Sicherheitsrichtlinien auf den Namen der Sicherheitsrichtlinie. Die Seite Richtliniendetails wird angezeigt.
Klicken Sie in der Mitte der Seite auf den Tab Ziele.
Wählen Sie den Ziel-Back-End-Dienst aus, von dem Sie die Richtlinie entfernen.
Klicken Sie auf Entfernen.
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
Rufen Sie in der Google Cloud Console die Seite Google Cloud Armor-Richtlinien auf.
Klicken Sie auf der Seite Sicherheitsrichtlinien auf den Namen der Sicherheitsrichtlinie. Die Seite Richtliniendetails wird angezeigt.
Klicken Sie in der Mitte der Seite auf den Tab Ziele.
Klicken Sie auf Richtlinie auf neues Ziel anwenden.
Klicken Sie auf Ziel hinzufügen.
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
Rufen Sie in der Google Cloud Console die Seite Google Cloud Armor-Richtlinien auf.
Klicken Sie auf der Seite Sicherheitsrichtlinien auf den Namen der Sicherheitsrichtlinie. Die Seite Richtliniendetails wird angezeigt.
Klicken Sie in der Mitte der Seite auf den Tab Ziele.
Wählen Sie den Ziel-Back-End-Dienst aus, von dem Sie die Richtlinie entfernen.
Klicken Sie auf Entfernen.
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 erfahren Sie, wie 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. 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.
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
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 Dateimy-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
Sie können die exportierte Datei mit einem beliebigen Texteditor ändern und sie dann mit dem Befehl
import
wieder in Google Cloud importieren.
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
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
- WAP-Regeln (Web Application Firewall) abstimmen
- Fehlerbehebung
- Referenz der Sprache für benutzerdefinierte Regeln verwenden