Zarządzanie botami za pomocą Google Cloud Armor + reCAPTCHA

1. Wstęp

Równoważenie obciążenia Google Cloud HTTP(S) jest wdrażane na brzegu sieci Google w punktach dostępowych Google na całym świecie. Ruch użytkowników kierowany do systemu równoważenia obciążenia HTTP(S) trafia do punktu dostępu najbliższego użytkownikowi, a następnie obciążenie jest równoważone w globalnej sieci Google do najbliższego backendu, który ma wystarczającą wydajność.

Cloud Armor to opracowany przez Google system wykrywania rozproszonej odmowy usługi i zapory sieciowej aplikacji internetowej (WAF). Usługa Cloud Armor jest ściśle połączona z systemem równoważenia obciążenia HTTP Google Cloud i chroni aplikacje klientów Google Cloud przed atakami z internetu. reCAPTCHA Enterprise to usługa, która chroni witrynę przed spamem i nadużyciami, korzystając z dotychczasowego interfejsu reCAPTCHA API, który używa zaawansowanych technik analizy ryzyka do odróżniania ludzi od botów. Cloud Armor Bot Management to kompleksowe rozwiązanie integrujące wykrywanie botów reCAPTCHA Enterprise i ocenianie z egzekwowaniem zasad przez Cloud Armor na brzegu sieci w celu ochrony kolejnych aplikacji.

W tym module skonfigurujesz system równoważenia obciążenia HTTP z backendem, tak jak to widać na schemacie poniżej. Następnie dowiesz się, jak skonfigurować klucz witryny tokena sesji reCAPTCHA i umieścić go w swojej witrynie. Nauczysz się też konfigurować przekierowanie do ręcznego testu reCAPTCHA Enterprise. Następnie skonfigurujemy zasadę zarządzania botami Cloud Armor, aby zaprezentować, jak wykrywanie botów chroni Twoją aplikację przed ich złośliwymi ruchem.

8b46e6728996bc0c.png

Czego się nauczysz

  • Jak skonfigurować system równoważenia obciążenia HTTP z odpowiednimi kontrolami stanu.
  • Jak utworzyć klucz strony wyzwania reCAPTCHA WAF i powiązać go z zasadą zabezpieczeń Cloud Armor.
  • Jak utworzyć klucz witryny tokena sesji reCAPTCHA i zainstalować go na stronach internetowych.
  • Jak utworzyć zasadę zarządzania botami w Cloud Armor.
  • Jak sprawdzić, czy zasada zarządzania botami obsługuje ruch na podstawie skonfigurowanych reguł.

Czego potrzebujesz

  • Podstawowa znajomość sieci i znajomości protokołu HTTP
  • Podstawowa wiedza na temat wiersza poleceń systemu Unix/Linux.

2. Konfiguracja i wymagania

Samodzielne konfigurowanie środowiska

  1. Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub wykorzystaj już istniejący. Jeśli nie masz jeszcze konta Gmail ani Google Workspace, musisz je utworzyć.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • Nazwa projektu jest wyświetlaną nazwą uczestników tego projektu. To ciąg znaków, który nie jest używany przez interfejsy API Google i w każdej chwili możesz go zaktualizować.
  • Identyfikator projektu musi być unikalny we wszystkich projektach Google Cloud i nie można go zmienić (nie można go zmienić po ustawieniu). Cloud Console automatycznie generuje unikalny ciąg znaków. Zwykle nie jest to ważne. W większości ćwiczeń z programowania trzeba odwoływać się do identyfikatora projektu (który zwykle jest identyfikowany jako PROJECT_ID), więc jeśli Ci się nie podoba, wygeneruj kolejny losowy ciąg lub wypróbuj własny i sprawdź, czy jest dostępny. Po utworzeniu projektu jest on „zawieszony”.
  • Występuje trzecia wartość – numer projektu – używany przez niektóre interfejsy API. Więcej informacji o wszystkich 3 wartościach znajdziesz w dokumentacji.
  1. Następnie musisz włączyć płatności w konsoli Cloud, aby móc korzystać z zasobów i interfejsów API Cloud. Ukończenie tego ćwiczenia z programowania nie powinno kosztować zbyt wiele. Aby wyłączyć zasoby, aby nie naliczać opłat po zakończeniu tego samouczka, postępuj zgodnie z instrukcjami dotyczącymi czyszczenia, które znajdziesz na końcu tego samouczka. Nowi użytkownicy Google Cloud mogą skorzystać z programu bezpłatnego okresu próbnego o wartości 300 USD.

