IAM tarafından yönetilen etiketlere sahip hiyerarşik güvenlik duvarı politikası

1. Giriş

Cloud Next Generation Firewall (NGFW)

Cloud Next Generation Firewall, Google Cloud iş yüklerinizi hem dahili hem de harici saldırılardan korumak için gelişmiş koruma özellikleri, mikro segmentasyon ve yaygın kapsam sunan, tamamen dağıtılmış bir güvenlik duvarı hizmetidir.

Cloud NGFW'nin aşağıdaki avantajları vardır:

  • Dağıtılmış güvenlik duvarı hizmeti: Cloud NGFW, sıfır güven güvenlik mimarisini etkinleştirmek için her iş yükünde durum bilgisi olan, tamamen dağıtılmış ana makine tabanlı bir zorunluluk sağlar.
  • Basitleştirilmiş yapılandırma ve dağıtım: Cloud NGFW, bir kaynak hiyerarşisi düğümüne eklenebilen ağ ve hiyerarşik güvenlik duvarı politikalarını uygular. Bu politikalar, Google Cloud kaynak hiyerarşisi genelinde tutarlı bir güvenlik duvarı deneyimi sağlar.
  • Ayrıntılı kontrol ve mikro segmentasyon: Güvenlik duvarı politikaları ve Identity and Access Management (IAM) tarafından yönetilen etiketlerin birleşimi, sanal özel bulut (VPC) ağlarında tek bir sanal makineye kadar hem istemci-sunucu hem de sanal makineler arası trafik için ayrıntılı kontrol sağlar.

Ağ güvenlik duvarı politikaları

Ağ güvenlik duvarı politikası, güvenlik duvarı kuralları için kapsayıcı görevi görür. Bir ağ güvenlik duvarı politikasında tanımlanan kurallar, politika bir VPC ağıyla ilişkilendirilene kadar hiçbir yerde zorunlu kılınmaz. Her VPC ağıyla ilişkili bir ağ güvenlik duvarı politikası olabilir. Ağ güvenlik duvarı politikaları, güvenlik duvarı kurallarında IAM tarafından yönetilen etiketleri (veya yalnızca etiketleri) destekler ve iş yüküne kimlik sağlamak için kullanılabilir.

Bir ağ güvenlik duvarı politikasının ağlar arasında paylaşılması ve IAM tarafından yönetilen etiketlerle entegrasyonu, güvenlik duvarlarının yapılandırılmasını ve yönetilmesini büyük ölçüde kolaylaştırır.

Ağ güvenlik duvarı politikasının kullanıma sunulmasıyla birlikte Google Cloud'un güvenlik duvarı politikaları artık aşağıdaki bileşenlerden oluşmaktadır:

  1. Hiyerarşik Güvenlik Duvarı Politikası
  2. VPC Güvenlik Duvarı Kuralları
  3. Global Network Firewall Policy (Küresel Ağ Güvenlik Duvarı Politikası) ve Regional Network Firewall Policy (Bölgesel Ağ Güvenlik Duvarı Politikası)

Hiyerarşik güvenlik duvarı politikaları, kaynak hiyerarşisindeki kuruluş ve klasör düğümlerinde desteklenir. VPC güvenlik duvarı kuralları ve ağ güvenlik duvarı politikaları ise VPC düzeyinde uygulanır. VPC güvenlik duvarı kuralları ile ağ güvenlik duvarı politikaları arasındaki en büyük fark, VPC güvenlik duvarı kurallarının yalnızca tek bir VPC ağına uygulanabilmesidir. Ağ güvenlik duvarı politikaları ise toplu güncellemeler gibi diğer avantajların yanı sıra tek bir VPC'ye veya bir grup VPC'ye eklenebilir.

Bu laboratuvarda, hiyerarşik güvenlik duvarı politikası ve genel ağ güvenlik duvarı politikası test edilecek.

Son olarak, her VPC ağıyla birlikte gelen örtülü güvenlik duvarı kurallarımız da vardır:

  • İşlemi izin ver olan ve hedefi 0.0.0.0/0 olan bir çıkış kuralı
  • Eylemi reddetme, kaynağı 0.0.0.0/0 olan bir giriş kuralı

