Botverwaltung konfigurieren

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 (nur gcloud)

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 Sicherheitsrichtlinie
  • SITE_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öchten
  • SECURITY_POLICY: der Name der Sicherheitsrichtlinie
  • EXPRESSION: Der benutzerdefinierte Ausdruck der Regelsprache, der dem Traffic entspricht, für den Sie die reCAPTCHA-Bewertung erzwingen möchten
  • SRC_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öchten
  • SECURITY_POLICY: der Name der Sicherheitsrichtlinie
  • EXPRESSION: Der benutzerdefinierte Ausdruck der Regelsprache, der dem Traffic entspricht, für den Sie die reCAPTCHA-Bewertung erzwingen möchten
  • SRC_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 soll
  • SECURITY_POLICY: der Name der Sicherheitsrichtlinie
  • EXPRESSION: Der benutzerdefinierte Ausdruck der Regelsprache, der dem Traffic entspricht, für den Sie die reCAPTCHA-Bewertung erzwingen möchten
  • SRC_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öchten
  • VALUE_#: 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"

Nächste Schritte