Uruchamianie Cloud Shell

Google Cloud można obsługiwać zdalnie z laptopa, ale w ramach tego ćwiczenia z programowania wykorzystasz Google Cloud Shell – środowisko wiersza poleceń działające w chmurze.

W konsoli GCP kliknij ikonę Cloud Shell na górnym pasku narzędzi:

55efc1aaa7a4d3ad.png

Uzyskanie dostępu do środowiska i połączenie się z nim powinno zająć tylko kilka chwil. Po zakończeniu powinno pojawić się coś takiego:

7ffe5cbb04455448.png

Ta maszyna wirtualna ma wszystkie potrzebne narzędzia dla programistów. Zawiera stały katalog domowy o pojemności 5 GB i działa w Google Cloud, znacząco zwiększając wydajność sieci i uwierzytelnianie. Wszystkie zadania w tym module możesz wykonać w przeglądarce.

Zanim zaczniesz

Sprawdź w Cloud Shell, czy identyfikator projektu jest skonfigurowany

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
PROJECT_ID=[YOUR-PROJECT-NAME]
echo $PROJECT_ID

włączyć interfejsy API,

Włącz wszystkie niezbędne usługi

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. Skonfiguruj reguły zapory sieciowej tak, aby przepuszczała ruch HTTP i SSH do backendów

Skonfiguruj reguły zapory sieciowej tak, aby przepuszczała ruch HTTP do backendów z kontroli stanu Google Cloud i systemu równoważenia obciążenia. Skonfiguruj też regułę zapory sieciowej, która umożliwi dostęp do instancji przez SSH.

Będziemy używać domyślnej sieci VPC utworzonej w Twoim projekcie. Utwórz regułę zapory sieciowej, która umożliwi ruch HTTP do backendów. Kontrola stanu wskazuje instancje systemu równoważenia obciążenia, które mogą otrzymywać nowe połączenia. Do równoważenia obciążenia HTTP kontrola stanu sonduje Twoje instancje o zrównoważonym obciążeniu, które pochodzą z adresów w zakresach: 130.211.0.0/22 i 35.191.0.0/16. Reguły zapory sieciowej VPC muszą zezwalać na te połączenia. Ponadto systemy równoważenia obciążenia komunikują się z backendem w tym samym zakresie adresów IP.

  1. W konsoli Google Cloud otwórz menu nawigacyjne ( mainmenu.png) i kliknij Sieć VPC > Zapora sieciowa.

131fb495c9242335.png

  1. Zwróć uwagę na istniejące reguły zapory sieciowej dotyczące ICMP, wewnętrznego, RDP i SSH.Każdy projekt Google Cloud rozpoczyna się od sieci default (domyślnej) oraz tych reguł zapory sieciowej.
  2. Kliknij Utwórz regułę zapory sieciowej.
  3. Ustaw te wartości, a wszystkie inne pozostaw domyślne:

Właściwość

Wartość (wpisz podaną wartość lub wybierz podaną opcję)

Nazwa

default-allow-health-check

Sieć

default

Cele

Określone tagi docelowe

Tagi docelowe

Kontrola stanu-zezwalających

Filtr źródeł

Zakresy adresów IP

Zakresy źródłowych IP

130.211.0.0/22, 35.191.0.0/16

