Cloud Armor ile Hız Sınırlama

1. Giriş

Google Cloud HTTP(S) yük dengeleme işlemi, Google'ın dünya çapındaki varlık noktalarında (POP) yer alan ağının ucunda dağıtılır. HTTP(S) yük dengeleyiciye yönlendirilen kullanıcı trafiği, kullanıcıya en yakın varlık noktasına girer, ardından Google'ın global ağı üzerinden yeterli kapasiteye sahip en yakın arka uca doğru yük dengelemesi yapılır.

Cloud Armor, Google'ın dağıtılmış hizmet reddi ve web uygulaması güvenlik duvarı (WAF) algılama sistemidir. Cloud Armor, Google Cloud HTTP yük dengeleyici ile sıkı bir şekilde bağlantılıdır ve gelen trafiği istenmeyen istekler için sorgulamanıza olanak tanır. Bu hizmetin sıklık sınırlama özelliği, istek hacmine göre arka uç kaynaklarına yönelik trafiği azaltmanıza olanak tanır ve istenmeyen trafiğin sanal özel bulut (VPC) ağınızdaki kaynakları tüketmesini engeller.

Bu laboratuvarda, global arka uçlara sahip bir HTTP yük dengeleyiciyi aşağıdaki şemada gösterildiği gibi yapılandıracaksınız. Ardından, Yük Dengeleyiciye stres testi uygulayacak ve arka uç kaynaklarınıza ulaşan trafiği sınırlamak için Cloud Armor sıklık sınırlaması politikası ekleyeceksiniz.

2e1b99d22f4f32a.png

Neler öğreneceksiniz?

  • Uygun durum denetimleriyle HTTP yük dengeleyiciyi ayarlama
  • Cloud Armor sıklık sınırlaması politikası oluşturma
  • Bir sanal makineden yük testi çalıştırırken sıklık sınırlama politikasının trafiği engellediğini doğrulama

Gerekenler

  • Temel ağ iletişimi ve HTTP bilgisi
  • Temel düzeyde Unix/Linux komut satırı bilgisi

2. Kurulum ve Gereksinimler

Yönlendirmesiz ortam kurulumu

  1. Google Cloud Console'da oturum açın ve yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

  • Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizisidir ve istediğiniz zaman güncelleyebilirsiniz.
  • Proje kimliği, tüm Google Cloud projelerinde benzersiz olmalı ve sabittir (ayarlandıktan sonra değiştirilemez). Cloud Console, benzersiz bir dizeyi otomatik olarak oluşturur. Genellikle bu dizenin ne olduğuyla ilgilenmezsiniz. Çoğu codelab'de proje kimliğine (genellikle PROJECT_ID olarak tanımlanır) başvurmanız gerekir. Bu nedenle, beğenmezseniz başka bir rastgele kimlik oluşturabilir veya kendi kimliğinizi deneyip kullanılabilir olup olmadığını görebilirsiniz. Proje oluşturulduktan sonra bu değer "dondurulur".
  • Bazı API'lerin kullandığı üçüncü bir değer olan Proje Numarası da vardır. Bu üç değer hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
  1. Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i tamamlamak neredeyse hiç maliyetli değildir. Bu eğitimin ötesinde faturalandırma ücreti alınmaması için kaynakları kapatmak üzere codelab'in sonunda bulunan "temizleme" talimatlarını uygulayın. Google Cloud'un yeni kullanıcıları 300 ABD doları değerinde ücretsiz deneme programından yararlanabilir.

Cloud Shell'i başlatma

Google Cloud, dizüstü bilgisayarınızdan uzaktan çalıştırılabilir. Ancak bu codelab'de, Cloud'da çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.

GCP Console'da sağ üstteki araç çubuğunda Cloud Shell simgesini tıklayın:

bce75f34b2c53987.png

Ortamın temel hazırlığı ve bağlanması yalnızca birkaç dakikanızı alır. İşlem tamamlandığında aşağıdakine benzer bir sonuç görürsünüz:

f6ef2b5f13479f3a.png