Varsayılan olarak, yaptırım sırası aşağıdaki diyagramda gösterilir:

86df8f0d19c64e80.png

IAM tarafından yönetilen etiketler

Yeni Güvenlik duvarı politikası kurallarına entegre edilen etiketler, Google Cloud kaynak hiyerarşisinin kuruluş veya proje düzeyinde tanımlanan anahtar-değer çifti kaynaklardır. Bu tür bir etiket, adından da anlaşılacağı gibi, etikette kimin ne yapabileceğini belirten bir IAM erişim denetimi içerir. Örneğin, IAM izinleri, hangi asıl kullanıcıların etiketlere değer atayabileceğini ve hangi asıl kullanıcıların etiketleri kaynaklara ekleyebileceğini belirtmeye olanak tanır. Bir kaynağa etiket uygulandıktan sonra güvenlik duvarı politikası kuralları, trafiğe izin vermek ve trafiği reddetmek için bu etiketi kullanabilir.

Etiketler, Google Cloud'un devralma kaynak modeline uyar. Bu nedenle etiketler ve değerleri, üst öğelerinden hiyerarşi boyunca aktarılır. Bu nedenle, etiketler bir yerde oluşturulup kaynak hiyerarşisi genelindeki diğer klasörler ve projeler tarafından kullanılabilir. Etiketler ve erişim kısıtlaması hakkında daha fazla bilgi için bu sayfayı ziyaret edin.

Etiketler, ağ etiketleriyle karıştırılmamalıdır. Ağ etiketleri, Compute Engine örneklerine eklenebilen dizelerdir. Örnekle ilişkilendirilirler ve örnek hizmetten kaldırıldığında kaybolurlar. VPC güvenlik duvarı kuralları ağ etiketleri içerebilir ancak bulut kaynağı olarak kabul edilmediklerinden IAM erişim denetimine tabi değildir. Farkın ayrıntıları için bu sayfayı ziyaret edin.

2. Neler öğreneceksiniz?

  • Cloud NGFW ile ve global kapsamda kullanılmak üzere IAM tarafından yönetilen etiketler oluşturma.
  • Sanal makinelere etiket ekleme
  • Hiyerarşik güvenlik duvarı politikası oluşturma ve bunu bir klasörle ilişkilendirme
  • Hiyerarşik güvenlik duvarı politikasında güvenlik duvarı kuralı oluşturma ve IAM tarafından yönetilen etiketleri kullanarak kaynağı ve hedefi belirtme

3. Genel Laboratuvar Mimarisi

1bfe78ad755496e5.png

Kuruluş ve Klasörler:

  • Doğrudan kuruluşunuzun altında folder1 ve folder2 olmak üzere iki klasör oluşturacaksınız.

Projeler:

  • folder1 içinde bir ana makine projesi oluşturursunuz. Bu proje, Paylaşılan VPC ağını içerir.
  • folder2 içinde bir hizmet projesi oluşturacaksınız. Bu proje, Paylaşılan VPC'yi kullanan VM'leri içerir.

Ağ iletişimi:

  • Ana makine projesinde mynet adlı bir VPC ağı oluşturulur ve Paylaşılan VPC olarak yapılandırılır. Bu, hizmet projesindeki kaynakların ağı kullanmasına olanak tanır.
  • Hizmet projesinde iki sanal makine oluşturulur ve mynet Paylaşılan VPC'ye bağlanır.

IAM tarafından yönetilen etiketler:

  • Kuruluş düzeyinde http_tags adlı, IAM tarafından yönetilen bir etiket oluşturacaksınız. Bu etiketin http_server ve http_client adlı iki değeri olacak. Bu etiket/değerler, sanal makineleri tanımlamak ve güvenlik duvarı kurallarını uygulamak için kullanılır.