Protokoły i porty

Określone protokoły i porty, a następnie zaznacz tcp. Wpisz 80 w przypadku numeru portu

  1. Kliknij Utwórz.

Możesz też używać wiersza poleceń gcloud. Poniżej znajdziesz polecenie:

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
  1. Podobnie utwórz regułę zapory sieciowej zezwalającą na łączenie się z instancjami przez SSH:
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. Konfigurowanie szablonów instancji i tworzenie zarządzanych grup instancji

Zarządzana grupa instancji używa szablonu do utworzenia grupy jednakowych instancji. Korzystając z nich, utwórz backend systemu równoważenia obciążenia HTTP.

Konfigurowanie szablonów instancji

Szablon instancji to zasób, którego możesz używać do tworzenia instancji maszyn wirtualnych oraz zarządzanych grup instancji. Szablony instancji określają typ maszyny, obraz dysku rozruchowego, podsieć, etykiety i inne właściwości instancji. Utwórz szablon instancji, jak opisano poniżej.

  1. W konsoli Cloud wybierz Menu nawigacyjne ( mainmenu.png) > Compute Engine > Szablony instancji, a następnie kliknij Utwórz szablon instancji.
  2. W polu Nazwa wpisz lb-backend-template.
  3. W polu Seria wybierz N1.
  4. Kliknij Sieć, dyski, zabezpieczenia, zarządzanie , jedyny najemca.

1d0b7122f4bb410d.png

  1. Przejdź do sekcji Zarządzanie i wstaw poniższy skrypt w polu Skrypt startowy.
#! /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
  1. Kliknij kartę Sieć i dodaj tagi sieci: allow-health-check.
  2. Ustaw te wartości, a wszystkie inne pozostaw domyślne:

Właściwość

Wartość (wpisz podaną wartość lub wybierz podaną opcję)

Sieć (w sekcji Interfejsy sieci)

default

Podsieć (w sekcji interfejsów sieci)

default (us-east1)

Tagi sieci

Kontrola stanu-zezwalających

  1. Kliknij Utwórz.
  2. Poczekaj, aż szablon instancji zostanie utworzony.

Tworzenie zarządzanej grupy instancji

  1. Będąc na stronie Compute Engine, w menu po lewej stronie kliknij Grupy instancji.

ed419061ad2b982c.png

  1. Kliknij Utwórz grupę instancji. Wybierz Nowa zarządzana grupa instancji (bezstanowa).
  2. Ustaw te wartości, a wszystkie inne pozostaw domyślne:

Właściwość

Wartość (wpisz podaną wartość lub wybierz podaną opcję)

Nazwa

lb-backend-przykład

Lokalizacja

1 strefa

Region

us-east1

Strefa

us-east1-b

Szablon instancji

szablon-lb-backend

Autoskalowanie

Bez autoskalowania

Liczba instancji

1

  1. Kliknij Utwórz.

Dodawanie nazwanego portu do grupy instancji

W przypadku grupy instancji zdefiniuj usługę HTTP i zmapuj nazwę portu na odpowiedni port. Usługa równoważenia obciążenia przekierowuje ruch na wskazany port.

gcloud compute instance-groups set-named-ports lb-backend-example \
    --named-ports http:80 \
    --zone us-east1-b

5. Konfigurowanie systemu równoważenia obciążenia HTTP

Skonfiguruj system równoważenia obciążenia HTTP, aby wysyłać ruch do backendu lb-backend-example:

Rozpoczynanie konfiguracji

  1. W konsoli Cloud kliknij Menu nawigacyjne ( mainmenu.png) > Usługi sieciowe > Równoważenie obciążenia, a następnie Utwórz system równoważenia obciążenia.
  2. W sekcji Równoważenie obciążenia HTTP(S) kliknij Rozpocznij konfigurację.

