Cloud Armor AdlandırılmışIP Listesi

1. Giriş

Google Cloud Armor adlandırılmış IP adresi listeleri, üçüncü taraf sağlayıcılar tarafından tutulan IP adresleri ve IP aralıkları listelerine referans vermenize olanak tanır. Güvenlik politikası içinde adlandırılmış IP adresi listeleri yapılandırabilirsiniz. Her IP adresini veya IP aralığını manuel olarak tek tek belirtmeniz gerekmez.

Neler öğreneceksiniz?

  • Cloud Armor adlandırılmış IP adresi listesinin avantajları
  • Cloud Armor güvenlik politikası oluşturma
  • Cloud Armor adlandırılmış IP adresi listesini dağıtma
  • Global yük dengeleyici oluşturma
  • Örnek test uygulamasıyla yönetilen örnek grubu oluşturma

Gerekenler

  • Güvenlik politikaları ve yük dengeleyicilerle ilgili deneyim

2. Yalnızca izin verilen üçüncü taraf sağlayıcılardan gelen trafiğe izin verme

Tipik bir kullanım alanı, yalnızca bu iş ortağından gelen trafiğin yük dengeleyiciye ve arka uçlara erişebilmesini sağlamak için izin verilen bir üçüncü taraf iş ortağının IP adreslerini içeren bir izin verilenler listesi oluşturmaktır.

Örneğin, CDN sağlayıcıların içerikleri kendi önbelleklerine dağıtmak için düzenli aralıklarla kaynak sunuculardan çekmesi gerekir. Google ile yapılan ortaklık, CDN sağlayıcılar ve Google ağının uç noktası arasında doğrudan bağlantı sağlar. Google Cloud'daki CDN kullanıcıları, kaynak çekme işlemleri sırasında bu doğrudan bağlantıyı kullanabilir. Bu durumda, CDN kullanıcısı yalnızca söz konusu CDN sağlayıcısından gelen trafiğe izin veren bir güvenlik politikası oluşturmak isteyebilir.

Bu örnekte bir CDN sağlayıcı, IP adresi listesini (23.235.32.0/20, 43.249.72.0/22, ⋯) yayınlar. Bir CDN kullanıcısı, yalnızca bu IP adreslerinden gelen trafiğe izin veren bir güvenlik kuralı yapılandırır. Bu nedenle, iki CDN sağlayıcı erişim noktasına (23.235.32.10 ve 43.249.72.10) izin verilir ve bu erişim noktalarının trafiğine izin verilir. 198.51.100.1 yetkisiz erişim noktasından gelen trafik engellendi.

27243e72ee25ee16.png

Google Cloud Armor adlandırılmış IP adresi

3. Önceden yapılandırılmış kuralları kullanarak yapılandırma ve yönetimi basitleştirme

CDN sağlayıcıları genellikle iyi bilinen ve birçok CDN kullanıcısının kullanması gereken IP adreslerini kullanır. Sağlayıcılar IP adreslerini ekledikçe, kaldırdıkça ve güncelledikçe bu listeler zaman içinde değişir.

Güvenlik politikası kuralında adlandırılmış IP adresi listesi kullanmak, IP adreslerini yapılandırma ve yönetme sürecini basitleştirir. Bunun nedeni, Google Cloud Armor'un CDN sağlayıcılarından gelen bilgileri günlük olarak otomatik şekilde senkronize etmesidir. Bu sayede, büyük bir IP adresi listesini manuel olarak tutmanın zaman alıcı ve hataya açık süreci ortadan kalkar.

IP adresi listesi sağlayıcıları

Aşağıdaki tabloda yer alan IP adresi listesi sağlayıcıları, Google Cloud Armor için desteklenir. Bunlar, Google ile iş ortaklığı yapan CDN sağlayıcılarıdır. IP adresi listeleri, herkese açık URL'ler aracılığıyla yayınlanır.

Bu iş ortakları, IPv4 adresleri ve IPv6 adreslerinin ayrı listelerini sağlar. Google Cloud Armor, listeleri getirmek için sağlanan URL'leri kullanır ve ardından listeleri adlandırılmış IP adresi listelerine dönüştürür. Listelere tablodaki adlarla başvurursunuz.

7e9c09a008e04656.png

Alternatif olarak, önceden yapılandırılmış adlandırılmış IP adresi listelerinin listesini almak için Cloud Shell'i kullanın.

Cloud Shell'e giriş yapın ve proje kimliğinizi ayarlayın.

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]

Perform setting your projectID:
projectid=YOUR-PROJECT-ID

echo $projectid

Cloud Shell'den

gcloud compute security-policies list-preconfigured-expression-sets \
    --filter="id:sourceiplist"

Bu işlev şu sonucu döndürür:

EXPRESSION_SET
sourceiplist-fastly
sourceiplist-cloudflare
sourceiplist-imperva

4. Codelab topolojisi

68a800f9adbf4570.png

5. Kurulum ve Gereksinimler

Yönlendirmesiz ortam kurulumu

  1. 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 oluşturmanız gerekir.)

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

