1. Giriş ve Genel Bakış
Infoblox tarafından desteklenen DNS Armor, Google Cloud iş yükleriniz için DNS katmanı güvenliği sağlayan, tümüyle yönetilen bir hizmettir. Gelişmiş tehdit algılayıcısı, operasyonel karmaşıklık veya performans ek yükü oluşturmadan saldırı zincirindeki en erken noktada (DNS sorgusu) kötü amaçlı etkinliği algılayacak şekilde tasarlanmıştır.
Bu codelab'de, DNS Armor hizmetini yapılandırma ve test etme ile ilgili adım adım talimatlar verilmektedir. Gerekli ağ altyapısını oluşturacak, tehdit algılayıcıyı oluşturacak, DNS tehditlerini simüle ederek hizmeti test edecek ve son olarak Günlük Gezgini'ni kullanarak tehdit günlüklerini analiz edeceksiniz.
Ne oluşturacaksınız?
Bu codelab'de aşağıdaki kaynakları sağlayacaksınız:
- İki VPC ağı:
network-avenetwork-b network-a,us-east4veus-central1bölgelerindeki alt ağları ve sanal makineleri içerir.network-b, yalnızcaus-east4içinde bir alt ağ ve sanal makine içerir.- DNS sorgularını incelemek üzere yapılandırılmış bir DNS Armor gelişmiş tehdit algılayıcısı.