4f8b8cb10347ecec.png

  1. Wybierz Z internetu do moich maszyn wirtualnych, Klasyczny system równoważenia obciążenia HTTP(S) i kliknij Dalej.
  2. W polu Nazwa wpisz http-lb.

Konfigurowanie backendu

Usługi backendu kierują ruch przychodzący do co najmniej jednego z podłączonych backendów. Każdy backend składa się z grupy instancji i metadanych dotyczących dodatkowej obsługiwanej przepustowości.

  1. Kliknij Konfiguracja backendu.
  2. W obszarze Usługi backendu i zasobniki backendu kliknij Utwórz usługę backendu.
  3. Ustaw te wartości, a wszystkie inne pozostaw domyślne:

Właściwość

Wartość (wybierz podaną opcję)

Nazwa

http-backend

Protokół

HTTP

Nazwany port

HP

Grupa instancji

lb-backend-przykład

Numery portów

80

  1. Kliknij Gotowe.
  2. Kliknij Dodaj backend.
  3. W obszarze Kontrola stanu wybierz Utwórz kontrolę stanu.

168a9ba1062b1f45.png

  1. Ustaw te wartości, a wszystkie inne pozostaw domyślne:

Właściwość

Wartość (wybierz podaną opcję)

Nazwa

http-health-check

Protokół

TCP

Port

80

dc45bc726bb4dfad.png

  1. Kliknij Zapisz.
  2. Zaznacz pole Włącz logowanie.
  3. Ustaw Częstotliwość próbkowania na 1:

c8f884fa4a8cd50.png

  1. Kliknij Utwórz, aby utworzyć usługę backendu.

1fd2ad21b1d32a95.png

Konfigurowanie frontendu

Reguły hostów i ścieżek określają, w jaki sposób będzie kierowany ruch. Możesz na przykład skierować ruch wideo do jednego backendu, a ruch statyczny do innego. W tym module nie konfigurujesz jednak reguł hostów i ścieżek.

  1. Kliknij Konfiguracja frontendu.
  2. Określ te wartości, a wszystkie inne pozostaw domyślne:

Właściwość

Wartość (wpisz podaną wartość lub wybierz podaną opcję)

Protokół

HTTP

Wersja IP

IPv4

Adres IP

Efemeryczny

Port

80

  1. Kliknij Gotowe.

Przeglądanie i tworzenie wewnętrznego systemu równoważenia obciążenia

  1. Kliknij Przejrzyj i zakończ.

478e5e51057af3a3.png

  1. Przejrzyj Usługi backenduFrontend.
  2. Kliknij Utwórz.
  3. Poczekaj, aż system równoważenia obciążenia zostanie utworzony.
  4. Kliknij nazwę systemu równoważenia obciążenia (http-lb).
  5. Zapisz adres IPv4 systemu równoważenia obciążenia – przydadzą się do następnego zadania. Określamy go jako [LB_IP_v4].

6. Testowanie systemu równoważenia obciążenia HTTP

Masz już system równoważenia obciążenia HTTP dla swoich backendów. Sprawdź teraz, czy ruch jest przekierowywany do usługi backendu. Aby przetestować dostęp adresu IPv4 do systemu równoważenia obciążenia, otwórz nową kartę w przeglądarce i wejdź na stronę http://[LB_IP_v4]. Pamiętaj, aby zastąpić [LB_IP_v4] adresem IPv4 systemu równoważenia obciążenia.

7. Utwórz i wdróż token sesji reCAPTCHA oraz klucz witryny strony wyzwania

Integracja reCAPTCHA Enterprise dla WAF i Google Cloud Armor udostępnia następujące funkcje: stronę testu reCAPTCHA, tokeny działania reCAPTCHA i tokeny sesji reCAPTCHA. W tym module kodu wdrożymy klucz witryny tokena sesji reCATCHA i witrynę z wyzwaniem reCAPTCHA WAF.

Utwórz token sesji reCAPTCHA i klucz witryny zabezpieczającej WAF.

