1. مقدمة
Cloud Next Generation Firewall (NGFW)
Cloud Next Generation Firewall هي خدمة جدار حماية موزّعة بالكامل تتضمّن إمكانات حماية متقدّمة وتقسيمًا دقيقًا وتغطية شاملة لحماية أحمال عمل Google Cloud من الهجمات الداخلية والخارجية.
تتضمّن Cloud NGFW المزايا التالية:
- خدمة جدار الحماية الموزّع: يوفّر Cloud NGFW تنفيذًا كاملاً وموزّعًا ومستندًا إلى المضيف لكل عبء عمل من أجل تفعيل بنية أمان تعتمد على "نهج الثقة المعدومة".
- إعداد ونشر مبسطان: تنفّذ خدمة Cloud NGFW سياسات شبكة وجدار حماية هرمية يمكن ربطها بعقدة التسلسل الهرمي للموارد. توفّر هذه السياسات تجربة جدار حماية متسقة في جميع أنحاء التسلسل الهرمي لموارد Google Cloud.
- التحكّم الدقيق والتقسيم الدقيق: يوفّر الجمع بين سياسات جدار الحماية والعلامات التي تحكمها خدمة "إدارة الهوية والوصول" (IAM) تحكّمًا دقيقًا في كل من حركة البيانات من الشمال إلى الجنوب ومن الشرق إلى الغرب، وصولاً إلى جهاز افتراضي واحد، وذلك على مستوى شبكات السحابة الإلكترونية الافتراضية الخاصة (VPC).
سياسات جدار الحماية بين الشبكات
تعمل سياسة جدار الحماية بين الشبكات كحاوية لقواعد جدار الحماية. لا يتم فرض القواعد المحدّدة في سياسة جدار حماية بين الشبكات في أي مكان إلى أن يتم ربط السياسة بشبكة سحابة VPC. يمكن أن تتضمّن كل شبكة VPC سياسة واحدة لجدار الحماية بين الشبكات مرتبطة بها. تتيح سياسات جدار الحماية بين الشبكات استخدام العلامات التي تديرها خدمة "إدارة الهوية وإمكانية الوصول" (أو العلامات فقط) في قواعد جدار الحماية، ويمكن استخدامها لتوفير هوية لعبء العمل.
يؤدي مشاركة سياسة جدار الحماية بين الشبكات بين الشبكات والدمج مع العلامات التي تحكمها خدمة "إدارة الهوية وإمكانية الوصول" إلى تبسيط عملية إعداد وإدارة برامج جدار الحماية بشكل كبير.
مع طرح سياسة جدار حماية بين الشبكات، أصبحت سياسات جدار الحماية في Google Cloud تتألف من المكوّنات التالية:
- سياسة جدار الحماية الهرمية
- قواعد جدار الحماية في شبكة VPC
- سياسة جدار الحماية بين الشبكات على مستوى العالم وسياسة جدار الحماية بين الشبكات على مستوى المنطقة
تتوفّر سياسات جدار الحماية الهرمية على مستوى المؤسسة وعُقد المجلدات ضمن التسلسل الهرمي للموارد، بينما يتم تطبيق قواعد جدار الحماية في شبكة VPC وسياسات جدار الحماية بين الشبكات على مستوى شبكة VPC. يتمثّل الاختلاف الكبير بين قواعد جدار الحماية في شبكة VPC وسياسات جدار حماية بين الشبكات في أنّه لا يمكن تطبيق قواعد جدار الحماية في شبكة VPC إلا على شبكة VPC واحدة، بينما يمكن ربط سياسات جدار حماية بين الشبكات بشبكة VPC واحدة أو مجموعة من شبكات VPC، بالإضافة إلى مزايا أخرى مثل التعديلات المجمّعة.
في هذا التمرين العملي، سنختبر "سياسة جدار الحماية الهرمية" و"سياسة جدار الحماية على مستوى الشبكة العالمية".
أخيرًا، لدينا أيضًا قواعد جدار الحماية الضمنية التي تأتي مع كل شبكة VPC:
- قاعدة خروج يكون إجراءها السماح، والوجهة 0.0.0.0/0
- قاعدة دخول يكون إجراءها هو الرفض، والمصدر هو 0.0.0.0/0
يتم عرض تسلسل الفرض تلقائيًا في المخطّط البياني التالي:

