1. Giriş
Google Cloud Armor adlı IP adresi listeleri, üçüncü taraf sağlayıcılar tarafından yönetilen IP adreslerinin ve IP aralıklarının listelerine referans vermenize olanak tanır. Adlandırılmış IP adresi listelerini bir güvenlik politikası içinde yapılandırabilirsiniz. Her bir 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 adlı 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 Dengeleyiciler Konusunda Deneyim
2. Yalnızca izin verilen üçüncü taraf sağlayıcılardan gelen trafiğe izin verme
Tipik bir kullanım alanı, izin verilen üçüncü taraf iş ortağının IP adreslerini içeren bir izin verilenler listesi oluşturmaktır. Böylece yalnızca bu iş ortağından gelen trafiğin yük dengeleyiciye ve arka uçlara erişebildiğinden emin olabilirsiniz.
Örneğin, CDN sağlayıcılarının kendi önbelleklerine dağıtmak için kaynak sunuculardan düzenli aralıklarla içerik çekmesi gerekir. Google ile iş ortaklığı, CDN sağlayıcıları ile Google ağı ucu arasında doğrudan bir 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ısı 23.235.32.0/20, 43.249.72.0/22, ⋯, IP adresi listesini yayınlar. CDN kullanıcısı, yalnızca bu IP adreslerinden gelen trafiğe izin veren bir güvenlik kuralı yapılandırır. Sonuç olarak, iki CDN sağlayıcısı erişim noktasına (23.235.32.10 ve 43.249.72.10) izin verilir ve bu nedenle bu noktaların trafiğine izin verilir. 198.51.100.1 yetkisiz erişim noktasından gelen trafik engellendi.
Google Cloud Armor adlı IP adresi
3. Önceden yapılandırılmış kuralları kullanarak yapılandırmayı 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.
Google Cloud Armor, CDN sağlayıcılarından alınan bilgileri her gün otomatik olarak senkronize ettiğinden, güvenlik politikası kuralında adlandırılmış bir IP adresi listesi kullanmak, IP adreslerini yapılandırma ve yönetme sürecini basitleştirir. Bu, büyük bir IP adresi listesini manuel olarak yönetmek gibi zaman alıcı ve hataya açık işlemi ortadan kaldırır.
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 üzerinden tek tek yayınlanır.
Bu iş ortakları, IPv4 adresleri ve IPv6 adresleri için ayrı listeler 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 adlara göre atıfta bulunursunuz.
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 komut şu sonucu döndürür:
EXPRESSION_SET sourceiplist-fastly sourceiplist-cloudflare sourceiplist-imperva
4. Codelab topolojisi
5. Kurulum ve Gereksinimler
Kendi hızınızda ortam kurulumu
- Cloud Console'da oturum açıp 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.)
Tüm Google Cloud projelerinde benzersiz bir ad olan proje kimliğini unutmayın (yukarıdaki ad zaten alınmış ve size uygun olmayacaktır!). Bu kod laboratuvarın ilerleyen bölümlerinde PROJECT_ID
olarak adlandırılacaktır.
- Sonraki adımda, Google Cloud kaynaklarını kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir.
Bu codelab'i çalıştırmanın maliyeti, yüksek değildir. "Temizleme" bölümündeki talimatları izlediğinizden emin olun. bölümünde, bu eğiticinin dışında faturalandırmayla karşılaşmamanız için kaynakları nasıl kapatacağınız konusunda tavsiyelerde bulunuyoruz. Yeni Google Cloud kullanıcıları, 300 ABD doları değerindeki ücretsiz denemeden yararlanabilir.
Cloud Shell'i başlatma
Google Cloud dizüstü bilgisayarınızdan uzaktan çalıştırılabilse de 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 yer alan Cloud Shell simgesini tıklayın:
Ortamı sağlamak ve bağlamak yalnızca birkaç dakika sürer. Tamamlandığında şuna benzer bir sonuç görmeniz gerekir:
İhtiyacınız olan tüm geliştirme araçlarını bu sanal makinede bulabilirsiniz. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışarak ağ performansını ve kimlik doğrulamasını büyük ölçüde iyileştirir. Bu laboratuvardaki tüm çalışmalarınızı yalnızca bir tarayıcıyla 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 şablonunu 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 örneklerinin her iki bölgede de oluşturulmakta olduğunu doğrulayın ve bunların HTTP sitelerine erişin.
- Compute Engine'de, soldaki menüden Sanal makine örnekleri'ni tıklayın
- us-east1-mig ile başlayan örneklere dikkat edin. Bu örnekler, yönetilen örnek gruplarının bir parçasıdır.
- Bir us-east1-mig örneğinde harici IP'yi tıklayın. İstemci IP'sini (sizin IP adresiniz), ana makine adını (us-east1-mig ile başlar) göreceksiniz.
HTTP yük dengeleyiciyi yapılandırma
- Cloud Console'da Gezinme menüsünü ( ) tıklayın > Network Services (Ağ Hizmetleri) > Yük dengeleme'yi seçin ve Yük dengeleyici oluştur'u tıklayın.
- HTTP(S) Yük Dengeleme bölümünde Yapılandırmayı başlat'ı tıklayın.
- İnternetten sanal makinelerime'yi seçip Devam'ı tıklayın.
- 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.
- Arka uç yapılandırması'nı tıklayın.
- Arka uç hizmetleri ve arka uç paketleri için "Arka uç hizmetleri oluştur veya seç"i tıklayın ve arka uç paketleri, Arka uç hizmetleri ve Arka uç hizmeti oluştur'u tıklayın.
- Arka uç türü: Örnek Grubu
- Şu değerleri ayarlayın ve diğer tüm değerleri varsayılan ayarlarında bırakın:
- Bitti'yi tıklayın.
- Durum Denetimi için Durum denetimi oluştur'u seçin.
- Şu değerleri ayarlayın ve diğer tüm değerleri varsayılan ayarlarında bırakın:
- Kaydet ve Devam Et'i tıklayın.
- Arka uç hizmetini oluşturmak için Oluştur'u tıklayın.
Ö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.
- Frontend configuration'ı (Ön uç yapılandırması) tıklayın.
- http-front-end
- Aşağıdakileri ayarlayın, diğer tüm değerleri varsayılan haliyle bırakın
- Bitti'yi tıklayın.
8. HTTP yük dengeleyiciyi inceleme ve oluşturma
- İncele ve tamamla'yı tıklayın.
- Arka uç hizmetlerini ve ön ucu inceleyin.
- Oluştur'u tıklayın.
- Yük dengeleyicinin oluşturulması için birkaç dakika bekleyin
- Yük dengeleyicinin adını (http-lb) tıklayın.
- Sonraki görev için yük dengeleyicinin IPv4 adresini not edin. Bu adres http-lb olarak adlandırılır.
9. Başarılı yetkisiz erişimi doğrulayın
Adlandırılmış IP Adresi Politikası'nı uygulamadan önce laboratuvar dengeleyiciye ve sonraki web uygulamasına başarıyla yetkisiz erişimi 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.
- Önceki adımda (http-lb) oluşturduğunuz yük dengeleyici IP adresinizi belirleyip web tarayıcınıza yapıştırın. Çıktı, aşağıdaki ekran görüntüsüne benzer olur.
NOT: Bu adım birkaç dakika sürer. Web sayfası oluşturulduktan sonra istemci IP'si iş istasyonu IP'nizden değil, Google Front End'den alınır.
İş istasyonunuzda, aşağıda gösterilene benzer bir doğrulama işlemi 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ırın
Adlandırılmış IP Listesi için yeni Cloud Amour 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 tanımlayın.
Cloud Shell'den
gcloud compute security-policies list-preconfigured-expression-sets \ --filter="id:sourceiplist"
Bu komut şu sonucu döndürür:
EXPRESSION_SET sourceiplist-fastly sourceiplist-cloudflare sourceiplist-imperva
Cloud Shell'den, kullanılabilir CDN ifade grubunuza 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'in kullanıldığı ö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ı uygula
CA güvenlik politikasını uygulayın ve politikanın genel olarak yayılması 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ı
- Güvenlik politikası uygulandığından iş istasyonunuzdan yük dengeleyiciye erişim yetkisi yoktur.
- Doğrulamak için iş istasyonunuzdan bir terminal penceresi açın ve yük dengeleyici IP adresine curl işlemi uygulayın. Curl'den çıkan çıkış bir "403" verir İş istasyonunuz artık yetkilendirilmediği için yasak hatası oluştu.
İş 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 tebrikler.
İşlediklerimiz
- 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 adlı IP adresi listesini dağıtma
- Adlandırılmış IP Cloud Armor Politikasını Doğrulayın