Botverwaltung konfigurieren

Diese Seite enthält Informationen zum Konfigurieren von Google Cloud Armor Sicherheitsrichtlinienregeln für die Bot-Verwaltung. Bevor Sie die Bot-Verwaltung konfigurieren, sollten Sie 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, benötigen Sie nur die 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 Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) erforderlich Rolle „Compute-Sicherheitsadministrator“ (roles/compute.securityAdmin):

  • Google Cloud Armor konfigurieren, ändern, aktualisieren und löschen Sicherheitsrichtlinie
  • Mithilfe der folgenden API-Methoden: <ph type="x-smartling-placeholder">
      </ph>
    • SecurityPolicies insert
    • SecurityPolicies delete
    • SecurityPolicies patch
    • SecurityPolicies addRule
    • SecurityPolicies patchRule
    • SecurityPolicies removeRule

Einen Nutzer mit der Rolle „Compute-Netzwerkadministrator“ (roles/compute.networkAdmin) kann folgende Vorgänge ausführen:

  • Google Cloud Armor-Sicherheitsrichtlinie für einen Back-End-Dienst festlegen
  • Mithilfe der folgenden API-Methoden: <ph type="x-smartling-placeholder">
      </ph>
    • BackendServices setSecurityPolicy
    • BackendServices list (nur gcloud)

Nutzer mit der Rolle „Sicherheitsadministrator“ (roles/iam.securityAdmin) und die Rolle „Compute Network Admin“ kann die Google Cloud Armor-Sicherheit ansehen mithilfe der SecurityPolicies API-Methoden get, list und getRule.

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 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. Die Der zugehörige reCAPTCHA-Schlüssel gilt für alle Regeln, für die die manuelle Bestätigung verwendet wird unter der jeweiligen Sicherheitsrichtlinie.

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

Wenn Sie Ihren reCAPTCHA-Schlüssel mit Ihrer Sicherheitsrichtlinie verknüpft haben, können Sie Erstellen Sie eine Regel innerhalb dieser Richtlinie, um den Traffic intern umzuleiten reCAPTCHA-Bewertung. Verwenden Sie das folgende Format im gcloud CLI, 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
  • SECURITY_POLICY: der Name der Sicherheitsrichtlinie
  • EXPRESSION: der Ausdruck der benutzerdefinierten Regelsprache, der stimmt mit dem Traffic überein, für den Sie die reCAPTCHA-Bewertung erzwingen möchten
  • SRC_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, sehen Sie sich die Bot-Verwaltung finden Sie die Voraussetzungen für die Verwendung von reCAPTCHA-Aktionstokens oder Sitzungstokens.

Zum Extrahieren von Attributen aus einem reCAPTCHA-Aktionstoken können Sie Folgendes verwenden: token.recaptcha_action.ATTRIBUTE Ersetzen ATTRIBUTE mit einem gültigen Tokenattribut in der Google Cloud Armor-Regelsprache. Gleichermaßen 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 aus einer Webanwendung, einer iOS-App oder eine Android-App, während ein Sitzungstoken nur aus einer . 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 aus jede dieser Plattformen. Um Tokens von verschiedenen Plattformen zu unterscheiden Um Tokendiebstahl zu verhindern, sollten Sie reCAPTCHA-Schlüssel verknüpfen, wenn Sie Regeln konfigurieren, die diese Ausdrücke verwenden.

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-Targeting /login.html, mit einem reCAPTCHA-Sitzungstoken, das mit dem reCAPTCHA-Schlüssel von example-site-key-3, mit einem Wert von mindestens 0.8.

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 Regel
  • SECURITY_POLICY: der Name der Sicherheitsrichtlinie
  • EXPRESSION: der Ausdruck der benutzerdefinierten Regelsprache, der stimmt mit dem Traffic überein, für den Sie die reCAPTCHA-Bewertung erzwingen möchten
  • SRC_IP_RANGE ist ein IP-Adressbereich. Hiermit können Sie die reCAPTCHA-Bewertung für alle Anfragen aus diesem Bereich.
  • REDIRECT_URL: die URL, zu der Sie weiterleiten möchten Verkehr

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 das Element erstellen möchten die Regel
  • SECURITY_POLICY: der Name der Sicherheitsrichtlinie
  • EXPRESSION: der Ausdruck der benutzerdefinierten Regelsprache, der stimmt mit dem Traffic überein, für den Sie die reCAPTCHA-Bewertung erzwingen möchten
  • SRC_IP_RANGE ist ein IP-Adressbereich. Hiermit können Sie die reCAPTCHA-Bewertung für alle Anfragen aus diesem Bereich.
  • HEADER_#: der Name des Anfrageheaders, mit dem möchten Sie die Anfrage dekorieren,
  • VALUE_#: der Wert des Anfrageheaders, mit dem möchten Sie die Anfrage dekorieren,

Im folgenden Beispiel wird eine Regel erstellt, die Traffic-Targeting /login.html, solange die Anfrage auch einen reCAPTCHA-Aktionstokenwert hat niedriger als 0.2.

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