Diese Seite enthält Informationen zum Konfigurieren von Google Cloud Armor-Sicherheitsrichtlinienregeln für die Bot-Verwaltung. Machen Sie sich vor dem Konfigurieren der Botverwaltung mit den Informationen unter Bot-Verwaltung – Übersicht vertraut.
Hinweise
In den folgenden Abschnitten werden alle IAM-Rollen und -Berechtigungen (Identity and Access Management) beschrieben, die zum Konfigurieren von Google Cloud Armor-Sicherheitsrichtlinien erforderlich sind. Für die Anwendungsfälle in diesem Dokument benötigen Sie nur die Berechtigungen compute.securityPolicies.create
und compute.securityPolicies.update
.
IAM-Berechtigungen für Google Cloud Armor-Sicherheitsrichtlinien einrichten
Für die folgenden Vorgänge ist die Rolle Compute Security Admin (roles/compute.securityAdmin
) für Identity and Access Management (IAM) erforderlich:
- Google Cloud Armor-Sicherheitsrichtlinie konfigurieren, ändern, aktualisieren und löschen
- Mit den folgenden API-Methoden:
SecurityPolicies insert
SecurityPolicies delete
SecurityPolicies patch
SecurityPolicies addRule
SecurityPolicies patchRule
SecurityPolicies removeRule
Ein Nutzer mit der Rolle „Compute Network Admin“ (roles/compute.networkAdmin
) kann die folgenden Vorgänge ausführen:
- Google Cloud Armor-Sicherheitsrichtlinie für einen Back-End-Dienst festlegen
- Mit den folgenden API-Methoden:
BackendServices setSecurityPolicy
BackendServices list
(nurgcloud
)
Nutzer mit der Rolle „Sicherheitsadministrator“ (roles/iam.securityAdmin
) und der Rolle „Compute-Netzwerkadministrator“ können Google Cloud Armor-Sicherheitsrichtlinien mit den SecurityPolicies
API-Methoden get
, list
und getRule
ansehen.
IAM-Berechtigungen für benutzerdefinierte Rollen einrichten
In der folgenden Tabelle sind die grundlegenden Berechtigungen der IAM-Rollen und die zugehörigen API-Methoden aufgeführt.
IAM-Berechtigung | API-Methoden |
---|---|
compute.securityPolicies.create |
SecurityPolicies insert |
compute.securityPolicies.delete |
SecurityPolicies delete |
compute.securityPolicies.get |
SecurityPolicies get SecurityPolicies getRule |
compute.securityPolicies.list |
SecurityPolicies list |
compute.securityPolicies.use |
BackendServices setSecurityPolicy |
compute.securityPolicies.update |
SecurityPolicies patch SecurityPolicies addRule SecurityPolicies patchRule SecurityPolicies removeRule |
compute.backendServices.setSecurityPolicy |
BackendServices setSecurityPolicy |
Manuelle reCAPTCHA-Herausforderungen zur Unterscheidung zwischen menschlichen und automatisierten Clients verwenden
Wenn Sie reCAPTCHA Enterprise mit Google Cloud Armor verwenden möchten, müssen Sie Ihren reCAPTCHA WAF-Websiteschlüssel (reCAPTCHA-Schlüssel) vom Typ CHALLENGEPAGE
mit einer Sicherheitsrichtlinie verknüpfen. Weitere Informationen zu reCAPTCHA-Schlüsseln finden Sie in der Übersicht zu reCAPTCHA-Schlüsseln.
Verwenden Sie den folgenden Befehl, um Ihren eigenen reCAPTCHA-Schlüssel mit einer Sicherheitsrichtlinie zu verknüpfen oder die Verknüpfung aufzuheben:
gcloud compute security-policies update SECURITY_POLICY \ --recaptcha-redirect-site-key SITE_KEY
Ersetzen Sie Folgendes:
SECURITY_POLICY
: der Name der SicherheitsrichtlinieSITE_KEY
: Ihr reCAPTCHA-CHALLENGEPAGE
-Schlüssel
reCAPTCHA-Schlüssel verknüpfen
Im folgenden Beispiel wird ein reCAPTCHA-Schlüssel mit einer Sicherheitsrichtlinie verknüpft. Der zugehörige reCAPTCHA-Schlüssel gilt für alle Regeln, die die Funktion für manuelle Identitätsbestätigung unter der jeweiligen Sicherheitsrichtlinie verwenden.
gcloud compute security-policies update SECURITY_POLICY \ --recaptcha-redirect-site-key "SITE_KEY"
Zuordnung eines reCAPTCHA-Schlüssels aufheben
Verwenden Sie den folgenden Befehl, um die Verknüpfung eines reCAPTCHA-Schlüssels mit einer Sicherheitsrichtlinie aufzuheben:
gcloud compute security-policies update SECURITY_POLICY \ --recaptcha-redirect-site-key ""
Traffic zur reCAPTCHA Enterprise-Bewertung weiterleiten
Wenn Sie Ihren reCAPTCHA-Schlüssel mit Ihrer Sicherheitsrichtlinie verknüpft haben, können Sie innerhalb dieser Richtlinie eine Regel erstellen, um den Traffic für die reCAPTCHA Enterprise-Bewertung intern umzuleiten. Verwenden Sie in der gcloud CLI das folgende Format, um Traffic umzuleiten:
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
Ersetzen Sie Folgendes:
PRIORITY
: die Priorität, mit der Sie die Regel erstellen möchtenSECURITY_POLICY
: der Name der SicherheitsrichtlinieEXPRESSION
: Der benutzerdefinierte Ausdruck der Regelsprache, der dem Traffic entspricht, für den Sie die reCAPTCHA-Bewertung erzwingen möchtenSRC_IP_RANGE
: ein IP-Adressbereich. Hiermit können Sie die reCAPTCHA-Bewertung für alle Anfragen aus diesem Bereich erzwingen.
Im folgenden Beispiel wird eine Regel erstellt, die den Traffic umleitet, der versucht, /login.html
im Rahmen einer manuellen reCAPTCHA Enterprise-Abfrage zu erreichen:
gcloud compute security-policies rules create 1000 \ --security-policy SECURITY_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.
Zum Extrahieren von Attributen aus einem reCAPTCHA Enterprise-Aktionstoken können Sie token.recaptcha_action.ATTRIBUTE
verwenden. Ersetzen Sie ATTRIBUTE
durch ein gültiges Tokenattribut in der Regelsprache von Google Cloud Armor.
Verwenden Sie auf ähnliche Weise token.recaptcha_session.ATTRIBUTE
, um Attribute aus einem reCAPTCHA Enterprise-Sitzungstoken zu extrahieren. Weitere Informationen zur Syntax der verfügbaren reCAPTCHA Enterprise-Tokenattribute finden Sie in der Referenz zur Sprache der Regeln.
Ein Aktionstoken kann von einer Webanwendung, einer iOS- oder einer Android-Anwendung stammen, ein Sitzungstoken hingegen nur von einer Webanwendung. Für jede Plattform ist ein separater reCAPTCHA-Schlüssel erforderlich. Die Ausdrücke token.recaptcha_action.ATTRIBUTE
und token.recaptcha_session.ATTRIBUTE
gelten für Tokens von einer dieser Plattformen. Um Tokens von verschiedenen Plattformen zu unterscheiden und Tokendiebstahl zu verhindern, empfehlen wir, bei der Konfiguration von Regeln, die diese Ausdrücke verwenden, reCAPTCHA-Schlüssel zu verknüpfen.
Beispiele
Im ersten Beispiel wird eine Regel erstellt, die Traffic-Targeting /login.html
mit einem reCAPTCHA Enterprise-Aktionstoken mit einem Wert von mindestens 0.8
zulässt.
gcloud compute security-policies rules create 1000 \ --security-policy SECURITY_POLICY \ --expression "request.path.matches(\"/login.html\") && token.recaptcha_action.score >= 0.8" \ --action allow
Das zweite Beispiel ist das gleiche wie das erste Beispiel, erfordert aber auch, dass das Aktionstoken mit einem reCAPTCHA-Schlüssel von example-site-key-1
oder example-site-key-2
ausgegeben wird:
gcloud compute security-policies rules create 1000 \ --security-policy SECURITY_POLICY \ --expression "request.path.matches(\"/login.html\") && token.recaptcha_action.score >= 0.8" \ --recaptcha-action-site-keys "example-site-key-1,example-site-key-2" \ --action allow
Im dritten Beispiel wird eine Regel erstellt, die Traffic-Targeting /login.html
mit einem reCAPTCHA Enterprise-Sitzungstoken, das mit dem reCAPTCHA-Schlüssel example-site-key-3
ausgestellt ist, und einem Wert von mindestens 0.8
zulässt.
gcloud compute security-policies rules create 1000 \ --security-policy SECURITY_POLICY \ --expression "request.path.matches(\"/login.html\") && token.recaptcha_session.score >= 0.8" \ --recaptcha-session-site-keys "example-site-key-3" \ --action allow
Weiterleitung (302-Antwort)
Verwenden Sie in der Google Cloud CLI das folgende Format, um eine Regel zum Weiterleiten von Traffic 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
Ersetzen Sie Folgendes:
PRIORITY
: die Priorität, mit der Sie die Regel erstellen möchtenSECURITY_POLICY
: der Name der SicherheitsrichtlinieEXPRESSION
: Der benutzerdefinierte Ausdruck der Regelsprache, der dem Traffic entspricht, für den Sie die reCAPTCHA-Bewertung erzwingen möchtenSRC_IP_RANGE
: ein IP-Adressbereich. Hiermit können Sie die reCAPTCHA-Bewertung für alle Anfragen aus diesem Bereich erzwingen.REDIRECT_URL
: URL, an die Zugriffe weitergeleitet werden sollen
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 SECURITY_POLICY \ --src-ip-ranges "10.10.10.0/24" \ --action redirect \ --redirect-type external-302 \ --redirect-target "https://www.example.com"
Anfrage gestalten
Wenn Sie eine Regel erstellen möchten, die Traffic zulässt, aber vor dem Senden an geschützte Back-Ends benutzerdefinierte Header und benutzerdefinierte statische Werte hinzufügt, verwenden Sie in der gcloud CLI das folgende Format:
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,...
Ersetzen Sie Folgendes:
PRIORITY
: die Priorität, mit der die Regel erstellt werden sollSECURITY_POLICY
: der Name der SicherheitsrichtlinieEXPRESSION
: Der benutzerdefinierte Ausdruck der Regelsprache, der dem Traffic entspricht, für den Sie die reCAPTCHA-Bewertung erzwingen möchtenSRC_IP_RANGE
: ein IP-Adressbereich. Hiermit können Sie die reCAPTCHA-Bewertung für alle Anfragen aus diesem Bereich erzwingen.HEADER_#
: der Name des Anfrageheaders, den Sie der Anfrage hinzufügen möchtenVALUE_#
: der Wert des Anfrageheaders, mit dem Sie die Anfrage versehen möchten
Im folgenden Beispiel wird eine Regel erstellt, die Traffic mit /login.html
zulässt, sofern die Anfrage auch einen reCAPTCHA Enterprise-Aktionstokenswert unter 0.2
hat.
gcloud compute security-policies rules create 1000 \ --security-policy SECURITY_POLICY \ --expression "request.path.matches("/login.html") && token.recaptcha_action.score < 0.2" \ --action allow \ --request-headers-to-add "reCAPTCHA-Warning=high"