Güvenlik Duvarı Politikaları:

  • Hiyerarşik güvenlik duvarı politikası oluşturulur ve folder1 ile ilişkilendirilir. Bu politikadaki bir kural, 80 numaralı bağlantı noktasında http-client'dan http-server'ye trafik akışına izin vermek için IAM tarafından yönetilen etiketleri kullanır.
  • Ana makine projesinde bir ağ güvenlik duvarı politikası oluşturulur ve mynet VPC'siyle ilişkilendirilir. Bu politika, test amacıyla sanal makinelere IAP SSH erişimine izin veren bir kural içerir.

4. Hazırlık adımları

Öncelikle Google Cloud kuruluşunuzda gerekli IAM rollerini, ağ altyapısını ve örneklerini ayarlayın.

Laboratuvarda çalışmak için gereken IAM rolleri

Öncelikle kuruluş düzeyinde GCP hesabına gerekli IAM rollerini atayarak başlarız.

  • Kuruluş Yöneticisi (roles/resourcemanager.organizationAdmin): Bu rol, kuruluşlar, klasörler ve projeler için IAM politikalarını yönetmenize ve kuruluş politikalarını görüntülemenize olanak tanır.
  • Etiket Yöneticisi(roles/resourcemanager.tagAdmin): Bu rol, güvenli etiketler oluşturmanıza, güncellemenize ve silmenize olanak tanır.
  • Etiket Kullanıcısı rolü (roles/resourcemanager.tagUser): Bu rol, güvenli etiketlerin listesine erişmenize ve kaynaklarla olan ilişkilendirmelerini yönetmenize olanak tanır.
  • Compute Kuruluş Güvenlik Duvarı Politikası Yöneticisi rolü (roles/compute.orgFirewallPolicyAdmin): Bu rol, Compute Engine Kuruluşu Güvenlik Duvarı Politikaları üzerinde tam kontrol sağlar.
  • Compute Kuruluş Kaynak Yöneticisi rolü (roles/compute.orgSecurityResourceAdmin): Bu rol, kuruluş veya klasörle Compute Engine Güvenlik Duvarı Politikası ilişkilendirmeleri üzerinde tam kontrol sağlar.
  • Compute Ağ Yöneticisi (roles/compute.networkAdmin): Bu rol, Compute Engine ağ iletişimi kaynakları üzerinde tam kontrol sağlar.
  • Compute Instance Admin( beta) (roles/compute.instanceAdmin): Bu rol, Compute Engine örneği kaynaklarının tam kontrolünü sağlar.
  • Günlük kaydı yöneticisi (roles/logging.admin): Bu rol, tüm günlük kaydı izinlerine ve bunlara bağlı izinlere erişmenizi sağlar.
  • Hizmet Hesabı Yöneticisi (roles/iam.serviceAccountAdmin): Bu rol, hizmet hesapları oluşturmanıza ve yönetmenize olanak tanır.
  • Hizmet Kullanımı Yöneticisi (roles/serviceusage.serviceUsageAdmin): Bu rol, hizmet durumlarını etkinleştirme, devre dışı bırakma ve inceleme; işlemleri inceleme ve tüketici projeleri için kota tüketimi ve faturalandırma yetkisi verir.
  • Compute Paylaşılan VPC Yöneticisi (roles/compute.xpnAdmin): Bu rol, paylaşılan bir VPC ağını (XPN) yönetmenize olanak tanır.

Klasör ve proje oluşturma

Cloud Shell'de folder1 ve folder2 oluşturmak için aşağıdakileri yapın:

gcloud auth login

export org_id=$(gcloud organizations list --format='value(ID)')
export BILLING_ACCOUNT_ID=$(gcloud billing accounts list --format='value(ACCOUNT_ID)')
export folder1=[FOLDER1 NAME]
export folder2=[FOLDER2 NAME]
export hostproject=[HOST PROJECT NAME]
export serviceproject=[SERVICE PROJECT NAME]
export regionname=[REGION NAME]
export zonename=[COMPUTE ZONE NAME]

gcloud resource-manager folders create --display-name=$folder1 --organization=$org_id
export folder1_id=$(gcloud resource-manager folders list --organization=$org_id --filter="displayName=$folder1" --format="value(ID)")
gcloud resource-manager folders create --display-name=$folder2 --organization=$org_id
export folder2_id=$(gcloud resource-manager folders list --organization=$org_id --filter="displayName=$folder2" --format="value(ID)")