Bu sanal makine, ihtiyaç duyacağınız tüm geliştirme araçlarını içerir. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Bu sayede ağ performansı ve kimlik doğrulama önemli ölçüde güçlenir. Bu laboratuvardaki çalışmalarınızın tamamını yalnızca bir tarayıcı kullanarak yapabilirsiniz.

Başlamadan önce

Cloud Shell'de proje kimliğinizin ayarlandığından emin olun.

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

API'leri etkinleştirme

Gerekli tüm hizmetleri etkinleştirin

gcloud services enable compute.googleapis.com
gcloud services enable logging.googleapis.com
gcloud services enable monitoring.googleapis.com

3. Arka uçlara HTTP trafiğine izin vermek için güvenlik duvarı kurallarını yapılandırma

Google Cloud durum denetimlerinden ve yük dengeleyiciden arka uçlara giden HTTP trafiğine izin vermek için güvenlik duvarı kurallarını yapılandırın.

Projenizde oluşturulan varsayılan VPC ağı kullanılacaktır. Arka uçlara giden HTTP trafiğine izin vermek için bir güvenlik duvarı kuralı oluşturun. Durum denetimleri, yük dengeleyicinin hangi örneklerinin yeni bağlantılar alabileceğini belirler. Durum denetimi, HTTP yük dengeleme için 130.211.0.0/22 ve 35.191.0.0/16 aralığındaki adreslerden gelen yük dengeli örneklerinizde durum kontrolü yapar. VPC güvenlik duvarı kurallarınız bu bağlantılara izin vermelidir. Ayrıca, yük dengeleyiciler arka uçla aynı IP aralığında iletişim kurar.

  1. Cloud Console'da Gezinme menüsü ( mainmenu.png) > VPC ağı > Güvenlik duvarı'na gidin.

dbdf491e6d7863f3.png

  1. Mevcut ICMP, internal (dahili), RDP ve SSH güvenlik duvarı kurallarını görürsünüz.Her Google Cloud projesi default (varsayılan) ağ ve bu güvenlik duvarı kurallarıyla başlar.
  2. Güvenlik Duvarı Kuralı Oluştur'u tıklayın.
  3. Aşağıdaki değerleri ayarlayın ve diğer tüm değerleri varsayılan haliyle bırakın:

Özellik

Değer (değeri yazın veya belirtilen seçeneği belirleyin)

Name (Ad)

default-allow-health-check

Network (Ağ)

default

Targets (Hedefler)

Specified target tags (Belirtilen hedef etiketler)

Target tags (Hedef etiketler)

http-server

Kaynak filtresi

IP Aralıkları

Kaynak IP aralıkları

130.211.0.0/22, 35.191.0.0/16

Protokoller ve bağlantı noktaları

Protokolleri ve bağlantı noktalarını belirtin, ardından TCP'yi işaretleyin.

  1. Oluştur'u tıklayın.

Alternatif olarak, gcloud komut satırını kullanıyorsanız. Komut aşağıda verilmiştir:

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. Örnek şablonlarını yapılandırma ve yönetilen örnek grupları oluşturma

Yönetilen örnek grupları, aynı örnekleri içeren bir grup oluşturmak için örnek şablonlarını kullanır. HTTP yük dengeleyicinin arka uçlarını oluşturmak için bunları kullanın.

Örnek şablonlarını yapılandırma

Örnek şablonları, sanal makine örnekleri ve yönetilen örnek grupları oluşturmak için kullanabileceğiniz API kaynaklarıdır. Bu şablonlar makine türünü, önyükleme diski görüntüsünü, alt ağı, etiketleri ve diğer örnek özelliklerini tanımlar. us-east1 ve europe-west1 için birer örnek şablonu oluşturun.

  1. Cloud Console'da Gezinme menüsü ( mainmenu.png) > Compute Engine > Örnek şablonları'na gidip Örnek şablonu oluştur'u tıklayın.
  2. Ad kısmına us-east1-template yazın.
  3. Seri için N1'i seçin.
  4. Ağ iletişimi, Diskler, Güvenlik, Yönetim , Tek Kiracılı'yı tıklayın.

