1. Einführung
Das HTTP(S)-Load-Balancing von Google Cloud wird weltweit in den Points of Presence (POPs) von Google bereitgestellt. Der an einen HTTP(S) Load Balancer geleitete Nutzertraffic gelangt in den POP, der dem Nutzer am nächsten liegt, und wird dann über das globale Google-Netzwerk auf das nächstgelegene Backend mit ausreichender Kapazität verteilt.
Cloud Armor ist das WAF-Erkennungssystem (Distributed Denial of Service und Web Application Firewall) von Google. Cloud Armor ist eng mit dem Google Cloud-HTTP-Load-Balancer gekoppelt und schützt Anwendungen von Google Cloud-Kunden vor Angriffen aus dem Internet. reCAPTCHA Enterprise ist ein Dienst, der Ihre Website vor Spam und Missbrauch schützt. Er baut auf der bestehenden reCAPTCHA API auf, die erweiterte Risikoanalyseverfahren verwendet, um Menschen und Bots voneinander zu unterscheiden. Cloud Armor Bot Management bietet eine End-to-End-Lösung, die die Bot-Erkennung und -Bewertung von reCAPTCHA Enterprise mit Erzwingung durch Cloud Armor am Rand des Netzwerks zum Schutz von nachgelagerten Anwendungen integriert.
In diesem Lab konfigurieren Sie einen HTTP-Load-Balancer mit einem Back-End, wie im folgenden Diagramm dargestellt. Anschließend erfahren Sie, wie Sie einen Websiteschlüssel mit reCAPTCHA-Sitzungstokens einrichten und auf Ihrer Website einbetten. Außerdem erfahren Sie, wie Sie die Weiterleitung zur manuellen reCAPTCHA Enterprise-Abfrage einrichten. Anschließend konfigurieren wir eine Cloud Armor-Bot-Verwaltungsrichtlinie, um zu demonstrieren, wie die Bot-Erkennung Ihre Anwendung vor schädlichen Bot-Traffic schützt.
Aufgaben in diesem Lab
- Hier erfahren Sie, wie Sie einen HTTP-Load-Balancer mit entsprechenden Systemdiagnosen einrichten.
- So erstellen Sie einen reCAPTCHA-WAF-Websiteschlüssel für die Challenge-Seite und verknüpfen ihn mit der Cloud Armor-Sicherheitsrichtlinie.
- Websiteschlüssel mit reCAPTCHA-Sitzungstokens erstellen und auf Ihren Webseiten installieren
- Anleitung zum Erstellen einer Cloud Armor-Bot-Verwaltungsrichtlinie.
- So prüfen Sie, ob die Bot-Verwaltungsrichtlinie Traffic anhand der konfigurierten Regeln verarbeitet.
Voraussetzungen
- Grundkenntnisse in Netzwerken und HTTP-Kenntnissen
- Grundkenntnisse zu Unix/Linux-Befehlszeilen
2. Einrichtung und Anforderungen
Umgebung für das selbstbestimmte Lernen einrichten
- Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes Projekt. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie eines erstellen.
- Der Projektname ist der Anzeigename für die Projektteilnehmer. Es handelt sich um eine Zeichenfolge, die von Google APIs nicht verwendet wird und jederzeit aktualisiert werden kann.
- Die Projekt-ID muss für alle Google Cloud-Projekte eindeutig sein und ist unveränderlich. Sie kann nach dem Festlegen nicht mehr geändert werden. Die Cloud Console generiert automatisch einen eindeutigen String. ist Ihnen meist egal, was es ist. In den meisten Codelabs musst du auf die Projekt-ID verweisen, die in der Regel als
PROJECT_ID
identifiziert wird. Wenn es dir nicht gefällt, kannst du eine weitere zufällige Projekt-ID generieren. Du kannst aber auch selbst eine andere testen, um zu sehen, ob sie verfügbar ist. Dann ist es „eingefroren“ nachdem das Projekt erstellt wurde. - Es gibt einen dritten Wert, die Projektnummer, die von einigen APIs verwendet wird. Weitere Informationen zu allen drei Werten finden Sie in der Dokumentation.
- Als Nächstes müssen Sie in der Cloud Console die Abrechnung aktivieren, um Cloud-Ressourcen/APIs verwenden zu können. Dieses Codelab sollte möglichst wenig kosten. Wenn Sie Ressourcen beenden möchten, damit über diese Anleitung hinaus keine Kosten anfallen, führen Sie eine Bereinigung durch am Ende des Codelabs. Neue Google Cloud-Nutzer haben Anspruch auf eine kostenlose Testversion mit 300$Guthaben.
Cloud Shell starten
Sie können Google Cloud zwar von Ihrem Laptop aus der Ferne bedienen, in diesem Codelab verwenden Sie jedoch Google Cloud Shell, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.
Klicken Sie in der GCP Console oben rechts in der Symbolleiste auf das Cloud Shell-Symbol:
Die Bereitstellung und Verbindung mit der Umgebung dauert nur einen Moment. Wenn er abgeschlossen ist, sollten Sie in etwa Folgendes sehen:
Diese virtuelle Maschine verfügt über sämtliche Entwicklertools, die Sie benötigen. Es bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud, wodurch die Netzwerkleistung und Authentifizierung erheblich verbessert werden. Sie können alle Aufgaben in diesem Lab ganz einfach in einem Browser erledigen.
Hinweis
Prüfen Sie in Cloud Shell, ob Ihre Projekt-ID eingerichtet ist
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] PROJECT_ID=[YOUR-PROJECT-NAME] echo $PROJECT_ID
APIs aktivieren
Alle erforderlichen Dienste aktivieren
gcloud services enable compute.googleapis.com gcloud services enable logging.googleapis.com gcloud services enable monitoring.googleapis.com gcloud services enable recaptchaenterprise.googleapis.com
3. Firewallregeln konfigurieren, um HTTP- und SSH-Traffic zu Back-Ends zuzulassen
Konfigurieren Sie Firewallregeln, um HTTP-Traffic von den Google Cloud-Systemdiagnosen und dem Load-Balancer an die Back-Ends zuzulassen. Konfigurieren Sie außerdem eine Firewallregel, um SSH-Verbindungen zu den Instanzen zuzulassen.
Wir verwenden das in Ihrem Projekt erstellte VPC-Netzwerk default. Erstellen Sie eine Firewallregel, um HTTP-Traffic an die Backends zuzulassen. Mit Systemdiagnosen wird ermittelt, zu welchen Instanzen eines Load Balancers neue Verbindungen aufgebaut werden können. Beim HTTP-Load-Balancing werden die Systemdiagnosetests für Ihre Instanzen mit Load-Balancing über Adressen in den Bereichen 130.211.0.0/22 und 35.191.0.0/16 durchgeführt. Ihre VPC-Firewallregeln müssen diese Verbindungen zulassen. Außerdem kommunizieren die Load-Balancer im selben IP-Bereich mit dem Back-End.
- Öffnen Sie in der Cloud Console das Navigationsmenü ( ) > VPC-Netzwerk > Firewall:
- Beachten Sie die vorhandenen Firewallregeln für ICMP, internal, RDP und SSH.Jedes Google Cloud-Projekt beginnt mit dem Netzwerk default und diesen Firewallregeln.
- Klicken Sie auf Firewallregel erstellen.
- Legen Sie die folgenden Werte fest und übernehmen Sie für alle anderen die Standardeinstellung:
Attribut | Wert (Wert eingeben oder Option auswählen) |
Name | default-allow-health-check |
Netzwerk | default |
Ziele | Angegebene Ziel-Tags |
Zieltags | allow-health-check |
Quellfilter | IP-Bereiche |
Quell-IP-Bereiche | 130.211.0.0/22, 35.191.0.0/16 |
Protokolle und Ports | Angegebene Protokolle und Ports. Klicken Sie dann das Kästchen "tcp" an. Geben Sie 80 als Portnummer ein |
- Klicken Sie auf Erstellen.
Alternativ, wenn Sie die gcloud-Befehlszeile verwenden. Hier ist der Befehl:
gcloud compute firewall-rules create default-allow-health-check --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:80 --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=allow-health-check
- Erstellen Sie in ähnlicher Weise eine Firewallregel, um SSH-Verbindungen zu den Instanzen zuzulassen:
gcloud compute firewall-rules create allow-ssh --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:22 --source-ranges=0.0.0.0/0 --target-tags=allow-health-check
4. Instanzvorlagen konfigurieren und verwaltete Instanzgruppen erstellen
Mit einer Instanzvorlage kann in einer verwalteten Instanzgruppe eine Gruppe identischer Instanzen eingerichtet werden. Erstellen Sie damit das Back-End des HTTP-Load-Balancers.
Instanzvorlagen konfigurieren
Eine Instanzvorlage ist eine Ressource, mit der Sie VM-Instanzen und verwaltete Instanzgruppen erstellen können. In Instanzvorlagen sind Maschinentyp, Image des Bootlaufwerks, Subnetz, Labels und andere Instanzattribute definiert. Erstellen Sie eine Instanzvorlage wie unten angegeben.
- Öffnen Sie in der Cloud Console das Navigationsmenü ( ) > Compute Engine > Instanzvorlagen und klicken Sie dann auf Instanzvorlage erstellen.
- Geben Sie unter Name den String lb-backend-template ein.
- Wählen Sie unter Reihe die Option N1 aus.
- Klicken Sie auf Netzwerk, Laufwerke, Sicherheit, Verwaltung , einzelne Mandanten.
- Gehen Sie zum Bereich Verwaltung und fügen Sie das folgende Skript in das Feld Startskript ein.
#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" sudo echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html
- Klicken Sie auf den Tab Netzwerk und fügen Sie die Netzwerk-Tags hinzu: allow-health-check.
- Legen Sie die folgenden Werte fest und übernehmen Sie für alle anderen die Standardeinstellung:
Attribut | Wert (Wert eingeben oder Option auswählen) |
Netzwerk (unter Netzwerkschnittstellen) | Standard |
Subnetz (unter „Netzwerkschnittstellen“) | default (us-east1) |
Netzwerk-Tags | allow-health-check |
- Klicken Sie auf Erstellen.
- Warten Sie, bis die Instanzvorlage erstellt wurde.
Verwaltete Instanzgruppe erstellen
- Klicken Sie ebenfalls auf der Seite Compute Engine im linken Menü auf Instanzgruppen.
- Klicken Sie auf Instanzgruppe erstellen. Wählen Sie Neue verwaltete Instanzgruppe (zustandslos) aus.
- Legen Sie die folgenden Werte fest und übernehmen Sie für alle anderen Werte die Standardeinstellung:
Attribut | Wert (Wert eingeben oder Option auswählen) |
Name | lb-Backend-Beispiel |
Standort | Einzelne Zone |
Region | us-east1 |
Zone | us-east1-b |
Instanzvorlage | lb-backend-template |
Autoscaling | Kein Autoscaling |
Anzahl der Instanzen | 1 |
- Klicken Sie auf Erstellen.
Benannten Port zur Instanzgruppe hinzufügen
Definieren Sie für die Instanzgruppe einen HTTP-Dienst und ordnen Sie dem entsprechenden Port einen Portnamen zu. Der Load-Balancing-Dienst leitet den Traffic an den benannten Port weiter.
gcloud compute instance-groups set-named-ports lb-backend-example \ --named-ports http:80 \ --zone us-east1-b
5. HTTP Load Balancer konfigurieren
Konfigurieren Sie den HTTP-Load-Balancer so, dass Traffic an Ihr Back-End gesendet wird lb-backend-example::
Konfiguration starten
- Klicken Sie in der Cloud Console auf das Navigationsmenü ( ) > Klicken Sie auf Netzwerkdienste > Load-Balancing und dann auf Load-Balancer erstellen.
- Klicken Sie unter HTTP(S) Load Balancing (HTTP(S)-Load-Balancing) auf Start configuration (Konfiguration starten).
- Wählen Sie Vom Internet zu meinen VMs, Klassischer HTTP(S)-Load-Balancer aus und klicken Sie auf Weiter.
- Legen Sie als Name http-lb fest.
Backend konfigurieren
Backend-Dienste leiten eingehenden Traffic an ein oder mehrere verknüpfte Backends weiter. Jedes Backend besteht aus einer Instanzgruppe und zusätzlichen Metadaten zur Kapazität.
- Klicken Sie auf Backend-Konfiguration.
- Klicken Sie unter Backend-Dienste und Backend-Buckets auf Backend-Dienst erstellen.
- Legen Sie die folgenden Werte fest und übernehmen Sie für alle anderen die Standardeinstellung:
Attribut | Wert (Option wie angegeben auswählen) |
Name | http-backend |
Protokoll | HTTP |
Benannter Port | htp |
Instanzgruppe | lb-Backend-Beispiel |
Portnummern | 80 |
- Klicken Sie auf Fertig.
- Klicken Sie auf Backend hinzufügen.
- Klicken Sie unter Systemdiagnose auf Systemdiagnose erstellen.
- Legen Sie die folgenden Werte fest und übernehmen Sie für alle anderen Werte die Standardeinstellung:
Attribut | Wert (Option wie angegeben auswählen) |
Name | http-health-check |
Protokoll | TCP |
Port | 80 |
- Klicken Sie auf Speichern.
- Klicken Sie auf das Kästchen für Logging aktivieren.
- Legen Sie die Abtastrate auf 1 fest:
- Klicken Sie auf Erstellen, um den Backend-Dienst zu erstellen.
Frontend konfigurieren
Host- und Pfadregeln bestimmen, wohin Ihr Traffic weitergeleitet wird. Sie könnten beispielsweise Traffic, der durch Videos entsteht, an ein Backend weiterleiten und Traffic, der aus statischen Daten entsteht, an ein anderes Backend. Allerdings konfigurieren wir in diesem Lab keine Host- und Pfadregeln.
- Klicken Sie auf Frontend-Konfiguration.
- Legen Sie die folgenden Werte fest und übernehmen Sie für alle anderen die Standardeinstellungen:
Attribut | Wert (Wert eingeben oder Option auswählen) |
Protokoll | HTTP |
IP-Version | IPv4 |
IP-Adresse | Sitzungsspezifisch |
Port | 80 |
- Klicken Sie auf Fertig.
HTTP-Load-Balancer prüfen und erstellen
- Klicken Sie auf Prüfen und abschließen.
- Prüfen Sie die Backend-Dienste und das Frontend.
- Klicken Sie auf Erstellen.
- Warten Sie, bis der Load Balancer erstellt ist.
- Klicken Sie auf den Namen des Load Balancers (http-lb).
- Notieren Sie sich die IPv4-Adresse des Load-Balancers für die nächste Aufgabe. Wir bezeichnen sie als [LB_IP_v4].
6. HTTP Load Balancer testen
Nachdem Sie einen HTTP Load Balancer für Ihre Backends erstellt haben, prüfen Sie nun, ob der Traffic über den Backend-Service weitergeleitet wird. Öffnen Sie einen neuen Tab im Browser und rufen Sie http://[LB_IP_v4] auf, um den IPv4-Zugriff auf den HTTP Load Balancer zu testen. Ersetzen Sie [LB_IP_v4] durch die IPv4-Adresse des Load-Balancers.
7. reCAPTCHA-Sitzungstoken und Websiteschlüssel für die Identitätsseite erstellen und bereitstellen
Die Integration von reCAPTCHA Enterprise for WAF und Google Cloud Armor bietet die folgenden Funktionen: reCAPTCHA-Herausforderungsseite, reCAPTCHA-Aktionstokens und reCAPTCHA-Sitzungstokens. In diesem Code-Lab implementieren wir den Websiteschlüssel für reCATCHA-Sitzungstoken und die reCAPTCHA-WAF-Website für die Challenge.
Erstellen Sie ein reCAPTCHA-Sitzungstoken und WAF-Websiteschlüssel für die Challenge-Seite
Bevor Sie den Websiteschlüssel für das Sitzungstoken und den Websiteschlüssel für die Challenge-Seite erstellen, prüfen Sie, ob Sie die reCAPTCHA Enterprise API wie unter „API aktivieren“ angegeben aktiviert haben beginnen.
Das reCAPTCHA-JavaScript legt nach der Bewertung ein reCAPTCHA-Sitzungstoken als Cookie im Browser des Endnutzers fest. Der Browser des Endnutzers hängt das Cookie an und aktualisiert es, solange das reCAPTCHA-JavaScript aktiv bleibt.
- Erstellen Sie den Websiteschlüssel des reCAPTCHA-Sitzungstokens und aktivieren Sie das WAF-Feature für den Schlüssel. Außerdem legen wir den WAF-Dienst auf Cloud Armor fest, um die Cloud Armor-Integration zu aktivieren.
gcloud recaptcha keys create --display-name=test-key-name \ --web --allow-all-domains --integration-type=score --testing-score=0.5 \ --waf-feature=session-token --waf-service=ca
- Die Ausgabe des obigen Befehls liefert den erstellten Schlüssel. Notieren Sie sich diese, da wir sie im nächsten Schritt zu Ihrer Website hinzufügen werden.
- Erstellen Sie den Websiteschlüssel für reCAPTCHA WAF-Herausforderungen und aktivieren Sie die WAF-Funktion für den Schlüssel. Sie können die Funktion für die reCAPTCHA-Abfrageseite verwenden, um eingehende Anfragen an reCAPTCHA Enterprise weiterzuleiten, um festzustellen, ob eine Anfrage potenziell betrügerisch oder legitim ist. Wir verknüpfen diesen Schlüssel später mit der Cloud Armor-Sicherheitsrichtlinie, um die manuelle Identitätsbestätigung zu ermöglichen. Wir bezeichnen diesen Schlüssel in den späteren Schritten als CHALLENGE-PAGE-KEY.
gcloud recaptcha keys create --display-name=challenge-page-key \ --web --allow-all-domains --integration-type=INVISIBLE \ --waf-feature=challenge-page --waf-service=ca
- Gehen Sie zum Navigationsmenü ( ) > Sicherheit > reCAPTCHA Enterprise. Die von Ihnen erstellten Schlüssel sollten unter Enterprise Keys –
Websiteschlüssel für reCAPTCHA-Sitzungstoken implementieren
- Gehen Sie zum Navigationsmenü ( ) > Compute Engine > VM-Instanzen: Suchen Sie die VM in der Instanzgruppe und stellen Sie eine SSH-Verbindung zu ihr her.
- Gehen Sie zum Stammverzeichnis des Webservers und ändern Sie "user" in "root".
@lb-backend-example-4wmn:~$ cd /var/www/html/ @lb-backend-example-4wmn:/var/www/html$ sudo su
- Aktualisieren Sie die Landingpage-Seite „index.html“ und betten Sie den Websiteschlüssel für das reCAPTCHA-Sitzungstoken ein. Der Websiteschlüssel des Sitzungstokens wird im <head>-Abschnitt Ihrer Landingpage festgelegt:
<script src="https://www.google.com/recaptcha/enterprise.js?render=<REPLACE_TOKEN_HERE>&waf=session" async defer></script>
Denken Sie daran, das Token zu ersetzen, bevor Sie die Datei „index.html“ wie unten angegeben aktualisieren:
root@lb-backend-example-4wmn:/var/www/html# echo '<!doctype html><html><head><title>ReCAPTCHA Session Token</title><script src="https://www.google.com/recaptcha/enterprise.js?render=<REPLACE_TOKEN_HERE>&waf=session" async defer></script></head><body><h1>Main Page</h1><p><a href="/good-score.html">Visit allowed link</a></p><p><a href="/bad-score.html">Visit blocked link</a></p><p><a href="/median-score.html">Visit redirect link</a></p></body></html>' > index.html
- Erstellen Sie drei weitere Beispielseiten, um die Richtlinien für die Bot-Verwaltung zu testen:
- gute-score.html
root@lb-backend-example-4wmn:/var/www/html# echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>Congrats! You have a good score!!</h1></body></html>' > good-score.html
- bad-score.html
root@lb-backend-example-4wmn:/var/www/html# echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>Sorry, You have a bad score!</h1></body></html>' > bad-score.html
- median-score.html
root@lb-backend-example-4wmn:/var/www/html# echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>You have a median score that we need a second verification.</h1></body></html>' > median-score.html
- Prüfen Sie, ob alle Webseiten zugänglich sind, indem Sie sie in Ihrem Browser öffnen. Ersetzen Sie [LB_IP_v4] durch die IPv4-Adresse des Load-Balancers.
- Öffnen Sie http://[LB_IP_v4]/index.html. Sie können überprüfen, ob die reCAPTCHA-Implementierung funktioniert, wenn Sie „Durch reCAPTCHA geschützt“ sehen. unten rechts auf der Seite
- Klicken Sie auf die einzelnen Links.
- Prüfen Sie, ob Sie auf alle Seiten zugreifen können.
8. Cloud Armor-Sicherheitsrichtlinienregeln für die Bot-Verwaltung erstellen
In diesem Abschnitt verwenden Sie Cloud Armor-Bot-Verwaltungsregeln, um Anfragen basierend auf dem reCAPTCHA-Wert zuzulassen, abzulehnen und weiterzuleiten. Denken Sie daran, dass Sie beim Erstellen des Websiteschlüssels für das Sitzungstoken einen Testwert von 0,5 festgelegt haben.
- Erstellen Sie in Cloud Shell eine Sicherheitsrichtlinie über gcloud. Eine Anleitung zur Verwendung von Cloud Shell finden Sie im Abschnitt Cloud Shell starten unter Einrichtung und Anforderungen:
gcloud compute security-policies create recaptcha-policy \ --description "policy for bot management"
- Wenn Sie die manuelle reCAPTCHA Enterprise-Abfrage verwenden möchten, um zwischen menschlichen und automatisierten Clients zu unterscheiden, verknüpfen Sie den Websiteschlüssel für reCAPTCHA WAF-Herausforderungen, den wir für die manuelle Identitätsbestätigung erstellt haben, mit der Sicherheitsrichtlinie. Ersetzen Sie „CHALLENGE-PAGE-KEY“ mit dem von uns erstellten Schlüssel –
gcloud compute security-policies update recaptcha-policy \ --recaptcha-redirect-site-key "CHALLENGE-PAGE-KEY"
- Fügen Sie eine Regel zur Bot-Verwaltung hinzu, um Traffic zuzulassen, wenn der URL-Pfad mit good-score.html übereinstimmt und einen Wert über 0,4 hat.
gcloud compute security-policies rules create 2000 \ --security-policy recaptcha-policy\ --expression "request.path.matches('good-score.html') && token.recaptcha_session.score > 0.4"\ --action allow
- Fügen Sie eine Bot-Verwaltungsregel hinzu, um Traffic abzulehnen, wenn der URL-Pfad mit bad-score.html übereinstimmt und einen Wert unter 0,6 hat.
gcloud compute security-policies rules create 3000 \ --security-policy recaptcha-policy\ --expression "request.path.matches('bad-score.html') && token.recaptcha_session.score < 0.6"\ --action "deny-403"
- Fügen Sie eine Bot-Verwaltungsregel hinzu, um Traffic an Google reCAPTCHA weiterzuleiten, wenn der URL-Pfad mit median-score.html übereinstimmt und einen Wert von 0,5 hat
gcloud compute security-policies rules create 1000 \ --security-policy recaptcha-policy\ --expression "request.path.matches('median-score.html') && token.recaptcha_session.score == 0.5"\ --action redirect \ --redirect-type google-recaptcha
- Hängen Sie die Sicherheitsrichtlinie an den Back-End-Dienst "http-backend" an:
gcloud compute backend-services update http-backend \ --security-policy recaptcha-policy –-global
- Öffnen Sie in der Konsole das Navigationsmenü > Netzwerksicherheit > Cloud Armor
- Klicken Sie auf „recaptcha-policy“. Ihre Richtlinie sollte in etwa so aussehen:
9. Bot-Verwaltung mit Cloud Armor validieren
- Öffnen Sie einen Browser und geben Sie die URL http://[LB_IP_v4]/index.html ein. Gehen Sie zu „Link zum Zulassen“. Sie sollten durch –
- Öffnen Sie ein neues Fenster im Inkognitomodus, damit eine neue Sitzung beginnt. Geben Sie die URL http://[LB_IP_v4]/index.html ein und navigieren Sie zu "Blockierten Link besuchen". Sie sollten den HTTP-Fehler 403 erhalten:
- Öffnen Sie ein neues Fenster im Inkognitomodus, damit eine neue Sitzung beginnt. Geben Sie die URL http://[LB_IP_v4]/index.html ein und gehen Sie zu "Weiterleitungslink aufrufen". Sie sollten die Weiterleitung zu Google reCAPTCHA und die Seite für manuelle Fragen wie unten sehen:
Cloud Armor-Logs überprüfen
Sehen Sie sich die Logs der Sicherheitsrichtlinien an, um zu prüfen, ob die Bot-Verwaltung wie erwartet funktioniert hat.
- Gehen Sie in der Konsole zum Navigationsmenü > Netzwerksicherheit > Cloud Armor
- Klicken Sie auf recaptcha-policy.
- Klicken Sie auf Logs.
- Klicken Sie auf Richtlinienlogs ansehen.
- Unten sehen Sie die MQL-Abfrage(Monitoring Query Language), die Sie kopieren und in den Query Editer einfügen können:
resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:(recaptcha-policy)
- Klicken Sie jetzt auf Abfrage ausführen.
- Suchen Sie in den Abfrageergebnissen nach einem Protokolleintrag, in dem sich die Anfrage auf http://[LB_IP_v4]/good-score.html bezieht. Maximieren Sie „jsonPayload.Expand erzwungenSecurityPolicy“.
- Wiederhole das Gleiche für http://[LB_IP_v4]/bad-score.html und http://[LB_IP_v4]/median-score.html
Die konfigurierte Aktion ist auf ALLOW, DENY oder GOOGLE_RECAPTCHA und den Namen recaptcha-policy gesetzt.
Glückwunsch! Sie haben dieses Lab zur Bot-Verwaltung mit Cloud Armor abgeschlossen
© 2020 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.
10. Lab-Bereinigen
- Navigieren Sie zu Netzwerksicherheit >> Wolkenrüstung >> %POLICY NAME% und wählen Sie „Löschen“ aus.
- Gehen Sie zu Netzwerk >> Netzwerkdienste >> Load-Balancing. Wählen Sie den erstellten Load-Balancer aus und klicken Sie auf „Löschen“.
Wählen Sie den Back-End-Dienst und die Systemdiagnose als zusätzliche Ressourcen aus, die gelöscht werden sollen.
- Gehen Sie zum Navigationsmenü ( ) > Compute Engine > Instanzgruppen: Wählen Sie die verwaltete Instanzgruppe aus und klicken Sie auf "Löschen".
Bestätigen Sie das Löschen, indem Sie „delete“ eingeben in das Textfeld ein.
Warten Sie, bis die verwaltete Instanzgruppe gelöscht ist. Dadurch wird auch die Instanz in der Gruppe gelöscht. Sie können die Vorlagen erst löschen, nachdem die Instanzgruppe gelöscht wurde.
- Klicken Sie im linken Bereich auf Instanzvorlagen.** Wählen Sie die Instanzvorlage aus und klicken Sie auf Löschen.
- Gehen Sie zum Navigationsmenü ( ) > VPC-Netzwerk > Firewall: Wählen Sie die Regeln „default-allow-health-check“ und „allow-ssh“ aus und klicken Sie auf „Löschen“.
- Gehen Sie zum Navigationsmenü ( ) > Sicherheit > reCAPTCHA Enterprise. Wählen Sie die erstellten Schlüssel aus und löschen Sie sie. Bestätigen Sie das Löschen, indem Sie „DELETE“ eingeben in das Textfeld ein.
11. Glückwunsch!
Sie haben die Bot-Verwaltung mit Cloud Armor erfolgreich implementiert. Sie haben einen HTTP-Load-Balancer konfiguriert. Anschließend haben Sie den Websiteschlüssel für reCAPTCHA-Sitzungstokens auf einer Webseite erstellt und implementiert. Außerdem haben Sie gelernt, wie Sie einen Websiteschlüssel für die Challenge erstellen. Sie haben die Cloud Armor-Bot-Verwaltungsrichtlinie eingerichtet und anhand der Regeln validiert, wie Anfragen verarbeitet werden. Sie konnten die Protokolle der Sicherheitsrichtlinien untersuchen, um herauszufinden, warum der Traffic zugelassen, blockiert oder weitergeleitet wurde.
Behandelte Themen
- Hier erfahren Sie, wie Sie Instanzvorlagen einrichten und verwaltete Instanzgruppen erstellen.
- HTTP-Load-Balancer einrichten
- Anleitung zum Erstellen einer Cloud Armor-Bot-Verwaltungsrichtlinie.
- Websiteschlüssel für reCAPTCHA-Sitzungstokens erstellen und implementieren.
- Websiteschlüssel für reCAPTCHA-Herausforderungen erstellen und implementieren
- Prüfen, ob die Richtlinie zur Bot-Verwaltung wie vorgesehen funktioniert
Weiteres Vorgehen
- Richten Sie reCAPTCHA-Aktionstokens ein.