Cloud Shell'de, folder1 altında ana makine projesini oluşturmak için aşağıdakileri yapın:

gcloud projects create  --name=$hostproject --folder=$folder1_id

Aşağıdaki ekranı görürsünüz. Projeyi yeni proje kimliğiyle oluşturmak için Y tuşuna basın.

No project ID provided.

Use [NEW-PROJECT-ID] as project ID (Y/n)?

Proje kimliğini not edin. Cloud Shell'de, anahtarı hostproject_id'ye aktarmak için aşağıdakileri yapın:

export hostproject_id=[HOSTPROJECT ID]

Cloud Shell'de, ana makine projesini faturalandırma hesabına bağlamak için aşağıdakileri yapın:

gcloud billing projects link $hostproject_id \
--billing-account=$BILLING_ACCOUNT_ID

Cloud Shell'de, folder2 altında hizmet projesi oluşturmak için aşağıdakileri yapın:

gcloud projects create  --name=$serviceproject --folder=$folder2_id

Aşağıdaki ekranı görürsünüz. Projeyi yeni proje kimliğiyle oluşturmak için Y tuşuna basın.

No project ID provided.

Use [NEW-PROJECT-ID] as project ID (Y/n)?

Proje kimliğini not edin. Cloud Shell'de, anahtarı serviceproject_id'ye aktarmak için aşağıdakileri yapın:

export serviceproject_id=[SERVICEPROJECT ID]

Cloud Shell'de, hizmet projesini faturalandırma hesabına bağlamak için aşağıdakileri yapın:

gcloud billing projects link $serviceproject_id \
--billing-account=$BILLING_ACCOUNT_ID

IAM tarafından yönetilen etiketler oluşturma

Etiket, bir kuruluşa, klasöre veya projeye eklenebilen bir anahtar/değer çiftidir. Daha fazla bilgi için Etiket oluşturma ve yönetme ve gerekli izinler başlıklı makaleleri inceleyin.

Kuruluş düzeyinde tek bir etiket oluştururuz: http-tags. Etiketin amacı, Cloud NGFW'nin kullanılmasıdır. Kapsamı tek bir ağla sınırlamıyoruz. Etiket, global kapsamlıdır. Daha sonra etiketi, folder2 altındaki hizmet projesinde oluşturulan sanal makinelere uygulayacağız.

Cloud Shell'de aşağıdakileri yapın:

gcloud resource-manager tags keys create http_tags \
    --parent=organizations/$org_id \
    --purpose GCE_FIREWALL \
    --purpose-data organization=auto

Oluşturma sırasında VM'ye açıklama eklemek için etiket anahtarı kimliğini kullanırız. Etiket anahtarı kimliğini almak için Cloud Shell'de aşağıdakileri yapın:

export http_tags_id=$(gcloud resource-manager tags keys describe $org_id/http_tags --format="value(name)")
echo $http_tags_id

Cloud Shell'de iki yeni etiket değeri (http_server ve http_client) oluşturmak için aşağıdakileri yapın:

 gcloud resource-manager tags values create http_server \
      --parent $org_id/http_tags
 gcloud resource-manager tags values create http_client \
      --parent $org_id/http_tags

Oluşturma sırasında sanal makineye açıklama eklemek için etiket kimliğini ve etiket değeri kimliğini kullanırız. Cloud Shell'de http_server ve http_client etiket değerinin kimliğini almak için aşağıdakileri yapın:

export http_tags_http_server_id=$(gcloud resource-manager tags values describe $org_id/http_tags/http_server --format="value(name)")
echo $http_tags_http_server_id

export http_tags_http_client_id=$(gcloud resource-manager tags values describe $org_id/http_tags/http_client --format="value(name)")
echo $http_tags_http_client_id

Ana makine projesinde ve hizmet projesinde API'leri etkinleştirme

Cloud Shell'de aşağıdakileri yapın:

gcloud services enable compute.googleapis.com --project=$serviceproject_id
gcloud services enable compute.googleapis.com --project=$hostproject_id

Ana makine projesinde VPC oluşturma

Ana makine projesinde özel alt ağ moduna sahip bir VPC ağı oluşturun ve Cloud Shell'de aşağıdakileri yapın:

gcloud compute networks create mynet \
    --subnet-mode=custom \
    --project=$hostproject_id

Ana makine projesinde alt ağlar oluşturma

Cloud Shell'de bir IPv4 alt ağı oluşturmak için aşağıdakileri yapın:

gcloud compute networks subnets create mysubnet \
    --network=mynet \
    --range=10.0.0.0/28 \
    --region=$regionname \
    --project=$hostproject_id

Ana makine projesinde Paylaşılan VPC'yi etkinleştirme

Cloud Shell'de, ana makine projesinde Paylaşılan VPC'yi etkinleştirmek için aşağıdakileri yapın:

gcloud compute shared-vpc enable $hostproject_id

Ana makine projesinde Paylaşılan VPC için hizmet projesi ekleme

Cloud Shell'de, ana makine projesindeki Paylaşılan VPC için hizmet projesini eklemek üzere aşağıdakileri yapın:

gcloud compute shared-vpc associated-projects add $serviceproject_id --host-project=$hostproject_id 

Ana makine projesinde Cloud Router ve Cloud NAT oluşturma

Cloud NAT, sanal makinelerin uygulama indirmesi ve yüklemesi için internet çıkışına izin vermek amacıyla kullanılır.

gcloud compute routers create $regionname-cr \
   --network=mynet \
   --region=$regionname \
   --project=$hostproject_id
gcloud compute routers nats create $regionname-nat \
    --router=$regionname-cr \
    --region=$regionname \
    --nat-all-subnet-ip-ranges \
    --auto-allocate-nat-external-ips \
    --project=$hostproject_id

Hizmet projesinde örnek oluşturma

Hizmet projesinde, ana makine projesindeki paylaşılan VPC'de yeni oluşturduğunuz alt ağlarda iki örnek oluşturun. Bir örneğin adı http-server ve http_tags etiketini http_server değeriyle açıklama olarak ekliyoruz. Diğer örnek http-client olarak adlandırılır ve http_tags etiketini http_client değeriyle not ekleriz. Cloud Shell'de aşağıdaki komutları çalıştırın:

gcloud compute instances create http-client \
    --project=$serviceproject_id \
   --subnet=projects/$hostproject_id/regions/$regionname/subnetworks/mysubnet \
    --zone=$zonename \
    --no-address \
    --resource-manager-tags=$http_tags_id=$http_tags_http_client_id

gcloud compute instances create http-server \
    --project=$serviceproject_id \
    --subnet=projects/$hostproject_id/regions/$regionname/subnetworks/mysubnet \
    --zone=$zonename \
    --no-address \
    --resource-manager-tags=$http_tags_id=$http_tags_http_server_id \
    --metadata startup-script='#! /bin/bash
    sudo apt-get update
    sudo apt-get install apache2 -y
    a2enmod ssl
    sudo a2ensite default-ssl
    echo "I am a Http Server." | \
    tee /var/www/html/index.html
    systemctl restart apache2'

http-server dahili IP'sini not edin. Bu adresi sonraki güvenlik duvarı kuralı test adımında kullanacağız.

export http_server_ip=$(gcloud compute instances describe http-server --zone $zonename --format='value(networkInterfaces[0].networkIP)' --project $serviceproject_id)
echo $http_server_ip

5. Ana makine projesinde genel bir ağ güvenlik duvarı politikası oluşturma

Ana makine projesinde genel bir ağ güvenlik duvarı politikası oluşturup ana makine projesindeki paylaşılan VPC ile ilişkilendiririz.

gcloud config set project $hostproject_id
gcloud compute network-firewall-policies create  mynet-fw-policy \
--global \
--project=$hostproject_id
gcloud compute network-firewall-policies associations create \
    --firewall-policy=mynet-fw-policy \
    --network=mynet \
    --name=mynet-fw-policy \
    --global-firewall-policy \
    --project=$hostproject_id