العلامات التي تحكمها إدارة الهوية وإمكانية الوصول
العلامات المدمجة في قواعد سياسة جدار الحماية هي موارد أزواج المفتاح/القيمة المحدّدة على مستوى المؤسسة أو المشروع في التسلسل الهرمي لموارد Google Cloud. تحتوي هذه العلامة على عنصر تحكّم في الوصول إلى IAM، كما يشير الاسم، يحدّد مَن يمكنه تنفيذ أي إجراء على العلامة. تسمح أذونات "إدارة الهوية وإمكانية الوصول"، على سبيل المثال، بتحديد الجهات الرئيسية التي يمكنها تعيين قيم للعلامات والجهات الرئيسية التي يمكنها إرفاق العلامات بالموارد. بعد تطبيق علامة على أحد الموارد، يمكن أن تستخدمها قواعد سياسة جدار الحماية للسماح بحركة المرور ورفضها.
تلتزم العلامات بنموذج الموارد الموروثة في Google Cloud، ما يعني أنّه يتم نقل العلامات وقيمها في جميع أنحاء التسلسل الهرمي من العناصر الرئيسية. نتيجةً لذلك، يمكن إنشاء العلامات في مكان واحد ثم استخدامها في مجلدات ومشاريع أخرى في جميع أنحاء التدرّج الهرمي للموارد. يُرجى الانتقال إلى هذه الصفحة لمزيد من التفاصيل حول العلامات وقيود الوصول.
يجب عدم الخلط بين العلامات وعلامات الشبكة، فالأخيرة هي سلاسل يمكن إضافتها إلى مثيلات Compute Engine، وهي مرتبطة بالمثيل وتختفي عند إيقاف تشغيل المثيل. قد تتضمّن قواعد جدار الحماية في شبكة VPC علامات شبكة، ولكن بما أنّها لا تُعدّ من موارد السحابة الإلكترونية، فهي لا تخضع للتحكّم في الوصول في "إدارة الهوية وإمكانية الوصول". يُرجى الانتقال إلى هذه الصفحة للاطّلاع على تفاصيل الفرق.
2. أهداف الدورة التعليمية
- كيفية إنشاء علامات محكومة بإدارة الهوية وإمكانية الوصول (IAM) لاستخدامها مع Cloud NGFW ونطاق عالمي
- كيفية ربط العلامات بالأجهزة الافتراضية
- كيفية إنشاء سياسة جدار حماية هرمية وربطها بمجلد
- كيفية إنشاء قاعدة جدار حماية في "سياسة جدار الحماية الهرمية" وتحديد المصدر والهدف باستخدام العلامات التي تحكمها إدارة الهوية وإمكانية الوصول
3- البنية العامة للمختبر