b60e2a44c3e4d50e.png

  1. Yönetim bölümüne gidin:

ee57f20ce55298fd.png

  1. Meta veri bölümünde Öğe ekle'yi tıklayın ve aşağıdakileri belirtin:

Anahtar

Değer

startup-script-url

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

  1. Networking'i (Ağ iletişimi) tıklayın.
  2. Şu değerleri ayarlayın ve diğer tüm değerleri varsayılan ayarlarında bırakın:

Özellik

Değer (değeri yazın veya belirtilen seçeneği belirleyin)

Ağ (Ağ Arayüzleri altında)

varsayılan

Alt ağ (Ağ arayüzleri altında)

default (us-east1)

Ağ etiketleri

http-server

  1. Oluştur'u tıklayın.
  2. Örnek şablonunun oluşturulmasını bekleyin.

Ardından us-east1-template şablonunu kopyalayarak subnet-b için başka bir örnek şablonu oluşturun:

  1. us-east1-template'i, ardından yukarıdaki Kopyala seçeneğini tıklayın.
  2. Name (Ad) kısmına europe-west1-template yazın.
  3. Ağ iletişimi, Diskler, Güvenlik, Yönetim , Tek Kiracılı'yı tıklayın.
  4. Networking'i (Ağ iletişimi) tıklayın.
  5. Ağ Arayüzleri bölümünde varsayılan arayüzü düzenleyin. Alt ağ alanında varsayılan (europe-west1) seçeneğini belirleyin.
  6. Oluştur'u tıklayın.

Yönetilen örnek gruplarını oluşturma

us-east1 ve europe-west1 bölgelerinde birer yönetilen örnek grubu oluşturun.

  1. Compute Engine'deki sol menüden Instance groups'u (Örnek grupları) tıklayın.

72319de055de3942.png

  1. Create instance group'u (Örnek grubu oluştur) tıklayın. Yeni yönetilen örnek grubu (durum bilgisiz) seçeneğini belirleyin.
  2. Aşağıdaki değerleri ayarlayın, diğer tüm değerleri varsayılan haliyle bırakın:

Özellik

Değer (değeri yazın veya belirtilen seçeneği belirleyin)

Ad

us-east1-mig

Konum

Multiple zones (Birden fazla alt bölge)

Bölge

us-east1

Örnek şablonu

us-east1-template

Otomatik ölçeklendirme > Otomatik ölçeklendirme politikası > Kalem simgesini tıklayın > Metrik türü

CPU kullanımı

Target CPU utilization (Hedef CPU kullanımı)

80, Bitti'yi tıklayın.

Bekleme süresi

45

Minimum örnek sayısı

1

Maksimum örnek sayısı

5

  1. Create'i (Oluştur) tıklayın.

europe-west1 bölgesinde europe-west1-mig için ikinci bir örnek grubu oluşturmak üzere aynı işlemi tekrarlayın:

  1. Örnek grubu oluştur'u tıklayın.
  2. Aşağıdaki değerleri ayarlayın, diğer tüm değerleri varsayılan hâliyle bırakın:

Özellik

Değer (değeri yazın veya belirtilen seçeneği belirleyin)

Ad

europe-west1-mig

Konum

Multiple zones (Birden fazla alt bölge)

Bölge

europe-west1

Örnek şablonu

europe-west1-template

Otomatik ölçeklendirme > Otomatik ölçeklendirme politikası > Kalem simgesini tıklayın > Metrik türü

CPU kullanımı

Target CPU utilization (Hedef CPU kullanımı)

80, Bitti'yi tıklayın.

Bekleme süresi

45

Minimum örnek sayısı

1

Maksimum örnek sayısı

5

  1. Oluştur'u tıklayın.

5. HTTP yük dengeleyiciyi yapılandırma

Ağ şemasında gösterildiği gibi, HTTP yük dengeleyiciyi iki arka uç (us-east1 bölgesindeki us-east1-mig ve europe-west1 bölgesindeki europe-west1-mig) arasındaki trafiği dengeleyecek şekilde yapılandırın:

2e1b99d22f4f32a.png

Yapılandırmayı başlatma

  1. Cloud Console'da Gezinme menüsü (mainmenu.png) > �Network Services (Ağ Hizmetleri) > �Load balancing'i (Yük dengeleme), ardından �Create load balancer'ı (Yük dengeleyici oluştur) tıklayın.
  2. HTTP(S) Yük Dengeleme bölümünde Yapılandırmayı başlat'ı tıklayın.

8197d8f041e8eafd.png

  1. İnternetten sanal makinelerime, Klasik HTTP(S) yük dengeleyici'yi seçip Devam'ı tıklayın.
  2. Ad'ı http-lb olarak ayarlayın.

Arka ucu yapılandırma

Arka uç hizmetleri, gelen trafiği bir veya daha fazla ekli arka uca yönlendirir. Her arka uç, bir örnek grubundan ve ek sunum kapasitesi meta verisinden oluşur.

  1. Backend configuration'ı (Arka uç yapılandırması) tıklayın.
  2. Backend services & backend buckets (Arka uç hizmetleri ve arka uç paketleri) için Create a backend service'i (Arka uç hizmeti oluştur) tıklayın.
  3. Aşağıdaki değerleri ayarlayın ve diğer tüm değerleri varsayılan haliyle bırakın:

Özellik

Değer (belirtilen seçeneği belirleyin)

Name (Ad)

http-backend

Örnek grubu

us-east1-mig

Bağlantı noktası numaraları

80

Balancing mode (Dengeleme modu)

Rate (Oran)

Maksimum RPS

50 (örnek başına)

Kapasite

100

  1. Bitti'yi tıklayın.
  2. Arka uç ekle'yi tıklayın.
  3. Aşağıdaki değerleri ayarlayın ve diğer tüm değerleri varsayılan haliyle bırakın:

Özellik

Değer (belirtilen seçeneği belirleyin)

Örnek grubu

europe-west1-mig

Bağlantı noktası numaraları

80

Balancing mode (Dengeleme modu)

Utilization (Kullanım)

Maximum backend utilization (Maksimum arka uç kullanımı)

80

Capacity (Kapasite)

100

  1. Done'ı (Bitti) tıklayın.
  2. Durum Denetimi için Durum denetimi oluştur'u seçin.

199239806577ceac.png

  1. Aşağıdaki değerleri ayarlayın, diğer tüm değerleri varsayılan haliyle bırakın:

Özellik

Değer (belirtilen seçeneği belirleyin)

Name (Ad)

http-health-check

Protocol (Protokol)

TCP

Port (Bağlantı noktası)

80

20f7af9fce140475.png

  1. Kaydet'i tıklayın.
  2. Enable Logging (Günlük kaydını etkinleştir) kutusunu işaretleyin.
  3. Örnek hızını 1 olarak ayarlayın:

dab4b15c13917786.png

  1. Arka uç hizmetini oluşturmak için Create'i (Oluştur) tıklayın.

2db64614f855f239.png

Ön ucu yapılandırma

Ana makine ve yol kuralları, trafiğinizin nasıl yönlendirileceğini belirler. Örneğin, video trafiğini bir arka uca, statik trafiği ise başka bir arka uca yönlendirebilirsiniz. Ancak bu laboratuvarda ana makine ve yol kurallarını yapılandırmayacaksınız.

  1. Frontend configuration'ı (Ön uç yapılandırması) tıklayın.
  2. Aşağıdakileri ayarlayın ve diğer tüm değerleri varsayılan haliyle bırakın:

Özellik

Değer (değeri yazın veya belirtilen seçeneği belirleyin)

Protocol (Protokol)

HTTP

IP version (IP sürümü)

IPv4

IP address (IP adresi)

Ephemeral (Geçici)

Port (Bağlantı noktası)

