Ograniczanie szybkości za pomocą Cloud Armor

1. Wprowadzenie

Równoważenie obciążenia Google Cloud HTTP(S) jest wdrażane na brzegu sieci Google w punktach dostępu 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 powiązana z systemem równoważenia obciążenia HTTP Google Cloud i umożliwia badanie ruchu przychodzącego w poszukiwaniu niechcianych żądań. Funkcja ograniczania liczby żądań w tej usłudze pozwala ograniczać ruch do zasobów backendu na podstawie liczby żądań i zapobiega wykorzystywaniu zasobów w sieci prywatnego środowiska wirtualnego w chmurze (VPC) przez niechciany ruch.

W tym module skonfigurujesz system równoważenia obciążenia HTTP z backendami globalnymi, tak jak to widać na schemacie poniżej. Następnie przetestujesz system równoważenia obciążenia w warunkach skrajnych i dodasz zasadę ograniczającą częstotliwość Cloud Armor, aby ograniczyć ruch trafiający do zasobów backendu.

2e1b99d22f4f32a.png

Czego się nauczysz

  • Jak skonfigurować system równoważenia obciążenia HTTP z odpowiednimi kontrolami stanu.
  • Jak utworzyć zasadę ograniczającą liczbę żądań Cloud Armor.
  • Sposób sprawdzania, czy zasada ograniczania liczby żądań blokuje ruch podczas wykonywania testu w warunkach skrajnych z maszyny wirtualnej.

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ć.

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.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 wygeneruje unikalny ciąg znaków. zwykle nieważne, co ona jest. W większości ćwiczeń w Codelabs musisz odwoływać się do identyfikatora projektu (który zwykle nazywa się PROJECT_ID), więc jeśli Ci się nie podoba, wygeneruj kolejny losowy projekt lub wypróbuj swój własny identyfikator i sprawdź, czy jest dostępny. Potem urządzenie jest „zawieszone”. po utworzeniu projektu.
  • 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, wykonaj czynności „wyczyść” znajdziesz na końcu tego ćwiczenia. 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:

bce75f34b2c53987.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:

f6ef2b5f13479f3a.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

3. Skonfiguruj reguły zapory sieciowej tak, aby przepuszczała ruch HTTP 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.

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 Cloud otwórz Menu nawigacyjne ( mainmenu.png) > Sieć VPC > Zapora sieciowa.

dbdf491e6d7863f3.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

http-server

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

  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 --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=http-server

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 backendy systemu równoważenia obciążenia HTTP.

Konfigurowanie szablonów instancji

Szablon instancji to zasób interfejsu API, którego możesz użyć do stworzenia instancji maszyny wirtualnej 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 po 1 szablonie instancji dla regionów us-east1europe-west1.

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

b60e2a44c3e4d50e.png

  1. Przejdź do sekcji Zarządzanie:

ee57f20ce55298fd.png

  1. W sekcji Metadane kliknij Dodaj element i podaj:

Klucz

Wartość

startup-script-url

gs://cloud-training/gcpnet/httplb/startup.sh

  1. Kliknij Sieci.
  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)

domyślna

Podsieć (w sekcji interfejsów sieci)

default (us-east1)

Tagi sieci

http-server

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

Teraz utwórz kolejny szablon instancji dla subnet-b, kopiując us-east1-template:

  1. Kliknij us-east1-template, a potem u góry wybierz opcję Kopiuj.
  2. W polu Nazwa wpisz europe-west1-template.
  3. Kliknij Sieć, dyski, zabezpieczenia, zarządzanie , jedyny najemca.
  4. Kliknij Sieci.
  5. W sekcji Interfejsy sieci edytuj interfejs domyślny. Jako Podsieć wybierz default (europe-west1).
  6. Kliknij Utwórz.

Tworzenie zarządzanych grup instancji

Utwórz zarządzaną grupę instancji w us-east1 i kolejną w europe-west1.

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

72319de055de3942.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

us-east1-mig

Lokalizacja

Wiele stref

Region

us-east4

Szablon instancji

us-east1-template

Autoskalowanie > Zasada autoskalowania > Kliknij ikonę ołówka > Typ danych

Wykorzystanie procesora

Docelowe wykorzystanie procesora

80, kliknij Gotowe.