Zanim utworzysz klucz witryny tokena sesji i klucz witryny strony wyzwania, sprawdź, czy masz włączony interfejs reCAPTCHA Enterprise API w sposób podany w sekcji „Włącz API” na początku.

Po zakończeniu oceny kod JavaScript reCAPTCHA ustawia token sesji reCAPTCHA jako plik cookie w przeglądarce użytkownika. Przeglądarka użytkownika dołącza plik cookie i odświeża go, dopóki kod JavaScript reCAPTCHA pozostanie aktywny.

  1. Utwórz klucz witryny tokena sesji reCAPTCHA i włącz funkcję WAF dla tego klucza. Ustawimy również usługę WAF na Cloud Armor, aby umożliwić integrację z tą usługą.
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
  1. Dane wyjściowe powyższego polecenia zawierają utworzony klucz. Zanotuj je, ponieważ dodamy je do Twojej witryny w następnym kroku.
  2. Utwórz klucz witryny reCAPTCHA WAF i włącz funkcję WAF dla tego klucza. Za pomocą strony testu zabezpieczającego reCAPTCHA możesz przekierowywać przychodzące żądania do reCAPTCHA Enterprise, aby sprawdzić, czy każde z nich jest fałszywe lub wiarygodne. Później powiążemy ten klucz z zasadą zabezpieczeń Cloud Armor, aby włączyć weryfikację ręczną. W kolejnych krokach będziemy używać tego klucza jako 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
  1. Otwórz Menu nawigacyjne ( mainmenu.png) > Zabezpieczenia > reCAPTCHA Enterprise. Powinny być widoczne klucze utworzone przez Ciebie w sekcji Klucze Enterprise –

4e2567aae0eb92d7.png

Implementowanie klucza witryny tokena sesji reCAPTCHA

  1. Otwórz Menu nawigacyjne ( mainmenu.png) > Compute Engine > Instancje maszyn wirtualnych. Zlokalizuj maszynę wirtualną w grupie instancji i połącz się z nią przez SSH.

6d7b0fd12a667b5f.png

  1. Przejdź do katalogu głównego serwera WWW i zmień użytkownika na roota –
@lb-backend-example-4wmn:~$ cd /var/www/html/
@lb-backend-example-4wmn:/var/www/html$ sudo su
  1. Zaktualizuj stronę docelową index.html i umieść klucz witryny tokena sesji reCAPTCHA. Klucz witryny tokena sesji jest ustawiony w sekcji <head> strony docelowej jak poniżej:

<script src="https://www.google.com/recaptcha/enterprise.js?render=<PODAJ_TUTAJ_TOKEN>&waf=session" async defer></script>

Pamiętaj, aby zastąpić token przed aktualizacją pliku index.html w sposób opisany poniżej:

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
  1. Utwórz 3 inne przykładowe strony, aby przetestować zasady zarządzania botami:
  • dobry-wynik.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
  • zły-wynik.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
  1. Sprawdź, czy możesz uzyskać dostęp do wszystkich stron, otwierając je w przeglądarce. Pamiętaj, aby zastąpić [LB_IP_v4] adresem IPv4 systemu równoważenia obciążenia.
  • Wejdź na http://[LB_IP_v4]/index.html. Aby sprawdzić, czy implementacja reCAPTCHA działa, zobaczysz komunikat „Chronione przez reCAPTCHA” w prawym dolnym rogu strony.

d695ad23d91ae4e9.png

  • Kliknij każdy z linków.

4a2ad1b2f10b4c86.png

  • Sprawdź, czy masz dostęp do wszystkich stron.

481f63bf5e6f244.png

8. Tworzenie reguł zasad zabezpieczeń Cloud Armor na potrzeby zarządzania botami