80

  1. Done'ı (Bitti) tıklayın.
  2. Add Frontend IP and port'u (Ön uç IP ve bağlantı noktası ekle) tıklayın.
  3. Aşağıdakileri ayarlayın ve diğer tüm değerleri varsayılan haliyle bırakın:

Özellik

Değer (değeri yazın veya belirtilen seçeneği belirleyin)

Protocol (Protokol)

HTTP

IP version (IP sürümü)

IPv6

IP adresi

Ephemeral (Geçici)

Port (Bağlantı noktası)

80

  1. Done'ı (Bitti) tıklayın.

HTTP Yük Dengeleyiciyi inceleme ve oluşturma

  1. İnceleme ve sonlandırma'yı tıklayın.

2c88715aa5f22800.png

  1. Arka uç hizmetleri ve Ön uç'u inceleyin.

b2fffef90be309f0.png

  1. Oluştur'u tıklayın.
  2. Yük dengeleyicinin oluşturulmasını bekleyin.
  3. Yük dengeleyicinin adını (http-lb) tıklayın.
  4. Sonraki görev için yük dengeleyicinin IPv4 ve IPv6 adreslerini not edin. Adresler burada sırasıyla [LB_IP_v4] ve [LB_IP_v6] olarak yer alacaktır.

6. HTTP yük dengeleyiciyi test etme

Arka uçlarınız için HTTP yük dengeleyici oluşturduğunuza göre trafiğin arka uç hizmetine yönlendirildiğini doğrulayın.

HTTP Yük Dengeleyiciye erişme

HTTP yük dengeleyiciye IPv4 erişimini test etmek için tarayıcınızda yeni bir sekme açıp http://[LB_IP_v4] adresine gidin. [LB_IP_v4] ifadesinin yerine yük dengeleyicinin IPv4 adresini yazmayı unutmayın.

Yerel bir IPv6 adresiniz varsa HTTP yük dengeleyicinin IPv6 adresini denemek için http://[LB_IP_v6] adresine gidin. [LB_IP_v6] ifadesinin yerine yük dengeleyicinin IPv6 adresini yazmayı unutmayın.

812d1fc75d9dfb3c.png

HTTP yük dengeleyiciye stres testi uygulama

siege kullanarak HTTP yük dengeleyici üzerinde yük simülasyonu yapmak için yeni bir sanal makine oluşturun. Ardından, yük fazlayken trafiğin iki arka uç arasında dengelenip dengelenmediğini belirleyin.

  1. Konsolda Gezinme menüsü (mainmenu.png) > Compute Engine > VM instances'a (Sanal makine örnekleri) gidin.
  2. Create instance'ı (Örnek oluştur) tıklayın.
  3. Aşağıdaki değerleri ayarlayın, diğer tüm değerleri varsayılan haliyle bırakın:

Özellik

Değer (değeri yazın veya belirtilen seçeneği belirleyin)

Name (Ad)

siege-vm

Bölge

us-west1

Alt bölge

us-west1-c

Dizi

N1

  1. Oluştur'u tıklayın.
  2. siege-vm örneğinin oluşturulmasını bekleyin.
  3. siege-vm için SSH'yi tıklayarak bir terminal açıp bağlanın.
  4. siege'i yüklemek için aşağıdaki komutu çalıştırın:
sudo apt-get -y install siege
  1. HTTP yük dengeleyicinin IPv4 adresini bir ortam değişkeninde depolamak için [LB_IP_v4] ifadesinin yerine IPv4 adresini yazıp aşağıdaki komutu çalıştırın:
export LB_IP=[LB_IP_v4]
  1. Yük simülasyonu yapmak için şu komutu çalıştırın:
siege -c 250 http://$LB_IP

Çıkış aşağıdaki gibi görünecektir (kopyalamayın, bu bir örnek çıkıştır):

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. Cloud Console'da Gezinme menüsü'nü (mainmenu.png) tıklayın, Network Services (Ağ Hizmetleri) > Load balancing'i (Yük dengeleme) tıklayın.
  2. http-lb'yi tıklayın.
  3. Monitoring (İzleme) sekmesini tıklayın. Kuzey Amerika ile iki arka uç arasındaki trafiği 2-3 dakika izleyin.

