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
(nurgcloud
)
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:
- Erstellen Sie eine Google Cloud Armor-Sicherheitsrichtlinie.
- Fügen Sie der Sicherheitsrichtlinie Regeln basierend auf IP-Adresslisten, benutzerdefinierten Ausdrücken oder vordefinierten Ausdruckssätzen hinzu.
- 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.
- 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.
In diesem Beispiel sind dies die Google Cloud Armor-Sicherheitsrichtlinien:
mobile-clients-policy
gilt für externe Nutzer Ihrergames
Dienste.internal-users-policy
gilt für dastest-network
-Team Ihrer Organisation.
Sie wenden mobile-clients-policy
auf den games
-Dienst an, dessen Back-End-Dienst games
heißt, und Sie wenden internal-users-policy
auf den internen test
-Dienst für das Testteam an, dessen entsprechender Back-End-Dienst test-network
heißt.
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:
Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit auf.
Klicken Sie auf der Seite Richtlinien auf Richtlinie erstellen.
Geben Sie im Feld Name
mobile-clients-policy
ein.Geben Sie im Feld Beschreibung den Text
Policy for external users
ein.Wählen Sie als Standardregel die Option Ablehnen aus.
Wählen Sie für den Status "Abgelehnt" die Option 404 (Nicht gefunden) aus.
Klicken Sie auf Next step (Nächster Schritt).
So fügen Sie weitere Regeln hinzu:
- Klicken Sie auf Regel hinzufügen.
- Geben Sie im Feld Beschreibung den Text
allow traffic from 192.0.2.0/24
ein. - Wählen Sie als Modus die Option Standardmodus (nur IP-Adressen bzw. -Bereiche) aus.
- Geben Sie im Feld Übereinstimmung den Wert
192.0.2.0/24
ein. - Wählen Sie unter Aktion die Option Zulassen aus.
- Geben Sie in das Feld für die Priorität den Wert
1000
ein. - Klicken Sie auf Fertig.
- Klicken Sie auf Next step (Nächster Schritt).
Wenden Sie die Richtlinie auf Ziele an:
- Klicken Sie auf Ziel hinzufügen.
- Wählen Sie in der Liste Ziel ein Ziel aus.
- Klicken Sie auf Fertig.
- Klicken Sie auf Richtlinie erstellen.
Aktivieren Sie optional Adaptive Protection:
- Klicken Sie das Kästchen Aktivieren an, um Adaptive Protection zu aktivieren.
Konfigurieren Sie die Sicherheitsrichtlinie für interne Nutzer:
- Klicken Sie auf der Seite Richtlinien auf Richtlinie erstellen.
- Geben Sie im Feld Name
internal-users-policy
ein. - Geben Sie im Feld Beschreibung den Text
Policy for internal test users
ein. - Wählen Sie als Standardregel die Option Ablehnen aus.
- Wählen Sie für den Status "Abgelehnt" die Option 502 (Fehlerhaftes Gateway) aus.
- Klicken Sie auf Next step (Nächster Schritt).
So fügen Sie weitere Regeln hinzu:
- Klicken Sie auf Regel hinzufügen.
- Geben Sie im Feld Beschreibung den Text
allow traffic from 198.51.100.0/24
ein. - Wählen Sie als Modus die Option Standardmodus (nur IP-Adressen bzw. -Bereiche) aus.
- Geben Sie im Feld Übereinstimmung den Wert
198.51.100.0/24
ein. - Wählen Sie unter Aktion die Option Zulassen aus.
- Klicken Sie unter Nur Vorschau das Kästchen Aktivieren an.
- Geben Sie in das Feld für die Priorität den Wert
1000
ein. - Klicken Sie auf Fertig.
- Klicken Sie auf Next step (Nächster Schritt).
Wenden Sie die Richtlinie auf Ziele an:
- Klicken Sie auf Ziel hinzufügen.
- Wählen Sie in der Liste Ziel ein Ziel aus.
- Klicken Sie auf Fertig.
- Klicken Sie auf Richtlinie erstellen.
gcloud
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"
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"
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"
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
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 StringGodzilla
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:
Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit auf.
Klicken Sie auf der Seite Richtlinien auf Richtlinie erstellen.
Geben Sie im Feld Name den Namen Ihrer Richtlinie ein.
Optional: Geben Sie eine Beschreibung der Richtlinie ein.
Wählen Sie als Richtlinientyp Back-End-Sicherheitsrichtlinie oder Edge-Sicherheitsrichtlinie aus.
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.
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.
Klicken Sie unabhängig von der Art der Regel, die Sie konfigurieren, auf Nächster Schritt.
So fügen Sie weitere Regeln hinzu:
- Klicken Sie auf Regel hinzufügen.
- Optional: Geben Sie eine Beschreibung für die 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 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.
Wählen Sie als Aktion Zulassen oder Ablehnen aus, um Traffic zuzulassen oder abzulehnen, wenn die Regel übereinstimmt.
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.
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.
Klicken Sie auf Fertig.
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:
- Klicken Sie auf Ziel hinzufügen.
- Wählen Sie in der Liste Ziel ein Ziel aus.
- Wenn Sie weitere Ziele hinzufügen möchten, klicken Sie auf Ziel hinzufügen.
- Klicken Sie auf Fertig.
- Klicken Sie auf Richtlinie erstellen.
gcloud
Eine neue Google Cloud Armor-Sicherheitsrichtlinie erstellen Sie mit dem Befehl
gcloud compute security-policies create
. Ersetzen SieNAME
undDESCRIPTION
durch den Namen und die Beschreibung der Sicherheitsrichtlinie. Verwenden Sie im Feldtype
den WertCLOUD_ARMOR
, um eine Back-End-Sicherheitsrichtlinie zu erstellen, oderCLOUD_ARMOR_EDGE
, um eine Edge-Sicherheitsrichtlinie zu erstellen. Das Flagtype
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
Verwenden Sie den Befehl
gcloud compute security-policies rules create PRIORITY
, um einer Sicherheitsrichtlinie Regeln hinzuzufügen. Ersetzen SiePRIORITY
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-Adresse1.2.3.4
zulässt, und enthält den StringGodzilla
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:
Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit auf.
Klicken Sie auf der Seite Richtlinien auf den Namen einer Sicherheitsrichtlinie.
Klicken Sie auf Bearbeiten.
Wählen Sie unter Adaptive Protection die Option Aktivieren aus.
Klicken Sie auf Aktualisieren.
So deaktivieren Sie Adaptive Protection für eine Sicherheitsrichtlinie:
Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit auf.
Klicken Sie auf der Seite Richtlinien auf den Namen einer Sicherheitsrichtlinie.
Klicken Sie auf Bearbeiten.
Heben Sie unter Adaptive Protection die Option Aktivieren auf.
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
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
Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit 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 Netzwerksicherheit 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 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:
- 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.
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.
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
Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit 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
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
Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit 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 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
Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit 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 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
Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit 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 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
Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit 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 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
Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit 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 StringGodzilla
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')
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 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
Rufen Sie in der Google Cloud Console die Seite Netzwerksicherheit 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
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 Netzwerksicherheit 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 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
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 Netzwerksicherheit 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 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
Nächste Schritte
- WAP-Regeln (Web Application Firewall) abstimmen
- Fehlerbehebung
- Referenz der Sprache für benutzerdefinierte Regeln verwenden