IAP'nin sanal makine örneklerinize bağlanmasına izin vermek için ağ güvenlik duvarı politikasında bir güvenlik duvarı kuralı oluşturun:

  • IAP kullanarak erişmek istediğiniz tüm sanal makine örnekleri için geçerlidir.
  • 35.235.240.0/20 IP aralığından gelen giriş trafiğine izin verir. Bu aralık, IAP'nin TCP yönlendirme için kullandığı tüm IP adreslerini içerir.
gcloud compute network-firewall-policies rules create 1000 \
    --action=ALLOW \
    --firewall-policy=mynet-fw-policy \
    --description="mynet-allow-iap" \
    --direction=INGRESS \
    --src-ip-ranges=35.235.240.0/20 \
    --layer4-configs=tcp:22  \
    --global-firewall-policy \
    --project=$hostproject_id

Konsolda ana makine projesine gidip yeni oluşturulan genel ağ güvenlik duvarı politikasını Güvenlik Duvarı Politikası altında bulabilirsiniz. Yeni oluşturulan güvenlik duvarı kuralını ağ güvenlik duvarı politikasında kontrol edebilirsiniz. Bu bağlantı sizi konsola yönlendirir. Lütfen konsolda proje seçiciyi ana makine projesi olarak değiştirdiğinizden emin olun.

6. HTTP istemci sanal makinesinden HTTP sunucu sanal makinesine erişimi test etme

http-client adlı sanal makineye SSH ile bağlanın ve http 80 bağlantı noktasında http-server'ye erişip erişemediğini test edin.

Cloud Shell'de aşağıdakileri yapın:

gcloud compute ssh \
    --zone=$zonename "http-client" \
    --tunnel-through-iap \
    --project=$serviceproject_id

Web sunucusuna erişmek için curl'ü kullanın.

curl -m 10 [http_server_ip]

Curl komutunun sonucunu görürsünüz. http-server için 80 numaralı bağlantı noktasına izin veren bir giriş güvenlik duvarı kuralı yok.

Bağlantı 10.000 milisaniye sonra zaman aşımına uğradı.

SSH oturumundan çıkarak Cloud Shell'e dönün.

exit

7. Hiyerarşik güvenlik duvarı politikası ve güvenlik duvarı kuralları oluşturma

folder1 konumunda bir hiyerarşik güvenlik duvarı politikası oluşturup bu politikayı folder1 ile ilişkilendireceğiz. Politikadaki güvenlik duvarı kuralları, folder1 altındaki ana makine projesine uygulanır.

Hiyerarşik güvenlik duvarı politikası oluşturma

gcloud compute firewall-policies create \
  --folder=$folder1_id \
  --short-name=my-folder1-fw-policy

Hiyerarşik güvenlik duvarı politikasında güvenlik duvarı kuralı oluşturma

Bu kural, http_tags/http_client etiket değerine sahip sanal makinelerin 80 numaralı TCP bağlantı noktasında http_tags/http_server etiket değerine sahip sanal makinelere erişmesine olanak tanır.

gcloud compute firewall-policies rules create 100 \
  --organization=$org_id \
  --firewall-policy my-folder1-fw-policy \
  --direction=INGRESS \
  --layer4-configs=tcp:80 \
  --action=allow \
  --src-secure-tags=$org_id/http_tags/http_client \
  --target-secure-tags=$org_id/http_tags/http_server \
  --description=folder1-allow-http

Hiyerarşik güvenlik duvarı politikasını klasör1 ile ilişkilendirin.

gcloud compute firewall-policies associations create \
   --firewall-policy=my-folder1-fw-policy \
   --folder=$folder1_id \
   --name=my-folder1-fw-policy\
   --organization=$org_id

Konsolda folder1 simgesine gidip Güvenlik Duvarı Politikası bölümünde yeni oluşturulan hiyerarşik güvenlik duvarı politikasını bulabilirsiniz. Güvenlik duvarı politikası, "Bu klasörde bulunan güvenlik duvarı politikaları" bölümünde gösterilir. Yeni oluşturulan güvenlik duvarı kuralını hiyerarşik güvenlik duvarı politikasında kontrol edebilirsiniz. Bu bağlantı sizi konsola yönlendirir. Lütfen konsolda proje seçiciyi folder1 olarak değiştirdiğinizden emin olun.