Proje kimliğini unutmayın. Bu kimlik, tüm Google Cloud projelerinde benzersiz bir addır (Yukarıdaki ad zaten alınmış olduğundan sizin için çalışmayacaktır). Bu codelab'in ilerleyen kısımlarında PROJECT_ID olarak adlandırılacaktır.

  1. Ardından, Google Cloud kaynaklarını 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ı nasıl kapatacağınız konusunda size tavsiyelerde bulunan "Temizleme" bölümündeki talimatları uyguladığınızdan emin olun. 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.

6. VPC ağı oluştur

VPC Ağı

Cloud Shell'den

gcloud compute networks create 

named-list-vpc

 --subnet-mode custom

Alt Ağ Oluştur

Cloud Shell'den

gcloud compute networks subnets create named-ip-subnet \
        --network 

named-list-vpc

 --range 10.0.0.0/24 --region us-east1

Güvenlik Duvarı Kuralları Oluşturma

Cloud Shell'den

gcloud compute --project=$projectid firewall-rules create default-allow-http --direction=INGRESS --priority=1000 --network=named-list-vpc --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 
gcloud compute --project=$projectid firewall-rules create default-allow-health-check --direction=INGRESS --priority=1000 --network=named-list-vpc --action=ALLOW --rules=tcp --source-ranges=130.211.0.0/22,35.191.0.0/16 

Yük dengeleyiciyi oluşturma

Örnek şablonu oluşturma

Cloud Shell'den

gcloud beta compute --project=$projectid instance-templates create us-east1-template --machine-type=e2-medium --subnet=projects/$projectid/regions/us-east1/subnetworks/named-ip-subnet --network-tier=PREMIUM --metadata=startup-script-url=gs://cloud-training/gcpnet/httplb/startup.sh --maintenance-policy=MIGRATE --image=debian-10-buster-v20210217 --image-project=debian-cloud --boot-disk-size=10GB --boot-disk-type=pd-balanced --boot-disk-device-name=us-east1-template --no-shielded-secure-boot --no-shielded-vtpm --no-shielded-integrity-monitoring --reservation-affinity=any

Yönetilen örnek grubunu oluşturma

Cloud Shell'den

gcloud compute --project=$projectid  instance-groups managed create us-east1-mig --base-instance-name=us-east1-mig --template=us-east1-template --size=1 --zone=us-east1-b

7. Arka uçları doğrulama

Sanal makine örneği oluşturma işleminin her iki bölgede de devam ettiğini doğrulayın ve bunların HTTP sitelerine erişin.

  1. Yine Compute Engine'de, sol menüden Sanal makine örnekleri'ni tıklayın.
  2. us-east1-mig ile başlayan örneklere dikkat edin. Bu örnekler yönetilen örnek gruplarının parçasıdır.
  3. Bir us-east1-mig örneğinin harici IP'sini tıklayın. İstemci IP'si (sizin IP adresiniz) ve Ana Makine Adı (us-east1-mig ile başlar) görünecektir.

HTTP yük dengeleyiciyi yapılandırma

  1. Cloud Console'da gezinme menüsü ( mainmenu.png) > Ağ Hizmetleri > Yük dengeleme'yi, ardından Yük dengeleyici oluştur'u tıklayın.
  2. HTTP(S) Yük Dengeleme bölümünde Yapılandırmayı başlat'ı tıklayın.

start_config.png

  1. İnternetten sanal makinelerime'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. Arka uç yapılandırması'nı tıklayın.
  2. Arka uç hizmetleri ve arka uç paketleri için Arka uç hizmetleri ve arka uç paketleri oluştur veya seç'i, ardından Arka uç hizmetleri'ni ve Arka uç hizmeti oluştur'u tıklayın.
  3. Arka uç türü, örnek grubudur.
  4. Aşağıdaki değerleri ayarlayın ve diğer tüm değerleri varsayılan haliyle bırakın: 18bf7a852f0759ee.png
  5. Bitti'yi tıklayın.
  6. Durum denetimi için Durum denetimi oluştur'u seçin. health_check.png
    1. Aşağıdaki değerleri ayarlayın ve diğer tüm değerleri varsayılan haliyle bırakın: d2f85af1e988532b.png
  7. Kaydet ve Devam Et'i tıklayın.
  8. Arka uç hizmetini oluşturmak için Oluştur'u tıklayın.

b00c217bf592f0.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. Ön uç yapılandırması'nı tıklayın.
  2. http-front-end
  3. Aşağıdakileri ayarlayın ve diğer tüm değerleri varsayılan haliyle bırakın: 51ae16211e72142f.png
  4. Bitti'yi tıklayın.

8. HTTP yük dengeleyiciyi inceleme ve oluşturma

  1. İncele ve sonlandır'ı tıklayın.

8efe5b462a80071d.png

  1. Arka uç hizmetlerini ve ön ucu inceleyin.

30b06910bf7fae29.png

  1. Oluştur'u tıklayın.
  2. Yük dengeleyicinin oluşturulması için birkaç dakika bekleyin.
  3. Yük dengeleyicinin adını (http-lb) tıklayın.
  4. Sonraki görev için yük dengeleyicinin IPv4 adresini (http-lb olarak adlandırılır) not edin.