Başlangıçta trafik sadece us-east1-mig'e yönlendirilir ancak RPS arttıkça trafik europe-west1-mig'e de yönlendirilmeye başlar.

ead1e6d5c1f4cc4b.png

Burada, trafiğin varsayılan olarak en yakın arka uca yönlendirildiği ama yük çok arttığında başka arka uçlara dağıtılabildiği görülmektedir.

e5c6a657706c832c.png

  1. siege-vm SSH terminaline dönün.
  2. Siege'i durdurmak için CTRL+C tuşlarına basın.

7. Cloud Armor sıklık sınırlama politikası oluşturma

Bu bölümde, bir sıklık sınırlama politikası ayarlayarak siege-vm'nin HTTP yük dengeleyiciye erişimini engellemek için Cloud Armor'ı kullanacaksınız.

  1. Cloud Shell'de(Cloud Shell'i kullanmayla ilgili talimatlar için "Kurulum ve Gereksinimler" bölümündeki "Cloud Shell'i başlatma" başlıklı makaleye bakın) gcloud aracılığıyla güvenlik politikası oluşturun:
gcloud compute security-policies create rate-limit-siege \
    --description "policy for rate limiting"
  1. Ardından, bir sıklık sınırlama kuralı ekleyin:
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. Güvenlik politikasını http-backend arka uç hizmetine ekleyin:
gcloud compute backend-services update http-backend \
    --security-policy rate-limit-siege –-global
  1. Console'da Gezinme menüsü > Ağ Güvenliği > Cloud Armor'a gidin.
  2. Click rate-limit-siege. Politikanız aşağıdaki gibi olmalıdır:

8be87aa31c2ed74e.png

Güvenlik politikasını doğrulama

  1. siege-vm'in SSH terminaline dönün.
  2. LB IP'sine karşı bir curl komutu çalıştırarak hâlâ bağlanabildiğinizi doğrulayın. 200 yanıtı almanız gerekir.
curl http://$LB_IP
  1. Yük simülasyonu yapmak için siege-vm SSH terminalinde aşağıdaki komutu çalıştırın:
siege -c 250 http://$LB_IP

Çıkış aşağıdaki gibi görünecektir (kopyalamayın, bu bir örnek çıkıştır):

** SIEGE 4.0.4
** Preparing 250 concurrent users for battle.
The server is now under siege...
  1. Bu trafiğin de engellenip engellenmediğini görmek için güvenlik politikası günlüklerini inceleyin.
  2. Konsol'da Gezinme menüsü > Ağ Güvenliği > Cloud Armor'a gidin.
  3. rate-limit-siege'i tıklayın.
  4. Logs'u (Günlükler) tıklayın.

f8be7c01c3d7c8f5.png

  1. View policy logs'u (Politika günlüklerini görüntüle) tıklayın.
  2. Günlük kaydı sayfasında, sorgu önizlemesi alanındaki tüm metni temizleyin.
  3. Kaynağı Cloud HTTP Load Balancer > http-lb-forwarding-rule > http-lb olarak seçin, ardından Add'i (Ekle) tıklayın. Alternatif olarak, aşağıda MQL(izleme sorgu dili) sorgusu verilmiştir. Bu sorguyu kopyalayıp sorgu düzenleyiciye yapıştırabilirsiniz:
resource.type="http_load_balancer" resource.labels.forwarding_rule_name="http-lb-forwarding-rule" resource.labels.url_map_name="http-lb"
  1. Şimdi Run Query'yi (Sorgu Çalıştır) tıklayın.
  2. Sorgu sonuçları bölümünde bir günlük girişini genişletin.
  3. httpRequest'i genişletin. İstek siege-vm IP adresinden gelmelidir. Öyle değilse başka bir günlük girişini genişletin.
  4. jsonPayload'u genişletin.
  5. enforcedSecurityPolicy'yi genişletin.

151f575ba7b3bde9.png