W tej sekcji użyjesz reguł zarządzania botami Cloud Armor, aby zezwalać na żądania, odrzucać i przekierowywać żądania na podstawie wyniku reCAPTCHA. Pamiętaj, że przy tworzeniu klucza witryny tokena sesji ustawiasz wynik testu na 0,5.

  1. Utwórz zasadę zabezpieczeń w Cloud Shell(zobacz „Uruchamianie Cloud Shell” w sekcji „Konfiguracja i wymagania”, aby dowiedzieć się, jak używać Cloud Shell):
gcloud compute security-policies create recaptcha-policy \
    --description "policy for bot management"
  1. Aby używać ręcznego testu zabezpieczającego reCAPTCHA Enterprise do odróżniania klientów automatycznych od klientów automatycznych, powiąż klucz witryny wyzwania reCAPTCHA WAF, który utworzyliśmy na potrzeby ręcznego testowania z zasadą zabezpieczeń. Zastąp „CHALLENGE-PAGE-KEY” utworzonym kluczem –
gcloud compute security-policies update recaptcha-policy \
   --recaptcha-redirect-site-key "CHALLENGE-PAGE-KEY"
  1. Dodaj regułę zarządzania botami, aby zezwolić na ruch, jeśli ścieżka adresu URL pasuje do strony dobry-wynik.html i ma wynik większy niż 0,4.
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
  1. Dodaj regułę zarządzania botami, aby odrzucać ruch, jeśli ścieżka adresu URL pasuje do strony zły-wynik.html i ma wynik mniejszy niż 0,6.
  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"
  1. Dodaj regułę zarządzania botami, aby przekierowywać ruch do Google reCAPTCHA, jeśli ścieżka adresu URL jest zgodna z median-score.html i ma wynik równy 0,5
  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
  1. Dołącz zasadę zabezpieczeń do http-backend usługi backendu:
gcloud compute backend-services update http-backend \
    --security-policy recaptcha-policy –-global
  1. W konsoli otwórz Menu nawigacyjne > Bezpieczeństwo sieciowe > Cloud Armor.
  2. Kliknij reCAPTCHA-policy. Twoje zasady powinny wyglądać mniej więcej tak:

74852618aaa96786.png

9. Weryfikowanie zarządzania botami za pomocą Cloud Armor

  1. Otwórz przeglądarkę i wpisz adres URL http://[LB_IP_v4]/index.html. Kliknij „Otwórz link zezwalający”. Możesz zezwolić na:

edf3e6ca238d2ee7.png

  1. Otwórz nowe okno w trybie incognito, żeby mieć pewność, że będziemy mieli nową sesję. Wpisz adres URL http://[LB_IP_v4]/index.html i przejdź do sekcji „Otwórz zablokowany link”. Powinien wyświetlić się błąd HTTP 403 –

ecef5655b291dbb0.png

  1. Otwórz nowe okno w trybie incognito, żeby mieć pewność, że będziemy mieli nową sesję. Wpisz adres URL http://[LB_IP_v4]/index.html i przejdź do sekcji „Odwiedź link przekierowania”. Powinno wyświetlić się przekierowanie do Google reCAPTCHA i stronę z ręcznym testem zabezpieczającym, jak poniżej:

53ed2b4067b55436.png

Sprawdzanie logów Cloud Armor

Przejrzyj logi zasad zabezpieczeń, aby sprawdzić, czy zarządzanie botami działa zgodnie z oczekiwaniami.

  1. W konsoli otwórz Menu nawigacyjne > Bezpieczeństwo sieci > Cloud Armor.
  2. Kliknij recaptcha-policy.
  3. Kliknij Logi.

46fd825d8506d355.png

  1. Kliknij Wyświetl logi zasad.
  2. Poniżej znajduje się zapytanie MQL(monitoring query language), które możesz skopiować i wkleić do edytora zapytań:
resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:(recaptcha-policy)
  1. Teraz kliknij Uruchom.
  2. Poszukaj w sekcji Wyniki zapytania wpisu w dzienniku, w którym żądanie dotyczy adresu http://[LB_IP_v4]/good-score.html. Rozwiń jsonPayload.ExpandEnforceSecurityPolicy.