9. Başarılı yetkisiz erişimi doğrulama

Adlandırılmış IP adresi politikasını uygulamadan önce, laboratuvar yük dengeleyicisine ve sonraki web uygulamasına yetkisiz erişimin başarılı olduğunu doğrulayın. Adlandırılmış IP adresi politikası uygulandıktan sonra web uygulamasına erişimin, sağlanan ifade grubuyla sınırlı olduğunu unutmayın.

  1. Önceki adımda oluşturduğunuz yük dengeleyici IP adresinizi (http-lb) belirleyin ve web tarayıcınıza yapıştırın. Çıktı, aşağıdaki ekran görüntüsüne benzer olacaktır.

NOT: Bu adım birkaç dakika sürer. Web sayfası oluşturulduktan sonra istemci IP'si, iş istasyonunuzun IP'si değil, Google Front End IP'sidir.

f93410e9568f1f32.png

İş istasyonunuzda aşağıda belirtilenlere benzer bir doğrulama yapın.

bash-3.2$ curl <load-balancer-IP>

10. Örnek çıkış

bash-3.2$ curl <load-balancer-ip>
<h1>HTTP Load Balancing Lab</h1><h2>Client IP</h2>Your IP address : 35.191.0.151<h2>Hostname</h2>Server Hostname: us-east1-mig-8nqq<h2>Server Location</h2>Region and Zone: us-east1-b

11. Adlandırılmış IP Listesini Yapılandırma

Adlandırılmış IP listesi için yeni bir Cloud Armor politikası oluşturma

Cloud Shell'den

gcloud compute --project=$projectid security-policies create ca-policy

Cloud Shell'den

gcloud compute --project=$projectid security-policies rules update 2147483647 --action=deny-403 --security-policy=ca-policy --description="Default rule, higher priority overrides it" --src-ip-ranges=\*

Kullanılabilir CDN Adlandırılmış IP Listeleri adreslerini belirleyin.

Cloud Shell'den

gcloud compute security-policies list-preconfigured-expression-sets \
    --filter="id:sourceiplist"

Bu işlev şu sonucu döndürür:

EXPRESSION_SET
sourceiplist-fastly
sourceiplist-cloudflare
sourceiplist-imperva

Cloud Shell'den, CDN'nizin kullanılabilir ifade kümesine göre adlandırılmış IP adresi listesini yapılandırın.

gcloud beta compute security-policies rules create 600 \
    --security-policy ca-policy \
    --expression "evaluatePreconfiguredExpr('expression_set')" \
    --action "allow"

Cloudflare kullanılan örnek

gcloud beta compute security-policies rules create 600 \
    --security-policy ca-policy \
    --expression "evaluatePreconfiguredExpr('sourceiplist-cloudflare')" \
    --action "allow"

12. CA güvenlik politikasını uygulama

CA güvenlik politikasını uygulayın ve genel politika yayılımı için birkaç dakika bekleyin.

gcloud compute backend-services update http-backend --security-policy ca-policy --global

13. Adlandırılmış IP adresi doğrulaması

  1. Güvenlik politikası uygulandığından iş istasyonunuzdan yük dengeleyiciye erişim yetkisizdir.
  2. Doğrulamak için iş istasyonunuzdan bir terminal penceresi açın ve yük dengeleyici IP adresine bir curl işlemi uygulayın. İş istasyonunuz artık yetkisiz olduğundan curl'den alınan çıkış, "403" Forbidden hatası verir.

İş istasyonunuzdan

bash-3.2$ curl <load-balancer-IP>
<!doctype html><meta charset="utf-8"><meta name=viewport content="width=device-width, initial-scale=1"><title>403</title>403 Forbidden

Temizleme Adımları

gcloud -q compute backend-services update http-backend --security-policy "" --global

gcloud -q compute --project=$projectid security-policies delete ca-policy

gcloud -q compute forwarding-rules delete http-front-end --global

gcloud -q compute target-http-proxies delete http-lb-target-proxy

gcloud -q compute url-maps delete http-lb

gcloud -q compute backend-services delete http-backend --global

gcloud -q compute health-checks delete http-health-check

gcloud -q compute --project=$projectid instance-groups managed delete us-east1-mig --zone=us-east1-b

gcloud -q beta compute --project=$projectid instance-templates delete us-east1-template

gcloud -q compute --project=$projectid firewall-rules delete default-allow-http

gcloud -q compute --project=$projectid firewall-rules delete default-allow-health-check

gcloud -q compute networks subnets delete named-ip-subnet --region us-east1

gcloud -q compute networks delete named-list-vpc

14. Tebrikler!

Codelab'i tamamladığınız için tebrik ederiz.

İşlediğimiz konular

  • Cloud Armor adlandırılmış IP adresi listesinin avantajları
  • Global yük dengeleyici oluşturma
  • Örnek test uygulamasıyla yönetilen örnek grubu oluşturma
  • Cloud Armor güvenlik politikası oluşturma
  • Cloud Armor adlandırılmış IP adresi listesini dağıtma
  • Adlandırılmış IP Cloud Armor politikasını doğrulama