Okres oczekiwania

45

Minimalna liczba instancji

1

Maksymalna liczba instancji

5

  1. Kliknij Utwórz.

Teraz powtórz te kroki, by utworzyć drugą grupę instancji dla europe-west1-migeurope-west1:

  1. Kliknij Utwórz grupę instancji.
  2. Ustaw te wartości, a wszystkie inne pozostaw domyślne:

Właściwość

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

Nazwa

europe-west1-mig

Lokalizacja

Wiele stref

Region

europe-west1

Szablon instancji

europe-west1-template

Autoskalowanie > Zasada autoskalowania > Kliknij ikonę ołówka > Typ danych

Wykorzystanie procesora

Docelowe wykorzystanie procesora

80, kliknij Gotowe.

Okres oczekiwania

45

Minimalna liczba instancji

1

Maksymalna liczba instancji

5

  1. Kliknij Utwórz.

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

Skonfiguruj system równoważenia obciążenia HTTP, aby zrównoważyć ruch między dwoma backendami (us-east1-mig w us-east1 i europe-west1-mig w europe-west1), tak jak na tym schemacie sieci:

2e1b99d22f4f32a.png

Rozpoczynanie konfiguracji

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

8197d8f041e8eafd.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

Grupa instancji

us-east1-mig

Numery portów

80

Tryb równoważenia

Częstotliwość żądań

Maksymalna liczba żądań/s

50 (na instancję)

Rozmiar

100

  1. Kliknij Gotowe.
  2. Kliknij Dodaj backend.
  3. Ustaw te wartości, a wszystkie inne pozostaw domyślne:

Właściwość

Wartość (wybierz podaną opcję)

Grupa instancji

europe-west1-mig

Numery portów

80

Tryb równoważenia

Wykorzystanie

Maksymalne wykorzystanie backendu

80

Rozmiar

100

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

199239806577ceac.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

20f7af9fce140475.png

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

dab4b15c13917786.png

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

2db64614f855f239.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.
  2. Kliknij Dodaj adres IP i port frontendu.
  3. 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

IPv6

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.

2c88715aa5f22800.png

  1. Przejrzyj Usługi backenduFrontend.

b2fffef90be309f0.png

  1. Kliknij Utwórz.
  2. Poczekaj, aż system równoważenia obciążenia zostanie utworzony.
  3. Kliknij nazwę systemu równoważenia obciążenia (http-lb).
  4. Zapisz adresy IPv4 i IPv6 systemu równoważenia obciążenia – przydadzą się do następnego zadania. Będą one nazywane odpowiednio [LB_IP_v4] i [LB_IP_v6].

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.

Uzyskiwanie dostępu do systemu równoważenia obciążenia HTTP

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.

Jeśli masz lokalny adres IPv6, wypróbuj adres IPv6 systemu równoważenia obciążenia, wchodząc na stronę http://[LB_IP_v6]. Pamiętaj, aby zastąpić [LB_IP_v6] adresem IPv6 systemu równoważenia obciążenia.

812d1fc75d9dfb3c.png

Testowanie systemu równoważenia obciążenia w warunkach skrajnych

Utwórz nową maszynę wirtualną, by symulować obciążenie systemu równoważenia obciążenia HTTP przy użyciu siege. Następnie, gdy obciążenie będzie wysokie, sprawdź, czy ruch pomiędzy oboma backendami jest zrównoważony.

  1. W konsoli wybierz Menu nawigacyjne ( mainmenu.png) > Compute Engine > Maszyny wirtualne.
  2. Kliknij Utwórz instancję.
  3. Ustaw te wartości, a wszystkie inne pozostaw domyślne:

Właściwość

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

Nazwa

siege-vm

Region

us-west1

Strefa

us-west1-c

Serie

N1

  1. Kliknij Utwórz.
  2. Poczekaj na utworzenie instancji siege-vm.
  3. Dla siege-vm kliknij SSH, aby włączyć terminal i się połączyć.
  4. Uruchom następujące polecenie, aby zainstalować siege:
sudo apt-get -y install siege
  1. Aby przechowywać adres IPv4 systemu równoważenia obciążenia HTTP w zmiennej środowiskowej, uruchom następujące polecenie, zastępując fragment [LB_IP_v4] adresem IPv4:
export LB_IP=[LB_IP_v4]
  1. Aby przeprowadzić symulację obciążenia, uruchom następujące polecenie:
siege -c 250 http://$LB_IP

Dane wyjściowe powinny wyglądać mniej więcej tak (nie kopiuj ich; to tylko przykład):

New configuration template added to /home/student/.siege
Run siege -C to view the current settings in that file
** SIEGE 4.0.4
** Preparing 250 concurrent users for battle.
The server is now under siege...
  1. W konsoli Cloud kliknij Menu nawigacyjne ( mainmenu.png), a następnie Usługi sieciowe > Równoważenie obciążenia.
  2. Kliknij http-lb.
  3. Kliknij kartę Monitorowanie. Przez 2–3 minuty monitoruj ruch między Ameryką Północną a dwoma backendami.

Najpierw ruch powinien zostać skierowany do us-east1-mig, ale przy wzroście liczby żądań na sekundę jest kierowany również do europe-west1-mig.

ead1e6d5c1f4cc4b.png

Pokazuje to, że domyślnie ruch jest przekierowywany do najbliższego backendu, ale jeśli obciążenie jest bardzo wysokie, może być rozprowadzany między backendami.

e5c6a657706c832c.png

  1. Wróć do terminala SSH instancji siege-vm.
  2. Naciśnij CTRL+C, by zatrzymać siege.

7. Utwórz zasadę ograniczania liczby żądań w Cloud Armor

W tej sekcji użyjesz Cloud Armor, aby odmówić siege-vm dostępu do systemu równoważenia obciążenia HTTP przez ustawienie zasady ograniczania liczby żądań.

  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 rate-limit-siege \
    --description "policy for rate limiting"
  1. Następnie dodaj regułę ograniczania liczby żądań:
gcloud beta compute security-policies rules create 100 \
    --security-policy=rate-limit-siege     \
    --expression="true" \
    --action=rate-based-ban                   \
    --rate-limit-threshold-count=50           \
    --rate-limit-threshold-interval-sec=120   \
    --ban-duration-sec=300           \
    --conform-action=allow           \
    --exceed-action=deny-404         \
    --enforce-on-key=IP
  1. Dołącz zasadę zabezpieczeń do http-backend usługi backendu:
gcloud compute backend-services update http-backend \
    --security-policy rate-limit-siege –-global
  1. W konsoli otwórz Menu nawigacyjne > Bezpieczeństwo sieciowe > Cloud Armor.
  2. Click rate-limit-siege. Twoje zasady powinny wyglądać mniej więcej tak:

8be87aa31c2ed74e.png

Sprawdzanie zasady zabezpieczeń

  1. Wróć do terminala SSH instancji siege-vm.
  2. Uruchom curl dla adresu IP systemu równoważenia obciążenia, aby sprawdzić, czy nadal możesz się z nim połączyć – powinno wyświetlić się odpowiedź 200.
curl http://$LB_IP
  1. Aby przeprowadzić symulację obciążenia, w terminalu SSH instancji siege-vm uruchom następujące polecenie:
siege -c 250 http://$LB_IP

Dane wyjściowe powinny wyglądać tak (nie kopiuj ich, to tylko przykłady):

** SIEGE 4.0.4
** Preparing 250 concurrent users for battle.
The server is now under siege...
  1. Sprawdź logi zasad zabezpieczeń, by określić, czy ruch również jest blokowany.
  2. W konsoli wybierz Menu nawigacyjne > Bezpieczeństwo sieciowe > Cloud Armor.
  3. Kliknij rate-limit-siege.
  4. Kliknij Logi.

f8be7c01c3d7c8f5.png

  1. Kliknij Wyświetl logi zasad.
  2. Na stronie Logowanie usuń cały tekst w podglądzie zapytań.
  3. Wybierz zasób jako System równoważenia obciążenia HTTP Cloud > http-lb-forwarding-rule > http-lb i kliknij Dodaj. Poniżej znajduje się też zapytanie MQL(monitoring query Language), które możesz skopiować i wkleić do edytora zapytań:
resource.type="http_load_balancer" resource.labels.forwarding_rule_name="http-lb-forwarding-rule" resource.labels.url_map_name="http-lb"
  1. Teraz kliknij Uruchom.
  2. Rozwiń wpis logu w wynikach zapytania.
  3. Rozwiń httpRequest. Żądanie powinno pochodzić z adresu IP instancji siege-vm. Jeśli tak nie jest, rozwiń kolejny wpis logu.
  4. Rozwiń jsonPayload.
  5. Rozwiń listę forceSecurityPolicy.

151f575ba7b3bde9.png

Zwróć uwagę, że pole setupAction ma wartość RATE_BASED_BAN o nazwie rate-limit-siege.

  1. Aby dodatkowo sprawdzić, czy tak jest, w Menu nawigacyjnym ( mainmenu.png) kliknij Usługi sieciowe > Równoważenie obciążenia. Kliknij http-lb. Kliknij kartę Monitorowanie.

ab9a8a66573a5ebd.png

Możesz to sprawdzić na wykresach. Pamiętaj też, że ruch ograniczony z częstotliwością nie dociera do backendu i jest blokowany przez zasadę Cloud Armor.

Gratulacje! Udało Ci się ukończyć moduł dotyczący ograniczania liczby żądań 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.

8. Czyszczenie modułu

  1. Przejdź do sekcji Bezpieczeństwo sieciowe >> Cloud Armor >> %POLICY NAME% i wybierz Usuń –

eeafa7cafa11c4c7.png

  1. Przejdź do Sieci >>. Usługi sieciowe >> Równoważenie obciążenia. Wybierz utworzony system równoważenia obciążenia i kliknij Usuń.

3886458f25cfbd36.png

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

a0193e91b2f4cb6f.png

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

5027d56977997f70.png

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

Poczekaj, aż zarządzane grupy instancji zostaną usunięte. 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 oba szablony instancji i kliknij Usuń.

8d88abacd32c11ce.png

  1. W panelu po lewej stronie otwórz Instancje maszyn wirtualnych**.** Wybierz wielokropek obok instancji siege-vm i kliknij Usuń.

2b58ab43695836e9.png

  1. Otwórz Menu nawigacyjne ( mainmenu.png) > Sieć VPC > Zapora sieciowa. Wybierz wartość default-allow-health-check, a potem kliknij delete (usuń).

561d5e771d36d85.png

9. Gratulacje!

Udało Ci się wdrożyć ograniczenie liczby żądań za pomocą Cloud Armor. Masz już skonfigurowany system równoważenia obciążenia HTTP z backendami w regionach us-east1 i europe-west1. Następnie przetestowałeś(-aś) system równoważenia obciążenia w warunkach skrajnych przy użyciu maszyny wirtualnej i umieściłeś(-aś) na liście odrzuconych adres IP przez ograniczenie liczby żądań za pomocą Cloud Armor. Udało Ci się też sprawdzić logi zasad zabezpieczeń, aby określić, dlaczego ruch był blokowany.

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ę ograniczającą liczbę żądań Cloud Armor.
  • Sposób sprawdzania, czy zasada ograniczania liczby żądań działa zgodnie z oczekiwaniami.

Dalsze kroki

  • Spróbuj skonfigurować zasadę ograniczania liczby żądań na podstawie źródłowego zakresu adresów IP. Przykładowe polecenie poniżej:
gcloud alpha compute security-policies rules create 105 \
    --security-policy sec-policy     \
    --src-ip-ranges "1.2.3.0/24"     \
    --action throttle                \
    --rate-limit-threshold-count 100 \
    --rate-limit-threshold-interval-sec 60 \
    --conform-action allow           \
    --exceed-action deny-429         \
    --enforce-on-key IP
  • Spróbuj skonfigurować zasadę ograniczania liczby żądań na podstawie kodu regionu. Przykładowe polecenie poniżej:
gcloud alpha compute security-policies rules create 101 \
    --security-policy sec-policy     \
    --expression "origin.region_code == 'US'" \
    --action rate-based-ban                 \
    --rate-limit-threshold-count 10         \
    --rate-limit-threshold-interval-sec 60  \
    --ban-duration-sec 300           \
    --ban-threshold-count 1000       \
    --ban-threshold-interval-sec 600 \
    --conform-action allow           \
    --exceed-action deny-403         \
    --enforce-on-key IP