1. Giriş
Google Cloud Armor Edge Güvenlik Politikaları, Google Cloud CDN ve Google Cloud Storage'da önbelleğe alınan nesnelere erişimi kısıtlamanızı sağlar. Bunu yapma nedenlerine örnek olarak kullanıcılarınızın kısıtlanmış coğrafi bölgelerden depolama paketlerindeki nesnelere erişmemesini sağlamak veya medya dağıtımınızın, lisans sahibi olduğunuz coğrafyalara göre filtreleme yapmasını sağlamak verilebilir.
Bu laboratuvarda bir GCS paketi oluşturup bu pakete bir görüntü yükleyecek, bunu bir yük dengeleyiciye bağlayacağız ve pakette Cloud CDN ve Edge Security politikalarını etkinleştireceğiz.
Neler öğreneceksiniz?
- Önbelleğe alınabilir içeriğe sahip Cloud Storage Paketi oluşturma
- İçeriği korumak için Edge Güvenlik Politikası oluşturma
- Edge Güvenlik Politikası'nın beklendiği gibi çalıştığını doğrulama
Gerekenler
- Temel Ağ İletişimi ve HTTP bilgisi
- Temel Unix/Linux komut satırı bilgisi
2. Kurulum ve Gereksinimler
Kendi hızınızda ortam kurulumu
- Google 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.
- Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizesidir ve bunu istediğiniz zaman güncelleyebilirsiniz.
- Proje Kimliği, tüm Google Cloud projelerinde benzersiz olmalıdır ve değiştirilemez (belirlendikten sonra değiştirilemez). Cloud Console, otomatik olarak benzersiz bir dize oluşturur. bunun ne olduğunu umursamıyorsunuz. Çoğu codelab'de, Proje Kimliğine referans vermeniz gerekir (ve bu kimlik genellikle
PROJECT_ID
olarak tanımlanır). Beğenmezseniz başka bir rastgele kod oluşturun ya da kendi proje kimliğinizi deneyip mevcut olup olmadığına bakın. Sıcaklık "soğudu" takip etmeniz gerekir. - Bazı API'lerin kullandığı üçüncü bir değer, yani Proje Numarası daha vardır. Bu değerlerin üçü hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
- Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i çalıştırmanın maliyeti, yüksek değildir. Bu eğitim dışında faturalandırmayla karşılaşmamak için kaynakları kapatmak istiyorsanız tüm "temizleme" işlemlerini uygulayın buradaki talimatları uygulayın. 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.
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. Cloud Storage Paketi Oluşturma
Cloud Console'da Gezinme menüsü > Cloud Storage > Tarayıcı'ya gidin. PAKET OLUŞTUR'u tıklayın:
Paket adlandırma kuralları:
- Paket adı alanı global ve herkese görünür olduğundan paket adına hassas bilgiler eklemeyin.
- Paket adlarında yalnızca küçük harf, sayı, kısa çizgi (-), alt çizgi (_) ve nokta (.) kullanılabilir. Nokta içeren adların doğrulanması gerekir.
- Paket adlarının bir sayı veya harfle başlayıp bitmesi gerekir.
- Paket adları 3 ila 63 karakterden oluşmalıdır. Nokta içeren adların uzunluğu 222 karakterden oluşabilir, ancak adın noktayla ayrılmış her bir parçası 63 karakterden uzun olamaz.
- Paket adları, noktalı ondalık notasyon ile IP adresi olarak temsil edilemez (örneğin, 192.168.5.4).
- Paket adları "goog" önekiyle başlayamaz.
- Paket adlarında "google" sözcüğü veya "google"ın yanlış yazımları bulunamaz.
- Ayrıca, DNS uygunluğu ve geleceğe yönelik uygunluk gereksinimleri nedeniyle, nokta veya kısa çizgi karakterinin hemen yanına alt çizgi (_) ya da başka bir nokta eklemekten kaçınmalısınız. Örneğin, ".." veya "-." ya da ".-" geçerli DNS adları değildir.
DEVAM'ı tıklayın.
Konum türü: bölge
Konum: Size uzak bir bölge seçin
DEVAM'ı tıklayın.
Varsayılan Depolama sınıfı: Standart
DEVAM'ı tıklayın.
Herkese açık erişimi engelle'nin altındaki Bu pakette herkese açık erişim engeli uygula onay kutusunun işaretini kaldırın.
Erişim Denetimi altında Ayrıntılı'yı seçin.
DEVAM'ı tıklayın.
Paketinizi yapılandırdıktan sonra OLUŞTUR'u tıklayın:
Hepsi bu kadar! Bir Cloud Storage paketi oluşturdunuz.
4. Paketinize nesne yükleme
Şimdi paketinize bir nesne yükleyin.
İlk olarak bu görüntüyü Cloud Shell'de geçici bir örneğe indirin. Aşağıdaki örnekte Google ana sayfasındaki Google resmi kullanılmıştır.
Cloud Shell'den
wget --output-document google.png https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png
Resmi kaydettiğiniz konumdan oluşturduğunuz pakete yüklemek için gsutil cp komutunu kullanın:
Cloud Shell'den
gsutil cp google.png gs://YOUR-BUCKET-NAME
Şimdi indirilen resmi kaldırın:
Cloud Shell'den
rm google.png
Nesnenizi bulun, sağ taraftaki üç noktayı tıklayın ve herkese açık olacak şekilde izinleri düzenleyin.
5. Yük Dengeleyici Oluşturma
Şimdi bir HTTP yük dengeleyici oluşturacağız.
Ağ iletişimi >> bölümüne gidin. Ağ hizmetleri >> Yük Dengeleme >> Yük Dengeleyici Oluştur >> HTTP Yük Dengeleyici >> Sanal makinelerime internet >> Klasik HTTP(S) Yük Dengeleyici
Öncelikle, oluşturacağınız yük dengeleyici için bir ad belirleyin.
Arka uç paketi oluşturun
Az önce oluşturduğunuz paketiniz olan yeni bir arka uç paketi oluşturun ve Etkin CDN ile Statik İçeriği Önbelleğe Alma'yı seçin. Oluştur'u tıklayın.
Ana makine ve yol kuralları oluşturma
Sol tarafta Ana makine ve yol kuralları'na gidin. Basit bir ana makine/yol kuralı kullanarak tüm istekleri pakete ileteceğiz.
Ön uç yapılandırması oluşturma
Ön uç yapılandırmasını seçin. Ön uç yapılandırması için HTTP (sertifikanız varsa HTTPS de çalışır) ile geçici bir IP adresi kullanacağız ve premium katman ağını seçtiğinizden emin olun.
Oluştur'u tıklayın
Yük Dengeleyici IP'si Alma
Konsoldan projenizin yük dengeleyici listesindeki yük dengeleyici adını tıklayarak Yük Dengeleyici IP'sini alın.
Yük dengeleyiciyi sorgulama
Birkaç dakika sonra, yüklediğiniz nesne için yük dengeleyiciyi sorgulamayı deneyin. Yük dengeleyici IP adresine ve resmin adına ihtiyacınız olacaktır. Komutun yapısı şöyledir:
Terminalden
curl -svo /dev/null http://LOAD_BALANCER_IP/google.png
Çıkış
armanrye-macbookpro% curl -svo /dev/null http://34.98.81.123/google.png * Trying 34.98.81.123... * TCP_NODELAY set * Connected to 34.98.81.123 (34.98.81.123) port 80 (#0) > GET /google.png HTTP/1.1 > Host: YOUR_IP > User-Agent: curl/7.64.1 > Accept: */* > < HTTP/1.1 200 OK < X-GUploader-UploadID: ADPycdtoILI76KVsvBvdVGvSfzaxys1m3zYqCepBrmJxAI48ni24cWCRIdNu-53PX3DS6iycxp6xwFbMpwtcHHZQUQmEBxAgng < Expires: Mon, 13 Dec 2021 22:58:26 GMT < Date: Mon, 13 Dec 2021 21:58:26 GMT < Cache-Control: public, max-age=3600 < Last-Modified: Mon, 13 Dec 2021 21:45:57 GMT < ETag: "8f9327db2597fa57d2f42b4a6c5a9855" < x-goog-generation: 1639431957957903 < x-goog-metageneration: 2 < x-goog-stored-content-encoding: identity < x-goog-stored-content-length: 5969 < Content-Type: image/png < x-goog-hash: crc32c=TeiHTA== < x-goog-hash: md5=j5Mn2yWX+lfS9CtKbFqYVQ== < x-goog-storage-class: STANDARD < Accept-Ranges: bytes < Content-Length: 5969 < Server: UploadServer
İçeriğinizin CDN veya Yük Dengeleme İzleme aracılığıyla CDN'den sunulduğunu doğrulayın. %100'e yaklaşırsınız. Birkaç sorgu çalıştırmanız gerekiyorsa aşağıdakileri yapabilirsiniz.
Terminalden
#for i in `seq 1 50`; do curl http://%loadbalncer-IP%/google.png; done
Cloud CDN tarafından sunulan içeriği onaylayın
Ağ Hizmetleri >> bölümüne giderek CDN'den trafik sunduğunuzu doğrulayın CDN
6. Nesneyi GCS'den silme
Önbellek doldurulduğuna göre şimdi nesneyi paketten silelim. Politikayı arka uca değil önbelleğe aldığımızı pekiştirelim.
Cloud Storage >> bölümüne gidin. %paket adı% >> nesneler
Resmi seçip silin.
7. CDN Önbelleğiniz için Edge Güvenlik Politikası oluşturma
Ağ Güvenliği >> Cloud Armor'ı tıklayın ve politika oluştur'u tıklayın
Aşağıdakileri seçin
Politika Türü: Uç Güvenlik Politikası
Varsayılan İşlem: Reddet
Politikayı arka uç paketinize uygulayın.
8. Edge Güvenlik Politikasını Doğrulayın
Arka uç paketimizin önünde bir uç güvenlik politikası oluşturduğumuza göre beklendiği gibi çalıştığını doğrulayalım.
Güvenlik politikasını kontrol edin
Birkaç dakika geçtikten sonra Cloud Armor Politikası'nın çalışıp çalışmadığını kontrol edebilirsiniz. Komut satırından aşağıdaki komutu çalıştırdığınızda sonucuna 403
Terminalden
curl -svo /dev/null http://LOAD_BALANCER_IP/google.png
Çıkış
curl -svo /dev/null http://34.98.81.123/google.png * Trying 34.98.81.123... * TCP_NODELAY set * Connected to 34.98.81.123 (34.98.81.123) port 80 (#0) > GET /google.png HTTP/1.1 > Host: YOUR_IP > User-Agent: curl/7.64.1 > Accept: */* > < HTTP/1.1 403 Forbidden < X-GUploader-UploadID: ADPycdtS6FtJOGIsiWYDrAAE8VFeQuNutcvbGoQe2t8EZxsuspVtmCjyiTv_P3CNktroHMOGFXkTCfG-Jj-rUO60ZGPpEbpqcw < Content-Type: application/xml; charset=UTF-8 < Content-Length: 111 < Date: Mon, 13 Dec 2021 23:09:35 GMT < Expires: Mon, 13 Dec 2021 23:09:35 GMT < Cache-Control: private, max-age=0 < Server: UploadServer <
Günlükleri inceleme
Ardından, zorunlu kılınan uç güvenlik politikasını görmek için günlükleri kontrol edebilirsiniz. İşlemler >> Günlük Kaydı >> Günlük Gezgini
Sorguya aşağıdaki snippet'i girin ve çalıştır'ı tıklayın
resource.type:(http_load_balancer) AND jsonPayload.enforcedEdgeSecurityPolicy.name:(%SECURITY_POLICY_NAME%)
403 yanıtını ve zorunlu kılınan güvenlik politikasını not edin
Güvenlik politikasını kaldırma
Güvenlik politikasını kaldırın ve önbellekten nesneyi sorgulayın.
Ağ Güvenliği >> Cloud Armor >> %POLİTİKA ADASI% >> hedeflerini ve hedef paketi kaldırın.
Politikanın kaldırıldığını onaylayın
Birkaç dakika geçtikten sonra depolama paketindeki kaynağa başka bir curl gönderin. Bu sefer 200 yanıtı alacaksınız.
Terminalden
curl -svo /dev/null http://LOAD_BALANCER_IP/google.png
Çıkış
armanrye-macbookpro% curl -svo /dev/null http://34.98.81.123/google.png * Trying 34.98.81.123... * TCP_NODELAY set * Connected to 34.98.81.123 (34.98.81.123) port 80 (#0) > GET /google.png HTTP/1.1 > Host: YOUR_IP > User-Agent: curl/7.64.1 > Accept: */* > < HTTP/1.1 200 OK < X-GUploader-UploadID: ADPycdtI7f49P3MSuZSZ8vl6RwfwmnIDJ59EeSKp7UPvLPawdaiRHXiNWLtseQTxUxceWOvSLvpYmT3pWVkV4qeIP7M < Date: Mon, 13 Dec 2021 23:06:46 GMT < Last-Modified: Mon, 13 Dec 2021 21:45:57 GMT < ETag: "8f9327db2597fa57d2f42b4a6c5a9855" < x-goog-generation: 1639431957957903 < x-goog-metageneration: 2 < x-goog-stored-content-encoding: identity < x-goog-stored-content-length: 5969 < Content-Type: image/png < x-goog-hash: crc32c=TeiHTA== < x-goog-hash: md5=j5Mn2yWX+lfS9CtKbFqYVQ== < x-goog-storage-class: STANDARD < Accept-Ranges: bytes < Content-Length: 5969 < Server: UploadServer < Age: 1621 < Cache-Control: public,max-age=3600 < { [775 bytes data] * Connection #0 to host 34.98.81.123 left intact * Closing connection 0
Tebrikler! Cloud Armor Edge Güvenlik Politikaları ile ilgili bu laboratuvarı tamamladınız.
©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.
9. Laboratuvar Temizleme
Ağ Güvenliği >> Cloud Armor >> %POLICY NAME% ile Sil'i seçin
Cloud Storage'a gidin ve oluşturduğunuz paketi seçin ve Sil'i tıklayın.
Ağ iletişimi >> bölümüne gidin. Ağ hizmetleri >> Yük dengeleme. Oluşturduğunuz yük dengeleyiciyi seçin ve Sil'i tıklayın.
10. Tebrikler!
Cloud Armor codelab'de bulunan Uç Önbelleği Savunma işlemini tamamladınız.
İşlediklerimiz
- Cloud Storage paketi ve ilişkili bulut yük dengeleyici oluşturma
- Cloud Armor Edge Güvenlik Politikası oluşturma
- Edge Güvenlik Politikası'nın beklendiği gibi çalıştığını doğrulama.
Sonraki adımlar
- Compute Engine kaynağından önbellek isabetiyle bir Edge Güvenlik Politikası ayarlamayı deneyin.