Diese Seite enthält Informationen zum Konfigurieren von Google Cloud Armor Sicherheitsrichtlinienregeln für die Botverwaltung. Bevor Sie die Bot-Verwaltung konfigurieren, sollten Sie sich mit den Informationen in der Bot-Verwaltung.
Hinweise
In den folgenden Abschnitten werden alle IAM-Rollen (Identity and Access Management) und
Berechtigungen, die zum Konfigurieren von Google Cloud Armor-Sicherheitsrichtlinien erforderlich sind. Für
die Anwendungsfälle in diesem Dokument entsprechen,
compute.securityPolicies.create
und compute.securityPolicies.update
Berechtigungen.
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 die Identitäts- und Zugriffsverwaltung (IAM) erforderlich:
- Google Cloud Armor konfigurieren, ändern, aktualisieren und löschen Sicherheitsrichtlinie
- 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 |
Verwenden Sie eine manuelle reCAPTCHA-Aufgabe, um zwischen menschlichen und automatisierten Clients zu unterscheiden
Wenn Sie reCAPTCHA mit Google Cloud Armor verwenden möchten, müssen Sie
Ihren reCAPTCHA WAF-Websiteschlüssel (reCAPTCHA-Schlüssel) vom Typ CHALLENGEPAGE
mit einem
Sicherheitsrichtlinie. Weitere Informationen zu reCAPTCHA-Schlüsseln finden Sie in der
Übersicht über reCAPTCHA-Schlüssel.
Um Ihren eigenen reCAPTCHA-Schlüssel mit einer Sicherheitsrichtlinie zu verknüpfen oder die Verknüpfung aufzuheben, verwenden Sie folgenden Befehl:
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 einer Sicherheitsrichtlinie zugeordnet. Der zugehörige reCAPTCHA-Schlüssel gilt für alle Regeln, die die manuelle Aufgabe gemäß der angegebenen Sicherheitsrichtlinie verwenden.
gcloud compute security-policies update SECURITY_POLICY \ --recaptcha-redirect-site-key "SITE_KEY"
Verknüpfung 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 für reCAPTCHA-Bewertung weiterleiten
Nachdem Sie Ihren reCAPTCHA-Schlüssel mit Ihrer Sicherheitsrichtlinie verknüpft haben, können Sie in dieser Richtlinie eine Regel erstellen, um Traffic intern für die reCAPTCHA-Bewertung weiterzuleiten. Verwenden Sie das folgende Format in der gcloud CLI, um Traffic weiterzuleiten:
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 Klasse erstellen möchten. RegelSECURITY_POLICY
: der Name der SicherheitsrichtlinieEXPRESSION
: der Ausdruck der benutzerdefinierten Regelsprache, der stimmt mit dem Traffic überein, für den Sie die reCAPTCHA-Bewertung erzwingen möchtenSRC_IP_RANGE
ist ein IP-Adressbereich. Hiermit können Sie die reCAPTCHA-Bewertung für alle Anfragen aus diesem Bereich.
Im folgenden Beispiel wird eine Regel erstellt, die Traffic weiterleitet, der
/login.html
für eine manuelle reCAPTCHA-Aufgabe:
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-Bewertung erzwingen
Bevor Sie fortfahren, lesen Sie sich in der Übersicht über die Bot-Verwaltung die Voraussetzungen zur Verwendung von reCAPTCHA-Aktions- oder Sitzungs-Tokens durch.
Zum Extrahieren von Attributen aus einem reCAPTCHA-Aktionstoken können Sie Folgendes verwenden:
token.recaptcha_action.ATTRIBUTE
Ersetzen Sie ATTRIBUTE
durch ein gültiges Tokenattribut in der Regelsprache von Google Cloud Armor.
Ebenso können Sie token.recaptcha_session.ATTRIBUTE
verwenden, um Attribute aus einem reCAPTCHA-Sitzungstoken zu extrahieren. Weitere Informationen
Informationen zur Syntax des verfügbaren reCAPTCHA-Tokens
finden Sie in der
Referenz zur Sprache für Regeln
Ein Aktionstoken kann von einer Webanwendung, einer iOS-Anwendung oder einer Android-Anwendung stammen, während ein Sitzungstoken nur von einer Webanwendung stammen kann. 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 jeder dieser Plattformen. Um Tokens von verschiedenen Plattformen zu unterscheiden und Tokendiebstahl zu verhindern, empfehlen wir, reCAPTCHA-Schlüssel zuzuordnen, wenn Sie Regeln mit diesen Ausdrücken konfigurieren.
Beispiele
Im ersten Beispiel wird eine Regel erstellt, die das Traffic-Targeting zulässt
/login.html
mit einem reCAPTCHA-Aktionstoken mit folgendem Wert:
mindestens 0.8
.
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 dasselbe wie das erste, aber es muss auch Folgendes angegeben werden:
Das Aktionstoken wird mit dem reCAPTCHA-Schlüssel example-site-key-1
oder
example-site-key-2
:
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 zu /login.html
mit einem reCAPTCHA-Sitzungstoken zulässt, das mit einem reCAPTCHA-Schlüssel von example-site-key-3
ausgestellt wurde und einen Score von mindestens 0.8
hat.
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 die Methode im folgenden Format in der Google Cloud CLI:
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 Klasse erstellen möchten. RegelSECURITY_POLICY
: der Name der SicherheitsrichtlinieEXPRESSION
: Der Sprachausdruck für benutzerdefinierte Regeln, der den Traffic abgleicht, für den die reCAPTCHA-Bewertung erzwungen werden sollSRC_IP_RANGE
ist ein IP-Adressbereich. Mit dieser Option können Sie die reCAPTCHA-Bewertung für alle Anfragen aus diesem Bereich erzwingen.REDIRECT_URL
: die URL, an die der Traffic weitergeleitet werden soll
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
Um eine Regel zu erstellen, die Traffic zulässt, aber benutzerdefinierte Header und benutzerdefinierte statische Werte, bevor Sie sie an geschützte Back-Ends senden, verwenden Sie Folgendes: 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 allow \ --request-headers-to-add HEADER_1=VALUE_1,HEADER_2=VALUE_2,...
Ersetzen Sie Folgendes:
PRIORITY
: die Priorität, mit der Sie die Regel erstellen möchtenSECURITY_POLICY
: der Name der SicherheitsrichtlinieEXPRESSION
: der Ausdruck der benutzerdefinierten Regelsprache, der stimmt mit dem Traffic überein, für den Sie die reCAPTCHA-Bewertung erzwingen möchtenSRC_IP_RANGE
ist ein IP-Adressbereich. Hiermit können Sie die reCAPTCHA-Bewertung für alle Anfragen aus diesem Bereich.HEADER_#
: Name der Anfrage-Header, mit der Sie die Anfrage dekorieren möchtenVALUE_#
: Wert des Anfrageheaders, mit dem Sie die Anfrage dekorieren möchten
Im folgenden Beispiel wird eine Regel erstellt, die Traffic zu /login.html
zulässt, sofern die Anfrage auch ein reCAPTCHA-Aktionstoken mit einem Score von weniger als 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"