configuredAction'ın RATE_BASED_BAN, adının ise rate-limit-siege olarak ayarlandığını göreceksiniz.

  1. Ek bir kontrol olarak Gezinme menüsü'nde (mainmenu.png) Network Services (Ağ Hizmetleri) > Load balancing'i (Yük dengeleme) tıklayın. http-lb'yi tıklayın. Monitoring (İzleme) sekmesini tıklayın.

ab9a8a66573a5ebd.png

Kuşatma trafiğini grafiklerde görebilirsiniz. Ayrıca, sıklık sınırlaması uygulanan trafiğin arka uca ulaşmadığını ve Cloud Armor politikası tarafından engellendiğini de göreceksiniz.

Tebrikler! Cloud Armor ile sıklık sınırlama laboratuvarını tamamlamış olmanız gerekir.

©2020 Google LLC Tüm hakları saklıdır. Google ve Google logosu, Google LLC şirketinin ticari markalarıdır. Diğer tüm şirket ve ürün adları ilişkili oldukları şirketlerin ticari markaları olabilir.

8. Laboratuvar temizliği

  1. Network Security >> Cloud Armor >> %POLICY NAME%'e (Ağ Güvenliği >> Cloud Armor >> %POLICY NAME%) gidin ve sil'i seçin.

eeafa7cafa11c4c7.png

  1. Networking >> Network services >> Load Balancing'e (Ağ iletişimi >> Ağ hizmetleri >> Yük dengeleme) gidin. Oluşturduğunuz yük dengeleyiciyi seçin ve sil'i tıklayın.

3886458f25cfbd36.png

Silinecek ek kaynaklar olarak arka uç hizmetini ve durum denetimini seçin:

a0193e91b2f4cb6f.png

  1. Gezinme menüsü ( mainmenu.png) > Compute Engine > Örnek Grupları'na gidin. Yönetilen örnek gruplarını seçip sil'i tıklayın:

5027d56977997f70.png

Metin kutusuna "delete" (sil) yazarak silme işlemini onaylayın.

Yönetilen örnek gruplarının silinmesini bekleyin. Bu işlem, gruptaki örnekleri de siler. Şablonları yalnızca örnek grubu silindikten sonra silebilirsiniz.

  1. Sol taraftaki bölmeden Örnek şablonları'na gidin**.** Her iki örnek şablonunu da seçip sil'i tıklayın:

8d88abacd32c11ce.png

  1. Sol taraftaki bölmeden Sanal makine örnekleri'ne gidin. Siege-vm örneğinin yanındaki üç nokta simgesini seçip sil'i tıklayın.

2b58ab43695836e9.png

  1. Gezinme menüsü ( mainmenu.png) > VPC ağı > Güvenlik duvarı'na gidin. default-allow-health-check'i seçin ve sil'i tıklayın:

561d5e771d36d85.png

9. Tebrikler!

Cloud Armor ile sıklık sınırlaması uyguladınız. us-east1 ve europe-west1 bölgelerinde arka uçları bulunan bir HTTP Yük Dengeleyiciyi yapılandırdınız. Ardından, sanal makine kullanarak yük dengeleyiciye stres testi uyguladınız ve Cloud Armor ile sıklık sınırlaması aracılığıyla IP adresini ret listesine eklediniz. Trafiğin neden engellendiğini tespit etmek için güvenlik politikası günlüklerini incelediniz.

İşlediğimiz konular

  • Örnek şablonlarını ayarlama ve yönetilen örnek grupları oluşturma
  • HTTP yük dengeleyiciyi ayarlama
  • Cloud Armor sıklık sınırlaması politikası oluşturma
  • Sıklık sınırlama politikasının amaçlandığı gibi çalıştığını doğrulama

Sonraki adımlar

  • Kaynak IP aralığına dayalı bir sıklık sınırlama politikası oluşturmayı deneyin. Aşağıda örnek komut verilmiştir:
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
  • Bölge koduna dayalı bir sıklık sınırlama politikası oluşturmayı deneyin. Aşağıda örnek komut verilmiştir:
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