Neler öğreneceksiniz?
- VPC'ler ve sanal makineler de dahil olmak üzere gerekli ağ kaynaklarının nasıl sağlanacağı.
- Gelişmiş tehdit algılayıcıyı dağıtma ve belirli ağları hariç tutma
- Tehdit simülasyonu komut dosyası kullanarak tehdit algılama yapılandırmasını doğrulama
- Günlük Gezgini'nde tehdit günlüklerini analiz etme
İhtiyacınız olanlar
- Google Cloud projesi.
gcloudkomut satırı aracına erişim.
2. Ön koşullar
Bu bölümde aşağıdaki görevleri gerçekleştireceksiniz:
- Google Cloud projenizin gerekli kuruluş politikası kısıtlamalarını karşıladığını doğrulayın.
- Kullanıcı hesabınızın gerekli IAM rollerine ve izinlerine sahip olduğunu doğrulayın.
- Bu codelab için gerekli olan Google Cloud API'lerini etkinleştirin.
- Compute Engine hizmet hesabına
roles/logging.viewerIAM rolünü atayın.
Kuruluş Politikası Kısıtlamaları
Bu codelab'i başarıyla tamamlamak için lütfen projenize uygulanan kuruluş politikası kısıtlamalarını doğrulayın. Belirli politikalar, gerekli kaynakların sağlanmasını engelleyebilir. Aşağıdaki kısıtlamalar bu codelab'in yapılandırmasını etkileyebilir:
constraints/gcp.resourceLocations: Kaynak oluşturabileceğiniz bölgeleri kısıtlar. Codelab içinus-east4veus-central1gerekir.constraints/compute.vmExternalIpAccess: Herkese açık IP adreslerine sahip sanal makinelerin oluşturulmasını engeller. Bu,--no-addressişaretinin codelab'deki kullanımını izlemezseniz kurulumu etkileyebilir.constraints/compute.shieldedVm: Korumalı sanal makinelerin oluşturulmasını zorunlu kılar. Bu durum, kod laboratuvarının sanal makine oluşturma komutlarında belirtilmediği için hataya neden olabilir.constraints/gcp.restrictServiceUsage: Hangi Google Cloud API'lerinin etkinleştirilebileceğini sınırlar vecompute.googleapis.com,networksecurity.googleapis.com,logging.googleapis.comvemonitoring.googleapis.com'ye izin vermezse codelab'i engelleyebilir.
IAM rolleri ve izinleri
Bu codelab'i başarıyla tamamlamak için lütfen kullanıcınıza verilen IAM rollerini ve izinlerini doğrulayın. Bu Codelab'i tamamlamak için aşağıdaki IAM rolleri ve izinleri gereklidir.
- Hizmet Kullanımı Yöneticisi (
roles/serviceusage.serviceUsageAdmin): Codelab için gerekli Google Cloud API'lerini etkinleştirmek üzere. - Compute Network Admin (
roles/compute.networkAdmin): VPC ağları, alt ağlar ve Cloud NAT oluşturup yönetmek için. - Compute Security Admin (
roles/compute.securityAdmin): Sanal makinelere SSH erişimi için güvenlik duvarı kurallarını yapılandırmak üzere. - Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1): Laboratuvar için gereken sanal makineleri oluşturmak ve yönetmek için kullanılır. - IAP Güvenli Tünel Kullanıcısı (
roles/iap.tunnelResourceAccessor): Identity-Aware Proxy (IAP) üzerinden SSH kullanarak sanal makinelere bağlanmak için. - Ağ Güvenliği Yöneticisi (
roles/networksecurity.admin): DNS Armor tehdit algılayıcısını oluşturmak ve yönetmek için. - Günlük Görüntüleyici (
roles/logging.viewer): Tehdit günlüklerini Günlük Gezgini'nde görüntülemek ve analiz etmek için kullanılır.
Google Cloud API'leri
Lütfen gerekli Google Cloud API'lerinin projenizde etkinleştirildiğinden emin olun.
1. Gerekli API'leri etkinleştirin. Cloud Shell'de aşağıdaki gcloud komutlarını çalıştırın.
gcloud services enable compute.googleapis.com \
networksecurity.googleapis.com \
logging.googleapis.com \
monitoring.googleapis.com
2. API'lerin etkinleştirildiğini doğrulayın. Cloud Shell'de aşağıdaki gcloud komutlarını çalıştırın.
gcloud services list --enabled
Compute Engine hizmet hesabı
Test komut dosyasının, Cloud Logging'deki tehdit günlüklerini okumak için izinleri olması gerekir. Komut dosyası, varsayılan Compute Engine hizmet hesabını kullanan bir sanal makineden yürütüleceğinden bu hizmet hesabına roles/logging.viewer IAM rolü atanmalıdır.
1. Ortam değişkenlerini ayarlayın. Cloud Shell'de aşağıdaki komutları çalıştırın.
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
2. Compute Engine hizmet hesabına günlük görüntüleyici rolü verin. Cloud Shell'de aşağıdaki gcloud komutlarını çalıştırın.
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \
--role="roles/logging.viewer"
3. Temel Ortam Kurulumu
Bu bölümde aşağıdaki görevleri gerçekleştireceksiniz:
- Özel alt ağlara sahip VPC ağları (
network-avenetwork-b) oluşturun. - Hem
network-ahem denetwork-b'de internet çıkışı için Cloud Router ve Cloud NAT'yi yapılandırın. - Hem
network-ahem denetwork-biçin IAP'nin IP aralığından sanal makinelere SSH erişimine izin veren güvenlik duvarı kuralları oluşturun. - Hem
network-ahem denetwork-biçinde genel IP adresleri olmadan Linux sanal makineleri sağlayın.
VPC'ler ve alt ağlar oluşturma
1. us-east4 ve us-central1 bölgelerinde network-a ve alt ağlarını oluşturun. Cloud Shell'de aşağıdaki gcloud komutları çalıştırın.
gcloud compute networks create network-a --subnet-mode=custom
gcloud compute networks subnets create subnet-a-use4 \
--network=network-a \
--range=10.10.0.0/24 \
--region=us-east4
gcloud compute networks subnets create subnet-a-usc1 \
--network=network-a \
--range=10.10.1.0/24 \
--region=us-central1
2. us-east4 bölgesinde network-b ve alt ağını oluşturun. Cloud Shell'de aşağıdaki gcloud komutları çalıştırın.
gcloud compute networks create network-b --subnet-mode=custom
gcloud compute networks subnets create subnet-b-use4 \
--network=network-b \
--range=10.20.0.0/24 \
--region=us-east4
İnternet çıkışını yapılandırma
1. network-a içinCloud Router ve Cloud NAT oluşturarak genel IP'si olmayan VM'lerin internete çıkışına izin verin.
gcloud compute routers create router-a-use4 \
--network=network-a \
--region=us-east4
gcloud compute routers nats create nat-a-use4 \
--router=router-a-use4 \
--auto-allocate-nat-external-ips \
--nat-all-subnet-ip-ranges \
--region=us-east4
gcloud compute routers create router-a-usc1 \
--network=network-a \
--region=us-central1
gcloud compute routers nats create nat-a-usc1 \
--router=router-a-usc1 \
--auto-allocate-nat-external-ips \
--nat-all-subnet-ip-ranges \
--region=us-central1
2. network-b içinCloud Router ve Cloud NAT oluşturarak genel IP'si olmayan VM'lerin internete çıkışına izin verin.
gcloud compute routers create router-b-use4 \
--network=network-b \
--region=us-east4
gcloud compute routers nats create nat-b-use4 \
--router=router-b-use4 \
--auto-allocate-nat-external-ips \
--nat