8. HTTP istemci sanal makinesinden HTTP sunucu sanal makinesine erişimi test etme

Ana makine projesindeki paylaşılan VPC'ye uygulanan etkin güvenlik duvarı politikalarını kontrol edin.

Cloud Shell'de aşağıdakileri yapın:

gcloud compute networks get-effective-firewalls mynet --project=$hostproject_id

Devralınan hiyerarşik güvenlik duvarı politikasını şu şekilde görürsünüz:

TYPE: org-firewall
FIREWALL_POLICY_NAME: <NUMBER_FOR_YOUR_FW_POLICY>
FIREWALL_POLICY_PRIORITY: 
PRIORITY: 100
ACTION: ALLOW
DIRECTION: INGRESS
DISABLED: False
IP_RANGES:

You will see the network firewall policy to the VPC like this:
TYPE: network-firewall-policy
FIREWALL_POLICY_NAME: mynet-fw-policy
FIREWALL_POLICY_PRIORITY: 1000
PRIORITY: 1000
ACTION: ALLOW
DIRECTION: INGRESS
DISABLED: False
IP_RANGES: 35.235.240.0/20

http-client adlı sanal makineye SSH ile bağlanın ve http 80 bağlantı noktasında http-server'ye erişip erişemediğini test edin.

Cloud Shell'de aşağıdakileri yapın:

gcloud compute ssh \
    --zone=$zonename "http-client" \
    --tunnel-through-iap \
    --project=$serviceproject_id

Web sunucusuna erişmek için curl'ü kullanın.

curl [http_server_ip]

Curl komutunun http-server adresinden yanıtı başarıyla döndürdüğünü görürsünüz.

I am a Http Server.

Hiyerarşik güvenlik duvarı politikasından gelen giriş güvenlik duvarı kuralı, 80 numaralı bağlantı noktasında http-client ile http-server arasındaki erişime izin veriyor.

SSH oturumundan çıkarak Cloud Shell'e dönün.

exit

9. Temizleme

Hizmet projesindeki sanal makineleri temizleme

Cloud Shell'de aşağıdakileri yapın:

gcloud compute instances delete http-server --zone $zonename --project=$serviceproject_id
gcloud compute instances delete http-client --zone $zonename --project=$serviceproject_id

Hiyerarşik güvenlik duvarı politikasını temizleme

Cloud Shell'de aşağıdakileri yapın:

gcloud compute firewall-policies associations delete my-folder1-fw-policy \
   --firewall-policy=my-folder1-fw-policy \
   --organization=$org_id
gcloud compute firewall-policies rules delete 100 \
  --organization=$org_id \
  --firewall-policy=my-folder1-fw-policy
gcloud compute firewall-policies delete my-folder1-fw-policy \
  --organization=$org_id

Kuruluş düzeyinde etiketleri temizleme

Cloud Shell'de aşağıdakileri yapın:

gcloud resource-manager tags values delete $http_tags_http_server_id
gcloud resource-manager tags values delete $http_tags_http_client_id
gcloud resource-manager tags keys delete $http_tags_id

Ana makine projesini temizleme

Cloud Shell'de aşağıdakileri yapın:

gcloud compute shared-vpc associated-projects remove $serviceproject_id --host-project=$hostproject_id 
gcloud compute shared-vpc disable $hostproject_id
gcloud projects delete $hostproject_id

Hizmet projesini temizleme

Cloud Shell'de aşağıdakileri yapın:

gcloud projects delete $serviceproject_id

Klasörleri temizleme

Cloud Shell'de aşağıdakileri yapın:

gcloud resource-manager folders delete $folder1_id
gcloud resource-manager folders delete $folder2_id

10. Tebrikler

IAM tarafından yönetilen etiketlerle hiyerarşik güvenlik duvarı politikasını başarıyla test ettiniz.