المؤسسة والمجلدات:
- ستنشئ مجلدَين،
folder1وfolder2، مباشرةً ضمن مؤسستك.
المشاريع:
- داخل
folder1، عليك إنشاء مشروع مضيف. سيحتوي هذا المشروع على شبكة VPC مشتركة. - داخل
folder2، ستنشئ مشروع خدمة. سيحتوي هذا المشروع على الأجهزة الافتراضية التي تستخدم شبكة VPC المشتركة.
التواصل:
- سيتم إنشاء شبكة VPC باسم
mynetفي المشروع المضيف وسيتم ضبطها على أنّها شبكة VPC مشتركة. يتيح ذلك للموارد في مشروع الخدمة استخدام الشبكة. - سيتم إنشاء جهازَين افتراضيَين في مشروع الخدمة وربطهما بشبكة
mynetVPC المشتركة.
العلامات التي تحكمها إدارة الهوية وإمكانية الوصول (IAM):
- ستنشئ علامة محكومة بإدارة الهوية وإمكانية الوصول (IAM) باسم
http_tagsبقيمتَين، وهماhttp_serverوhttp_clientعلى مستوى المؤسسة. سيتم استخدام هذه العلامات/القيم لتحديد قواعد جدار الحماية وتطبيقها على الأجهزة الافتراضية.
سياسات جدار الحماية:
- سيتم إنشاء سياسة جدار حماية هرمية وربطها بـ
folder1. ستستخدم قاعدة ضمن هذه السياسة العلامات التي تحكمها إدارة الهوية وإمكانية الوصول (IAM) للسماح بنقل البيانات منhttp-clientإلىhttp-serverعلى المنفذ 80. - سيتم إنشاء سياسة جدار حماية الشبكة في المشروع المضيف وربطها بشبكة VPC
mynet. ستتضمّن هذه السياسة قاعدة للسماح بالوصول إلى الأجهزة الافتراضية من خلال بروتوكول SSH في خدمة IAP لأغراض الاختبار.
4. خطوات التحضير
أولاً، عليك إعداد أدوار إدارة الهوية وإمكانية الوصول (IAM) وبنية الشبكة التحتية والآلات الافتراضية اللازمة في مؤسستك على Google Cloud.
أدوار "إدارة الهوية وإمكانية الوصول" المطلوبة للعمل في المختبر
نبدأ بإسناد أدوار إدارة الهوية وإمكانية الوصول (IAM) المطلوبة إلى حساب Google Cloud Platform على مستوى المؤسسة.
- مشرف المؤسسة (
roles/resourcemanager.organizationAdmin): يتيح لك هذا الدور إدارة سياسات إدارة الهوية وإمكانية الوصول والاطّلاع على سياسات المؤسسة للمؤسسات والمجلدات والمشاريع. - مشرف العلامة(
roles/resourcemanager.tagAdmin): يتيح لك هذا الدور إنشاء علامات آمنة وتعديلها وحذفها. - دور "مستخدم العلامة" (
roles/resourcemanager.tagUser): يتيح لك هذا الدور الوصول إلى قائمة العلامات الآمنة وإدارة عمليات الربط بينها وبين المراجع. - دور "مشرف سياسات جدار الحماية في المؤسسة" في Compute (
roles/compute.orgFirewallPolicyAdmin): يمنحك هذا الدور تحكّمًا كاملاً في "سياسات جدار الحماية في المؤسسة" في Compute Engine. - دور "مشرف موارد المؤسسة في Compute" (
roles/compute.orgSecurityResourceAdmin): يمنحك هذا الدور إمكانية التحكّم الكامل في عمليات ربط "سياسة جدار الحماية" في Compute Engine بالمؤسسة أو المجلد. - مشرف شبكة Cloud Compute (
roles/compute.networkAdmin): يمنحك هذا الدور التحكّم الكامل في موارد الشبكات في Compute Engine. - مشرف مثال Cloud Compute( إصدار تجريبي) (
roles/compute.instanceAdmin): يمنحك هذا الدور إمكانية التحكّم الكامل في موارد مثيلات Compute Engine. - مشرف التسجيل (
roles/logging.admin): يمنحك هذا الدور إذن الوصول إلى جميع أذونات التسجيل والأذونات التابعة. - مشرف حساب الخدمة (
roles/iam.serviceAccountAdmin): يتيح لك هذا الدور إنشاء حسابات الخدمة وإدارتها. - مشرف استخدام الخدمة (
roles/serviceusage.serviceUsageAdmin): يمنحك هذا الدور إمكانية تفعيل حالات الخدمة وإيقافها وفحصها، وفحص العمليات، واستهلاك الحصة والفوترة لمشروع مستهلك. - مشرف شبكة VPC المشتركة في Compute (
roles/compute.xpnAdmin): يتيح لك هذا الدور إدارة شبكة VPC مشتركة (XPN).
إنشاء مجلدات ومشاريع
في Cloud Shell، اتّبِع الخطوات التالية لإنشاء folder1 وfolder2:
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، اتّبِع الخطوات التالية لإنشاء مشروع المضيف ضمن folder1:
gcloud projects create --name=$hostproject --folder=$folder1_id
سيظهر لك ما يلي. اضغط على Y لإنشاء المشروع باستخدام رقم تعريف المشروع الجديد.
No project ID provided.
Use [NEW-PROJECT-ID] as project ID (Y/n)?
دوِّن رقم تعريف المشروع. داخل Cloud Shell، نفِّذ ما يلي لتصديره إلى hostproject_id:
export hostproject_id=[HOSTPROJECT ID]
في Cloud Shell، اتّبِع الخطوات التالية لربط المشروع المضيف بحساب الفوترة:
gcloud billing projects link $hostproject_id \
--billing-account=$BILLING_ACCOUNT_ID
داخل Cloud Shell، نفِّذ ما يلي لإنشاء مشروع الخدمة ضمن folder2:
gcloud projects create --name=$serviceproject --folder=$folder2_id
سيظهر لك ما يلي. اضغط على Y لإنشاء المشروع باستخدام رقم تعريف المشروع الجديد.
No project ID provided.
Use [NEW-PROJECT-ID] as project ID (Y/n)?
دوِّن رقم تعريف المشروع. في Cloud Shell، نفِّذ ما يلي لتصديرها إلى serviceproject_id:
export serviceproject_id=[SERVICEPROJECT ID]
في Cloud Shell، اتّبِع الخطوات التالية لربط مشروع الخدمة بحساب الفوترة:
gcloud billing projects link $serviceproject_id \
--billing-account=$BILLING_ACCOUNT_ID
إنشاء علامات تخضع لإدارة الهوية وإمكانية الوصول (IAM)
العلامة هي زوج مفتاح/قيمة يمكن إرفاقه بمؤسسة أو مجلد أو مشروع. اطّلِع على المقالتَين إنشاء العلامات وإدارتها والأذونات المطلوبة للحصول على مزيد من التفاصيل.
ننشئ علامة واحدة على مستوى المؤسسة، http-tags. الغرض من العلامة هو استخدام Cloud NGFW. لا نحصر النطاق على شبكة واحدة، بل يكون النطاق عالميًا. وسنطبّق العلامة لاحقًا على الأجهزة الافتراضية التي تم إنشاؤها في مشروع الخدمة ضمن folder2.
داخل Cloud Shell، اتّبِع الخطوات التالية:
gcloud resource-manager tags keys create http_tags \
--parent=organizations/$org_id \
--purpose GCE_FIREWALL \
--purpose-data organization=auto
سنستخدم معرّف مفتاح العلامة لإضافة تعليقات توضيحية إلى الجهاز الظاهري (VM) أثناء إنشائه. داخل Cloud Shell، نفِّذ ما يلي للحصول على رقم تعريف مفتاح العلامة:
export http_tags_id=$(gcloud resource-manager tags keys describe $org_id/http_tags --format="value(name)")
echo $http_tags_id
داخل Cloud Shell، اتّبِع الخطوات التالية لإنشاء قيمتَي علامتَين جديدتَين، http_server وhttp_client:
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
سنستخدم معرّف العلامة ومعرّف قيمة العلامة لإضافة تعليقات توضيحية إلى الجهاز الافتراضي أثناء إنشائه. في Cloud Shell، اتّبِع الخطوات التالية للحصول على معرّف قيمة العلامة http_server وhttp_client:
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
تفعيل واجهات برمجة التطبيقات في مشروع المضيف ومشروع الخدمة
داخل Cloud Shell، اتّبِع الخطوات التالية:
gcloud services enable compute.googleapis.com --project=$serviceproject_id
gcloud services enable compute.googleapis.com --project=$hostproject_id
إنشاء شبكة VPC في المشروع المضيف
في مشروع المضيف، أنشئ شبكة VPC باستخدام وضع الشبكة الفرعية المخصّصة، ونفِّذ ما يلي داخل Cloud Shell:
gcloud compute networks create mynet \
--subnet-mode=custom \
--project=$hostproject_id
إنشاء شبكات فرعية في المشروع المضيف
داخل Cloud Shell، اتّبِع الخطوات التالية لإنشاء شبكة فرعية IPV4:
gcloud compute networks subnets create mysubnet \
--network=mynet \
--range=10.0.0.0/28 \
--region=$regionname \
--project=$hostproject_id
تفعيل شبكة VPC المشتركة في المشروع المضيف
داخل Cloud Shell، نفِّذ ما يلي لتفعيل شبكة VPC المشتركة في مشروع المضيف:
gcloud compute shared-vpc enable $hostproject_id
ربط مشروع الخدمة بشبكة VPC مشتركة في المشروع المضيف
في Cloud Shell، اتّبِع الخطوات التالية لربط مشروع الخدمة بسحابة VPC المشتركة في المشروع المضيف:
gcloud compute shared-vpc associated-projects add $serviceproject_id --host-project=$hostproject_id
إنشاء Cloud Router وCloud NAT في المشروع المضيف
يتم استخدام Cloud NAT للسماح بخروج الإنترنت من الأجهزة الافتراضية لتنزيل التطبيقات وتثبيتها.
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
إنشاء آلات افتراضية في مشروع الخدمة
في مشروع الخدمة، أنشئ مثيلَين في الشبكات الفرعية التي أنشأتها للتو في شبكة VPC المشتركة في مشروع المضيف. يُطلق على إحدى الحالات اسم http-server ونضيف تعليقًا توضيحيًا إلى علامة http_tags بقيمة http_server. يُطلق على المثال الآخر اسم http-client ونضيف تعليقًا توضيحيًا إلى علامة http_tags بقيمة http_client. نفِّذ الأوامر التالية في Cloud Shell:
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'
دوِّن عنوان IP الداخلي الخاص بـ http-server. سنستخدمه في خطوة اختبار قاعدة جدار الحماية اللاحقة.
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- إنشاء سياسة جدار حماية بين الشبكات عالمية في المشروع المضيف
سننشئ سياسة جدار حماية بين الشبكات عالمية في المشروع المضيف ونربطها بشبكة سحابة VPC المشتركة في المشروع المضيف.
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 بالاتصال بأجهزة VM الافتراضية، أنشئ قاعدة جدار حماية في سياسة جدار الحماية للشبكة:
- ينطبق على جميع مثيلات الأجهزة الافتراضية التي تريد إتاحتها باستخدام IAP.
- تسمح هذه القاعدة بحركة البيانات الواردة من نطاق عناوين IP 35.235.240.0/20. يحتوي هذا النطاق على جميع عناوين IP التي تستخدمها خدمة IAP لإعادة توجيه بروتوكول TCP.
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
في وحدة التحكّم، يمكنك الانتقال إلى المشروع المضيف والعثور على سياسة جدار الحماية بين الشبكات الجديدة على مستوى الشبكة العالمية ضمن "سياسة جدار الحماية". يمكنك الاطّلاع على قاعدة جدار الحماية التي تم إنشاؤها حديثًا في سياسة جدار حماية بين الشبكات. إليك رابط وحدة التحكّم الذي سينقلك إلى هناك. يُرجى التأكّد من تغيير أداة اختيار المشروع إلى المشروع المضيف في وحدة التحكّم.
6. اختبار إمكانية الوصول من الجهاز الافتراضي لبرنامج http-client إلى الجهاز الافتراضي لبرنامج http-server
استخدِم بروتوكول SSH للوصول إلى الجهاز الافتراضي الذي يحمل الاسم http-client واختبِر ما إذا كان بإمكانه الوصول إلى http-server على منفذ http 80.
داخل Cloud Shell، اتّبِع الخطوات التالية:
gcloud compute ssh \
--zone=$zonename "http-client" \
--tunnel-through-iap \
--project=$serviceproject_id
استخدِم curl للوصول إلى خادم الويب.
curl -m 10 [http_server_ip]
ستظهر لك نتيجة أمر curl. لا تتوفّر قاعدة جدار حماية واردة للسماح بالمنفذ 80 لـ http-server.
انتهت مهلة الاتصال بعد 10,000 مللي ثانية.
ارجع إلى Cloud Shell من خلال الخروج من جلسة SSH.
exit
7. إنشاء سياسة جدار حماية هرمية وقواعد جدار الحماية
سننشئ سياسة جدار حماية هرمية في folder1 ونربط السياسة بـ folder1. سيتم تطبيق قواعد جدار الحماية في السياسة على المشروع المضيف ضمن folder1.
إنشاء سياسة جدار حماية هرمية
gcloud compute firewall-policies create \
--folder=$folder1_id \
--short-name=my-folder1-fw-policy
إنشاء قاعدة جدار حماية في "سياسة جدار الحماية الهرمية"
تسمح القاعدة للأجهزة الافتراضية التي تحمل قيمة العلامة http_tags/http_client بالوصول إلى الأجهزة الافتراضية التي تحمل قيمة العلامة http_tags/http_server على منفذ tcp رقم 80.
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
ربط سياسة جدار الحماية الهرمية بالمجلد 1
gcloud compute firewall-policies associations create \
--firewall-policy=my-folder1-fw-policy \
--folder=$folder1_id \
--name=my-folder1-fw-policy\
--organization=$org_id
في وحدة التحكّم، يمكنك الانتقال إلى folder1 والعثور على سياسة جدار الحماية الهرمية التي تم إنشاؤها حديثًا ضمن "سياسة جدار الحماية". تظهر سياسة جدار الحماية في "سياسات جدار الحماية المتوفّرة في هذا المجلد". يمكنك الاطّلاع على قاعدة جدار الحماية التي تم إنشاؤها حديثًا في سياسة جدار الحماية الهرمية. إليك رابط وحدة التحكّم الذي سينقلك إلى هناك. يُرجى التأكّد من تغيير أداة اختيار المشروع إلى folder1 في وحدة التحكّم.
8. اختبار إمكانية الوصول من الجهاز الافتراضي لبرنامج http-client إلى الجهاز الافتراضي لبرنامج http-server
تحقَّق من سياسات جدار الحماية السارية والمطبَّقة على شبكة VPC المشتركة في المشروع المضيف.
داخل Cloud Shell، اتّبِع الخطوات التالية:
gcloud compute networks get-effective-firewalls mynet --project=$hostproject_id
ستظهر لك سياسة جدار الحماية الهرمية الموروثة على النحو التالي:
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
استخدِم بروتوكول SSH للوصول إلى الجهاز الافتراضي الذي يحمل الاسم http-client واختبِر ما إذا كان بإمكانه الوصول إلى http-server على منفذ http 80.
داخل Cloud Shell، اتّبِع الخطوات التالية:
gcloud compute ssh \
--zone=$zonename "http-client" \
--tunnel-through-iap \
--project=$serviceproject_id
استخدِم curl للوصول إلى خادم الويب.
curl [http_server_ip]
سيظهر لك أمر curl يعرض الردّ من http-server بنجاح.
I am a Http Server.
تسمح قاعدة جدار الحماية الواردة من "سياسة جدار الحماية الهرمية" بالوصول من http-client إلى http-server على المنفذ 80.
ارجع إلى Cloud Shell من خلال الخروج من جلسة SSH.
exit
9- تَنظيم
تنظيف الأجهزة الافتراضية في مشروع الخدمة
داخل Cloud Shell، اتّبِع الخطوات التالية:
gcloud compute instances delete http-server --zone $zonename --project=$serviceproject_id
gcloud compute instances delete http-client --zone $zonename --project=$serviceproject_id
تنظيف "سياسة جدار الحماية الهرمية"
داخل Cloud Shell، اتّبِع الخطوات التالية:
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
تنظيف العلامات على مستوى المؤسسة
داخل Cloud Shell، اتّبِع الخطوات التالية:
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
تنظيف المشروع المضيف
داخل Cloud Shell، اتّبِع الخطوات التالية:
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
تنظيف مشروع الخدمة
داخل Cloud Shell، اتّبِع الخطوات التالية:
gcloud projects delete $serviceproject_id
تنظيف المجلدات
داخل Cloud Shell، اتّبِع الخطوات التالية:
gcloud resource-manager folders delete $folder1_id
gcloud resource-manager folders delete $folder2_id
10. تهانينا
لقد اختبرت بنجاح "سياسة جدار الحماية الهرمية" باستخدام العلامات التي تحكمها "إدارة الهوية وإمكانية الوصول".