Auf dieser Seite werden Beispielkonfigurationen für Sicherheitsrichtlinien für verschiedene Arten von Load-Balancern und Sicherheitsrichtlinien beschrieben.
Beispiele für Sicherheitsrichtlinien
Sicherheitsrichtlinien erstellen
Sie können Sicherheits richtlinien über die Cloud de Confiance Console oder die gcloud CLI erstellen. Bei den Anleitungen in diesem Abschnitt wird davon ausgegangen, dass Sie Sicherheitsrichtlinien konfigurieren, die auf einen vorhandenen globalen externen Application Load Balancer oder klassischen Application Load Balancer und Back-End-Dienst angewendet werden sollen. Ein Beispiel zum Ausfüllen der Felder finden Sie unter Beispiel erstellen.
Console
Erstellen Sie Cloud Armor-Sicherheitsrichtlinien und -regeln und hängen Sie eine Sicherheitsrichtlinie an einen Back-End-Dienst an:
Rufen Sie in der Cloud de Confiance Console die Seite Google Cloud Armor-Richtlinien auf.
Klicken Sie auf Richtlinien erstellen.
Geben Sie im Feld Name den Namen Ihrer Richtlinie ein.
Optional: Geben Sie eine Beschreibung der Richtlinie ein.
Wählen Sie als Richtlinientyp Backend-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 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:
- Standardmodus: 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 unter Sprachattribute für benutzerdefinierte Regeln konfigurieren.
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
Verwenden Sie den Befehl
gcloud compute security-policies create, um eine neue Cloud Armor-Sicherheitsrichtlinie zu erstellen.Verwenden Sie im Feld
typeden WertCLOUD_ARMOR, um eine Backend-Sicherheits richtlinie zu erstellen, oderCLOUD_ARMOR_EDGE, um eine Edge-Sicherheitsrichtlinie zu erstellen. Das Flagtypeist optional. Wenn kein Typ angegeben ist, wird standardmäßig eine Backend-Sicherheitsrichtlinie erstellt:gcloud compute security-policies create NAME \ [--type=CLOUD_ARMOR|CLOUD_ARMOR_EDGE] \ [--file-format=FILE_FORMAT | --description=DESCRIPTION] \ [--file-name=FILE_NAME]Ersetzen Sie Folgendes:
NAME: der Name der SicherheitsrichtlinieFILE_FORMAT: das Format der in--file-nameangegebenen Datei. Geben Sieyamloderjsonan.DESCRIPTION: die Beschreibung der SicherheitsrichtlinieFILE_NAME: der Name einer Datei, die einen YAML- oder JSON-Export der Sicherheitsrichtlinie enthält
Mit dem folgenden Befehl wird eine zuvor erstellte Richtlinie aktualisiert, das JSON-Parsen aktiviert und die Logging-Ebene in
VERBOSEgeändert:gcloud compute security-policies update my-policy \ --json-parsing=STANDARD \ --log-level=VERBOSEVerwenden Sie den Befehl
gcloud compute security-policies rules create PRIORITY, um einer Sicherheitsrichtlinie Regeln hinzuzufügen.gcloud compute security-policies rules create PRIORITY \ [--security-policy POLICY_NAME] \ [--description DESCRIPTION] \ --src-ip-ranges IP_RANGE,... | --expression EXPRESSION \ --action=[ allow | deny-403 | deny-404 | deny-502 ] \ [--preview]Ersetzen Sie Folgendes:
PRIORITY: die Priorität, die der Regel in der Richtlinie zugewiesen werden soll. Informationen zur Funktionsweise der Regelpriorität finden Sie unter Regelauswertungsreihenfolge.POLICY_NAME: der Name Ihrer SicherheitsrichtlinieDESCRIPTION: eine Beschreibung der RegelIP_RANGE,...: eine durch Kommas getrennte Liste von IP-AdressbereichenEXPRESSION: ein Ausdruck der Cloud Armor-Regelsprache
Der folgende Befehl fügt beispielsweise eine Regel hinzu, mit der Traffic von den IP-Adressbereichen
192.0.2.0/24und198.51.100.0/24blockiert wird. Die Regel hat die Priorität 1000 und ist eine Regel in der Richtliniemy-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
--previewhinzugefü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" \ --previewVerwenden Sie das Flag
--expression, um eine benutzerdefinierte Bedingung anzugeben. Weitere Informationen finden Sie unter Sprachattribute für benutzerdefinierte Regeln konfigurieren. Der folgende Befehl fügt eine Regel hinzu, die Traffic von der IP-Adresse1.2.3.4zulässt, und enthält den Stringexampleim 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('cookie_name=cookie_value')" \ --action "deny-403" \ --description "Cookie Block"Der folgende Befehl fügt eine Regel hinzu, um Anfragen aus der Region
AUzu 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
AUzu 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-403" \ --description "regex block"Der folgende Befehl fügt eine Regel zum Blockieren von Anfragen hinzu, wenn der Base64-decodierte Wert des Headers
user-ideinen 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 "evaluatePreconfiguredWaf('sqli-v422-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 "evaluatePreconfiguredWaf('sourceiplist-fastly')" \ --action "allow"
Sicherheitsrichtlinien für regionale externe Application Load Balancer konfigurieren
Dieser Abschnitt enthält Informationen zum Konfigurieren von Cloud Armor-Sicherheitsrichtlinien mit regionalem Geltungsbereich für regionale externe Application Load Balancer.
Regional ausgeglichene Arbeitslasten schützen
Führen Sie die folgenden Schritte aus, um eine Sicherheitsrichtlinie zum Schutz Ihres Back-End-Dienstes mit regionalem Geltungsbereich zu konfigurieren:
Erstellen Sie eine Sicherheitsrichtlinie mit regionalem Geltungsbereich.
gcloud compute security-policies create POLICY_NAME \ --type=CLOUD_ARMOR \ --region=REGIONErsetzen Sie Folgendes:
POLICY_NAME: der Name der SicherheitsrichtlinieREGION: die Region, in der die Sicherheitsrichtlinie erstellt werden soll
Hängen Sie die Sicherheitsrichtlinie mit regionalem Geltungsbereich an einen Back-End-Dienst mit regionalem Geltungsbereich an. Ersetzen Sie
BACKEND_NAMEdurch den Namen Ihres vorhandenen Back-End-Dienstes mit regionalem Geltungsbereich.gcloud compute backend-services update BACKEND_NAME \ --security-policy=POLICY_NAME \ --region=REGION
Cloud Armor-Sicherheitsrichtlinie mit regionalem Geltungsbereich anwenden
Nehmen wir an, Sie sind Sicherheitsadministrator und möchten eine Anforderung an den Standort erfüllen, dass alle Ihre Back-End-Arbeitslasten und WAF-Regeln in einer bestimmten Region bereitgestellt werden. Nehmen wir an, Sie haben Folgendes bereits getan:
- Sie haben in der Region Back-End-Dienste mit regionalem Geltungsbereich und Load-Balancing erstellt.
- Sie haben alle vorhandenen Sicherheitsrichtlinien mit globalem Geltungsbereich in Ihrer Bereitstellung deaktiviert.
- Sie haben in derselben Region eine Sicherheitsrichtlinie mit regionalem Geltungsbereich erstellt und angehängt (wie im vorherigen Abschnitt).
Sie können Ihrer Richtlinie WAF-Regeln und andere erweiterte Regeln hinzufügen und gleichzeitig die Anforderung erfüllen, indem Sie die folgenden Beispielbefehle verwenden:
Fügen Sie der Richtlinie eine WAF-Regel hinzu:
gcloud compute security-policies rules create 1000 --action=deny-404 \ --expression="evaluatePreconfiguredWaf('xss-v422-stable', ['owasp-crs-v042200-id941100-xss', 'owasp-crs-v042200-id941160-xss'])" \ --security-policy=POLICY_NAME \ --region=REGIONErsetzen Sie Folgendes:
POLICY_NAME: der Name der SicherheitsrichtlinieREGION: die Region der Sicherheitsrichtlinie
Fügen Sie der Richtlinie eine erweiterte Regel hinzu:
gcloud compute security-policies rules create 1000 --action=allow \ --expression="has(request.headers['cookie']) && request.headers['cookie'].contains('80=EXAMPLE')" \ --security-policy=POLICY_NAME \ --region=REGIONFügen Sie der Richtlinie eine Regel zur Ratenbegrenzung hinzu:
gcloud compute security-policies rules create 1000 --action=throttle \ --src-ip-ranges="1.1.1.1/32" \ --rate-limit-threshold-count=1000 \ --rate-limit-threshold-interval-sec=120 \ --conform-action="allow" \ --exceed-action="deny-429" \ --enforce-on-key=IP \ --ban-duration-sec=999 \ --ban-threshold-count=5000 \ --ban-threshold-interval-sec=60 \ --security-policy=POLICY_NAME \ --region=REGIONErsetzen Sie Folgendes:
POLICY_NAME: der Name der SicherheitsrichtlinieREGION: die Region der Sicherheitsrichtlinie
Nächste Schritte
- Cloud Armor-Sicherheitsrichtlinien konfigurieren
- Weitere Informationen zur Ratenbegrenzung.