b7b1712642cf092b.png

  1. Powtórz te same czynności dla adresów http://[LB_IP_v4]/bad-score.html i http://[LB_IP_v4]/median-score.html

c28f96d83056725a.png

8c4803d75a77142c.png

Zwróć uwagę, że pole setupAction ma wartość ALLOW, DENY lub GOOGLE_RECAPTCHA i jest o nazwie recaptcha-policy.

Gratulacje! Udało Ci się ukończyć moduł dotyczący zarządzania botami za pomocą Cloud Armor

© 2020 Google LLC. Wszelkie prawa zastrzeżone. Google i logo Google są znakami towarowymi Google LLC. Wszelkie inne nazwy firm i produktów mogą być znakami towarowymi odpowiednich podmiotów, z którymi są powiązane.

10. Czyszczenie modułu

  1. Otwórz Bezpieczeństwo sieciowe >> Cloud Armor >> %ZASADY NAME% i wybierz „Usuń”.

2646f9c1df093f90.png

  1. Kliknij Sieć > Usługi sieciowe >> Równoważenie obciążenia. Wybierz utworzony system równoważenia obciążenia i kliknij Usuń.

8ad4f55dc06513f7.png

Wybierz usługę backendu i kontrolę stanu jako dodatkowe zasoby do usunięcia –

f6f02bb56add6420.png

  1. Otwórz Menu nawigacyjne ( mainmenu.png) > Compute Engine > Grupy instancji. Wybierz zarządzaną grupę instancji i kliknij Usuń –

2116b286954fd6.png

Potwierdź usunięcie, wpisując „delete” w polu tekstowym.

Poczekaj, aż zarządzana grupa instancji zostanie usunięta. Spowoduje to również usunięcie instancji w grupie. Szablony możesz usunąć dopiero po usunięciu grupy instancji.

  1. W panelu po lewej stronie otwórz Szablony instancji**.** Wybierz szablon instancji i kliknij Usuń.
  2. Kliknij Menu nawigacyjne ( mainmenu.png) > Sieć VPC > Zapora sieciowa. Wybierz reguły default-allow-health-check i allow-ssh, a potem kliknij Usuń.
  3. Otwórz Menu nawigacyjne ( mainmenu.png) > Zabezpieczenia > reCAPTCHA Enterprise. Wybierz utworzone klucze i usuń je. Potwierdź usunięcie, wpisując „DELETE” w polu tekstowym.

e71ecd11baf262ca.png

11. Gratulacje!

Udało Ci się wdrożyć zarządzanie botami za pomocą Cloud Armor. Masz już skonfigurowany system równoważenia obciążenia HTTP. Następnie udało Ci się utworzyć i wdrożyć klucz witryny tokena sesji reCAPTCHA na stronie internetowej. Nauczyliśmy się również, jak utworzyć klucz witryny strony wyzwania. Skonfigurowano zasadę zarządzania botem Cloud Armor i sprawdziłeś(-aś) sposób obsługi żądań na podstawie reguł. Udało Ci się też sprawdzić logi zasad zabezpieczeń, aby określić, dlaczego ruch był dozwolony, zablokowany lub przekierowany.

Omówione zagadnienia

  • Jak skonfigurować szablony instancji i tworzyć zarządzane grupy instancji.
  • Jak skonfigurować system równoważenia obciążenia HTTP.
  • Jak utworzyć zasadę zarządzania botami w Cloud Armor.
  • Jak utworzyć i wdrożyć klucz witryny tokena sesji reCAPTCHA
  • Jak utworzyć i wdrożyć klucz witryny wyzwania reCAPTCHA.
  • Jak sprawdzić, czy zasada zarządzania botami działa zgodnie z oczekiwaniami.

Dalsze kroki

  • Spróbuj skonfigurować tokeny działań reCAPTCHA.