1. مقدمة
يتم نشر موازنة حمل HTTP(S) في Google Cloud على مستوى شبكة Google في نقاط التواجد (POP) التابعة لشركة Google حول العالم. تنتقل زيارات المستخدمين الموجّهة إلى موازنة حمل HTTP(S) إلى نقطة التواجد الأقرب إلى المستخدم، ثم تتم موازنة الحمل على شبكة Google العالمية إلى الخلفية الأقرب التي تتوفّر فيها سعة كافية.
Cloud Armor هو نظام رصد الهجمات الموزَّعة لحجب الخدمة وجدار حماية تطبيقات الويب (WAF) من Google. يرتبط Cloud Armor بشكل وثيق بموازن التحميل HTTP في Google Cloud، ويحمي تطبيقات عملاء Google Cloud من الهجمات على الإنترنت. reCAPTCHA Enterprise هي خدمة تحمي موقعك الإلكتروني من الرسائل غير المرغوب فيها وإساءة الاستخدام، وهي تستند إلى واجهة برمجة تطبيقات reCAPTCHA الحالية التي تستخدم التقنيات المتقدمة لتحليل المخاطر للتمييز بين المستخدمين وبرامج التتبُّع. توفّر خدمة "إدارة برامج التتبّع" في Cloud Armor حلاً شاملاً يدمج ميزة رصد برامج التتبّع وتقييمها في reCAPTCHA Enterprise مع فرض السياسات من خلال Cloud Armor على حدود الشبكة لحماية التطبيقات النهائية.
في هذا التمرين العملي، ستضبط موازن تحميل HTTP مع خلفية، كما هو موضّح في المخطّط أدناه. بعد ذلك، ستتعرّف على كيفية إعداد مفتاح موقع إلكتروني لرمز مميّز لجلسة reCAPTCHA وتضمينه في موقعك الإلكتروني. ستتعرّف أيضًا على كيفية إعداد عملية إعادة التوجيه إلى اختبار reCAPTCHA Enterprise اليدوي. سنعمل بعد ذلك على إعداد سياسة إدارة برامج التتبُّع في Cloud Armor لعرض كيفية حماية تطبيقك من زيارات برامج التتبُّع الضارة.

ما ستتعلمه
- كيفية إعداد جهاز موازنة حمل HTTP مع عمليات التحقّق من الصحة المناسبة
- كيفية إنشاء مفتاح موقع إلكتروني لصفحة التحدي في WAF من reCAPTCHA وربطه بسياسة أمان Cloud Armor
- كيفية إنشاء مفتاح موقع إلكتروني لرمز مميّز لجلسة reCAPTCHA وتثبيته على صفحات الويب
- كيفية إنشاء سياسة إدارة برامج التتبّع في Cloud Armor
- كيفية التأكّد من أنّ سياسة إدارة برامج التتبّع تعالج الزيارات استنادًا إلى القواعد التي تم ضبطها
المتطلبات
- أساسيات الشبكات ومعرفة بروتوكول HTTP
- معرفة أساسية بسطر الأوامر في نظامَي Unix وLinux
2. الإعداد والمتطلبات
إعداد البيئة بالسرعة التي تناسبك
- سجِّل الدخول إلى Google Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.



- اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي سلسلة من الأحرف لا تستخدمها Google APIs، ويمكنك تعديلها في أي وقت.
- يجب أن يكون رقم تعريف المشروع فريدًا في جميع مشاريع Google Cloud، كما أنّه غير قابل للتغيير (لا يمكن تغييره بعد ضبطه). تنشئ Cloud Console تلقائيًا سلسلة فريدة، ولا يهمّك عادةً ما هي. في معظم دروس الترميز، عليك الرجوع إلى رقم تعريف المشروع (ويتم تحديده عادةً على أنّه
PROJECT_ID)، لذا إذا لم يعجبك، يمكنك إنشاء رقم آخر عشوائي، أو يمكنك تجربة رقمك الخاص ومعرفة ما إذا كان متاحًا. ثم يتم "تجميده" بعد إنشاء المشروع. - هناك قيمة ثالثة، وهي رقم المشروع الذي تستخدمه بعض واجهات برمجة التطبيقات. يمكنك الاطّلاع على مزيد من المعلومات عن كل هذه القيم الثلاث في المستندات.
- بعد ذلك، عليك تفعيل الفوترة في Cloud Console من أجل استخدام موارد/واجهات برمجة تطبيقات Cloud. لن تكلفك تجربة هذا الدرس التطبيقي حول الترميز الكثير من المال، إن لم تكلفك شيئًا على الإطلاق. لإيقاف الموارد كي لا يتم تحصيل رسوم منك بعد هذا الدرس التطبيقي حول الترميز، اتّبِع أي تعليمات "تنظيف" واردة في نهاية الدرس. يمكن لمستخدمي Google Cloud الجدد الاستفادة من برنامج الفترة التجريبية المجانية بقيمة 300 دولار أمريكي.
بدء Cloud Shell
على الرغم من إمكانية تشغيل Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس العملي Google Cloud Shell، وهي بيئة سطر أوامر تعمل في السحابة الإلكترونية.
من وحدة تحكّم Google Cloud Platform، انقر على رمز Cloud Shell في شريط الأدوات العلوي الأيسر:

لن يستغرق توفير البيئة والاتصال بها سوى بضع لحظات. عند الانتهاء، من المفترض أن يظهر لك ما يلي:

يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. توفّر هذه الخدمة دليلًا منزليًا ثابتًا بسعة 5 غيغابايت، وتعمل على Google Cloud، ما يؤدي إلى تحسين أداء الشبكة والمصادقة بشكل كبير. يمكن إكمال جميع المهام في هذا التمرين المعملي باستخدام متصفّح فقط.
قبل البدء
داخل Cloud Shell، تأكَّد من إعداد رقم تعريف مشروعك
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] PROJECT_ID=[YOUR-PROJECT-NAME] echo $PROJECT_ID
تفعيل واجهات برمجة التطبيقات
تفعيل جميع الخدمات اللازمة
gcloud services enable compute.googleapis.com gcloud services enable logging.googleapis.com gcloud services enable monitoring.googleapis.com gcloud services enable recaptchaenterprise.googleapis.com
3- ضبط قواعد جدار الحماية للسماح بزيارات HTTP وSSH إلى الخلفيات
اضبط قواعد جدار الحماية للسماح بزيارات HTTP إلى الخلفيات من عمليات التحقّق من السلامة في Google Cloud وLoad Balancer. عليك أيضًا ضبط قاعدة جدار الحماية للسماح بالوصول إلى المثيلات باستخدام بروتوكول SSH.
سنستخدم شبكة VPC الافتراضية التي تم إنشاؤها في مشروعك. أنشئ قاعدة جدار حماية للسماح بزيارات HTTP إلى الخلفيات. تحدّد عمليات التحقّق من الصحة مثيلات موازنة التحميل التي يمكنها تلقّي اتصالات جديدة. بالنسبة إلى موازنة الحمل لبروتوكول HTTP، تأتي عمليات التحقّق من السلامة التي يتم إجراؤها على مثيلاتك التي يتم فيها موازنة الحمل من عناوين ضمن النطاقَين 130.211.0.0/22 و35.191.0.0/16. يجب أن تسمح قواعد جدار الحماية في شبكة VPC بهذه الاتصالات. بالإضافة إلى ذلك، تتواصل موازنات التحميل مع الخلفية على نطاق عنوان IP نفسه.
- في Cloud Console، انتقِل إلى قائمة التنقّل (
) > شبكة السحابة الافتراضية الخاصة (VPC) > جدار الحماية.

- لاحظ قواعد جدار الحماية الحالية ICMP والداخلية وRDP وSSH.يبدأ كل مشروع على Google Cloud بالشبكة التلقائية وقواعد جدار الحماية هذه.
- انقر على إنشاء قاعدة جدار الحماية.
- اضبط القيم التالية، واترك جميع القيم الأخرى على الإعدادات التلقائية:
الموقع | القيمة (أدخِل القيمة أو حدِّد الخيار على النحو المحدّد) |
الاسم | default-allow-health-check |
الشبكة | المظهر التلقائي |
الأهداف | علامات الاستهداف المحدّدة |
علامات الاستهداف | allow-health-check |
فلتر المصدر | نطاقات عناوين IP |
نطاقات عناوين IP المصدر | 130.211.0.0/22, 35.191.0.0/16 |
البروتوكولات والمنافذ | حدِّد البروتوكولات والمنافذ، ثم ضَع علامة في المربّع بجانب tcp. اكتب 80 لرقم المنفذ |
- انقر على إنشاء.
بدلاً من ذلك، إذا كنت تستخدم سطر أوامر gcloud. في ما يلي الأمر:
gcloud compute firewall-rules create default-allow-health-check --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:80 --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=allow-health-check
- وبالمثل، أنشئ قاعدة جدار حماية للسماح بالاتصال عبر بروتوكول SSH بالأجهزة الافتراضية:
gcloud compute firewall-rules create allow-ssh --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:22 --source-ranges=0.0.0.0/0 --target-tags=allow-health-check
4. إعداد نماذج الآلات الافتراضية وإنشاء مجموعات الآلات الافتراضية المُدارة
تستخدِم مجموعة الأجهزة الافتراضية المُدارة نموذج جهاز افتراضي لإنشاء مجموعة من الأجهزة الافتراضية المتطابقة. استخدِم هذه الموارد لإنشاء الخلفية الخاصة بـ "موازنة الحمل عبر HTTP".
إعداد نماذج الآلات الافتراضية
نموذج المثيل هو مورد يمكنك استخدامه لإنشاء مثيلات أجهزة افتراضية ومجموعات مثيلات مُدارة. تحدّد نماذج الآلات الافتراضية نوع الجهاز وصورة قرص التمهيد والشبكة الفرعية والتصنيفات وخصائص الآلات الافتراضية الأخرى. أنشِئ نموذج آلة افتراضية كما هو موضّح أدناه.
- في Cloud Console، انتقِل إلى قائمة التنقّل (
) > Compute Engine > نماذج الآلات الافتراضية، ثم انقر على إنشاء نموذج آلة افتراضية. - في الحقل الاسم (Name)، اكتب lb-backend-template.
- بالنسبة إلى السلسلة، اختَر N1.
- انقر على الاتصال بالشبكات والأقراص والأمان والإدارة والإيجار المستقلّ.

- انتقِل إلى قسم الإدارة وأدخِل النص البرمجي التالي في حقل نص برمجي للتشغيل.
#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" sudo echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html
- انقر على علامة التبويب الشبكات، وأضِف علامات الشبكة: allow-health-check
- اضبط القيم التالية واترك جميع القيم الأخرى على الإعدادات التلقائية:
الموقع | القيمة (أدخِل القيمة أو حدِّد الخيار على النحو المحدّد) |
الشبكة (ضمن "واجهات الشبكة") | المظهر التلقائي |
الشبكة الفرعية (ضمن واجهات الشبكة) | تلقائي (us-east1) |
علامات الشبكة | allow-health-check |
- انقر على إنشاء.
- انتظِر إلى حين إنشاء نموذج الآلة الافتراضية.
إنشاء مجموعة مثيلات مُدارة
- في صفحة Compute Engine، انقر على مجموعات المثيلات في القائمة اليمنى.

- انقر على إنشاء مجموعة مثيلات. انقر على مجموعة أجهزة افتراضية مُدارة جديدة (بلا حالة).
- اضبط القيم التالية، واترك جميع القيم الأخرى على الإعدادات التلقائية:
الموقع | القيمة (أدخِل القيمة أو حدِّد الخيار على النحو المحدّد) |
الاسم | lb-backend-example |
الموقع الجغرافي | منطقة واحدة |
المنطقة | us-east1 |
المنطقة | us-east1-b |
نموذج الجهاز الافتراضي | lb-backend-template |
القياس التلقائي | عدم التوسيع التلقائي |
عدد الحالات | 1 |
- انقر على إنشاء.
إضافة منفذ مسمّى إلى مجموعة المثيلات
بالنسبة إلى مجموعة المثيلات، حدِّد خدمة HTTP واربط اسم منفذ بالمنفذ ذي الصلة. تعيد خدمة موازنة الحمل توجيه حركة البيانات إلى المنفذ المُسمّى.
gcloud compute instance-groups set-named-ports lb-backend-example \
--named-ports http:80 \
--zone us-east1-b
5- ضبط إعدادات جهاز موازنة الحمل HTTP
اضبط جهاز موازنة حمل HTTP لإرسال الزيارات إلى الخلفية lb-backend-example:
بدء عملية الإعداد
- في Cloud Console، انقر على قائمة التنقّل (
) > خدمات الشبكة > موازنة الحمل، ثم انقر على إنشاء أداة موازنة الحمل. - ضمن موازنة حمل HTTP(S)، انقر على بدء الإعداد.

- اختَر من الإنترنت إلى الأجهزة الافتراضية، موازن الحمل الكلاسيكية HTTP(S)، ثم انقر على متابعة.
- اضبط الاسم على http-lb.
ضبط الواجهة الخلفية
توجّه خدمات الخلفية عدد الزيارات الواردة إلى خدمة خلفية واحدة أو أكثر من الخدمات الخلفية المرفقة. تتألف كل خلفية من مجموعة أجهزة افتراضية وبيانات وصفية إضافية لسعة العرض.
- انقر على إعدادات الواجهة الخلفية.
- بالنسبة إلى خدمات الخلفية وحِزم الخلفية، انقر على إنشاء خدمة خلفية.
- اضبط القيم التالية، واترك جميع القيم الأخرى على الإعدادات التلقائية:
الموقع | القيمة (اختَر الخيار المحدّد) |
الاسم | http-backend |
البروتوكول | HTTP |
المنفذ المُسمّى | htp |
مجموعة المثيلات | lb-backend-example |
أرقام المنافذ | 80 |
- انقر على تم.
- انقر على إضافة نظام خلفي.
- بالنسبة إلى التحقّق من الصحة، اختَر إنشاء عملية تحقّق من الصحة.

- اضبط القيم التالية، واترك جميع القيم الأخرى على الإعدادات التلقائية:
الموقع | القيمة (اختَر الخيار المحدّد) |
الاسم | http-health-check |
البروتوكول | TCP |
المنفذ | 80 |

- انقر على حفظ.
- ضَع علامة في المربّع تفعيل التسجيل.
- اضبط معدّل أخذ العيّنات على 1:

- انقر على إنشاء لإنشاء خدمة الخلفية.

ضبط الواجهة الأمامية
تحدّد قواعد المضيف والمسار طريقة توجيه الزيارات. على سبيل المثال، يمكنك توجيه زيارات الفيديو إلى خادم خلفي واحد وتوجيه الزيارات الثابتة إلى خادم خلفي آخر. ومع ذلك، لن يتم ضبط قواعد المضيف والمسار في هذا التمرين العملي.
- انقر على إعداد الواجهة الأمامية.
- حدِّد ما يلي، مع ترك جميع القيم الأخرى على الإعدادات التلقائية:
الموقع | القيمة (أدخِل القيمة أو حدِّد الخيار على النحو المحدّد) |
البروتوكول | HTTP |
إصدار IP | بروتوكول IPv4 |
عنوان IP | Ephemeral |
المنفذ | 80 |
- انقر على تم.
مراجعة جهاز موازنة الحمل HTTP وإنشاؤه
- انقر على المراجعة والإنهاء.

- راجِع خدمات الخلفية وواجهة المستخدم.
- انقر على إنشاء.
- انتظِر إلى أن يتم إنشاء جهاز موازنة الحمل.
- انقر على اسم جهاز موازنة الحمل (http-lb).
- دوِّن عنوان IPv4 لموازنة الحمل لتنفيذ المهمة التالية. سنشير إليه باسم [LB_IP_v4].
6. اختبار جهاز موازنة الحمل HTTP
بعد إنشاء موازن حمل HTTP للخلفيات، تأكَّد من إعادة توجيه الزيارات إلى خدمة الخلفية. لاختبار إمكانية الوصول إلى موازن HTTP باستخدام بروتوكول IPv4، افتح علامة تبويب جديدة في المتصفّح وانتقِل إلى http://[LB_IP_v4]. تأكَّد من استبدال [LB_IP_v4] بعنوان IPv4 لموازن التحميل.
7. إنشاء ونشر الرمز المميّز لجلسة reCAPTCHA ومفتاح الموقع الإلكتروني لصفحة التحدّي
توفّر خدمة reCAPTCHA Enterprise لعمليات الدمج مع WAF وGoogle Cloud Armor الميزات التالية: صفحة تحدّي reCAPTCHA ورموز reCAPTCHA المميزة المستندة إلى الإجراءات ورموز reCAPTCHA المميزة المستندة إلى الجلسات. في هذا الدرس العملي، سننفّذ مفتاح الموقع الإلكتروني لرمز الجلسة في reCAPTCHA وموقع صفحة التحقّق في reCAPTCHA WAF.
إنشاء رمز مميّز لجلسة reCAPTCHA و مفتاح موقع إلكتروني لصفحة التحدي في جدار الحماية من تطبيقات الويب
قبل إنشاء مفتاح الموقع الإلكتروني لرمز الجلسة ومفتاح الموقع الإلكتروني لصفحة التحدّي، تأكَّد من تفعيل واجهة برمجة التطبيقات reCAPTCHA Enterprise API كما هو موضّح في قسم "تفعيل واجهة برمجة التطبيقات" في البداية.
تضبط JavaScript الخاصة بخدمة reCAPTCHA رمزًا مميزًا لجلسة reCAPTCHA كملف تعريف ارتباط على متصفّح المستخدم النهائي بعد التقييم. يرفق متصفّح المستخدم النهائي ملف تعريف الارتباط ويعيد تحميله طالما أنّ JavaScript الخاص بخدمة reCAPTCHA يظل نشطًا.
- أنشئ مفتاح موقع إلكتروني لرمز الجلسة المميز في reCAPTCHA وفعِّل ميزة WAF للمفتاح. سنضبط أيضًا خدمة WAF على Cloud Armor لتفعيل عملية الدمج مع Cloud Armor.
gcloud recaptcha keys create --display-name=test-key-name \ --web --allow-all-domains --integration-type=score --testing-score=0.5 \ --waf-feature=session-token --waf-service=ca
- يمنحك ناتج الأمر أعلاه المفتاح الذي تم إنشاؤه. سجِّل هذا المعرّف لأنّنا سنضيفه إلى موقعك الإلكتروني في الخطوة التالية.
- أنشئ مفتاح موقع إلكتروني لصفحة التحدي في WAF من reCAPTCHA وفعِّل ميزة WAF للمفتاح. يمكنك استخدام ميزة صفحة تحدّي reCAPTCHA لإعادة توجيه الطلبات الواردة إلى reCAPTCHA Enterprise من أجل تحديد ما إذا كان كل طلب يحتمل أن يكون مزيفًا أو صالحًا. سنربط هذا المفتاح لاحقًا بسياسة أمان Cloud Armor لتفعيل التحدي اليدوي. سنشير إلى هذا المفتاح باسم CHALLENGE-PAGE-KEY في الخطوات اللاحقة.
gcloud recaptcha keys create --display-name=challenge-page-key \ --web --allow-all-domains --integration-type=INVISIBLE \ --waf-feature=challenge-page --waf-service=ca
- انتقِل إلى قائمة التنقّل (
) > الأمان > reCAPTCHA Enterprise. يجب أن تظهر المفاتيح التي أنشأتها ضمن "مفاتيح المؤسسة" -

تنفيذ مفتاح الموقع الإلكتروني لرمز الجلسة في reCAPTCHA
- انتقِل إلى قائمة التنقّل (
) > Compute Engine > مثيلات الأجهزة الافتراضية. ابحث عن الجهاز الافتراضي في مجموعة المثيلات واتّصِل به عبر بروتوكول النقل الآمن (SSH).

- انتقِل إلى دليل الجذر الخاص بخادم الويب وغيِّر المستخدم إلى الجذر -
@lb-backend-example-4wmn:~$ cd /var/www/html/ @lb-backend-example-4wmn:/var/www/html$ sudo su
- عدِّل صفحة index.html المقصودة وضمِّن مفتاح الموقع الإلكتروني الخاص بالرمز المميّز لجلسة reCAPTCHA. يتم ضبط مفتاح الموقع الإلكتروني لرمز الجلسة المميز في قسم العنوان من صفحتك المقصودة على النحو التالي:
<script src="https://www.google.com/recaptcha/enterprise.js?render=<REPLACE_TOKEN_HERE>&waf=session" async defer></script>
يُرجى تذكُّر استبدال الرمز المميز قبل تعديل ملف index.html كما هو موضّح أدناه:
root@lb-backend-example-4wmn:/var/www/html# echo '<!doctype html><html><head><title>ReCAPTCHA Session Token</title><script src="https://www.google.com/recaptcha/enterprise.js?render=<REPLACE_TOKEN_HERE>&waf=session" async defer></script></head><body><h1>Main Page</h1><p><a href="/good-score.html">Visit allowed link</a></p><p><a href="/bad-score.html">Visit blocked link</a></p><p><a href="/median-score.html">Visit redirect link</a></p></body></html>' > index.html
- أنشئ ثلاث صفحات نموذجية أخرى لاختبار سياسات إدارة البرامج الآلية -
- good-score.html
root@lb-backend-example-4wmn:/var/www/html# echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>Congrats! You have a good score!!</h1></body></html>' > good-score.html
- bad-score.html
root@lb-backend-example-4wmn:/var/www/html# echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>Sorry, You have a bad score!</h1></body></html>' > bad-score.html
- median-score.html
root@lb-backend-example-4wmn:/var/www/html# echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>You have a median score that we need a second verification.</h1></body></html>' > median-score.html
- تأكَّد من إمكانية الوصول إلى جميع صفحات الويب من خلال فتحها في المتصفّح. تأكَّد من استبدال [LB_IP_v4] بعنوان IPv4 لموازن التحميل.
- افتح http://[LB_IP_v4]/index.html. ستتمكّن من التأكّد من أنّ عملية تنفيذ reCAPTCHA تعمل عندما يظهر لك الإشعار "محمي بواسطة reCAPTCHA" في أسفل يسار الصفحة -

- انقر على كل رابط من الروابط.

- تأكَّد من إمكانية الوصول إلى جميع الصفحات.

8. إنشاء قواعد سياسة أمان Cloud Armor لخدمة Bot Management
في هذا القسم، ستستخدم قواعد إدارة برامج التتبّع في Cloud Armor للسماح بالطلبات ورفضها وإعادة توجيهها استنادًا إلى نتيجة reCAPTCHA. تذكَّر أنّه عند إنشاء مفتاح الموقع المميز لرمز الجلسة، ضبطت درجة الاختبار على 0.5.
- في Cloud Shell(راجِع بدء Cloud Shell ضمن الإعداد والمتطلبات للحصول على تعليمات حول كيفية استخدام Cloud Shell)، أنشئ سياسة أمان من خلال gcloud:
gcloud compute security-policies create recaptcha-policy \
--description "policy for bot management"
- لاستخدام ميزة "التحدي اليدوي" في reCAPTCHA Enterprise للتمييز بين العملاء من البشر والعملاء الآليين، اربط مفتاح الموقع الإلكتروني الخاص بالتحدي في reCAPTCHA WAF الذي أنشأناه للتحدي اليدوي بسياسة الأمان. استبدِل CHALLENGE-PAGE-KEY بالمفتاح الذي أنشأناه -
gcloud compute security-policies update recaptcha-policy \ --recaptcha-redirect-site-key "CHALLENGE-PAGE-KEY"
- أضِف قاعدة لإدارة برامج التتبّع تسمح بزيارات إذا كان مسار عنوان URL مطابقًا لـ good-score.html وكان لديه نتيجة أكبر من 0.4.
gcloud compute security-policies rules create 2000 \
--security-policy recaptcha-policy\
--expression "request.path.matches('good-score.html') && token.recaptcha_session.score > 0.4"\
--action allow
- أضِف قاعدة لإدارة برامج التتبّع لرفض الزيارات إذا كان مسار عنوان URL يتطابق مع bad-score.html وكانت النتيجة أقل من 0.6.
gcloud compute security-policies rules create 3000 \
--security-policy recaptcha-policy\
--expression "request.path.matches('bad-score.html') && token.recaptcha_session.score < 0.6"\
--action "deny-403"
- إضافة قاعدة لإدارة برامج التتبّع لإعادة توجيه حركة المرور إلى Google reCAPTCHA إذا كان مسار عنوان URL مطابقًا لـ median-score.html وكانت النتيجة تساوي 0.5
gcloud compute security-policies rules create 1000 \
--security-policy recaptcha-policy\
--expression "request.path.matches('median-score.html') && token.recaptcha_session.score == 0.5"\
--action redirect \
--redirect-type google-recaptcha
- اربط سياسة الأمان بخدمة الخلفية http-backend:
gcloud compute backend-services update http-backend \
--security-policy recaptcha-policy –-global
- في "وحدة التحكّم"، انتقِل إلى قائمة التنقّل > أمان الشبكة > Cloud Armor.
- انقر على recaptcha-policy. يجب أن تكون سياستك مشابهة لما يلي:

9- التحقّق من صحة Bot Management باستخدام Cloud Armor
- افتح متصفّحًا وأدخِل عنوان URL http://[LB_IP_v4]/index.html. انتقِل إلى "زيارة رابط السماح". من المفترض أن يتم السماح لك بالمرور -

- افتح نافذة جديدة في وضع التصفُّح المتخفي للتأكّد من أنّ لدينا جلسة جديدة. أدخِل عنوان URL http://[LB_IP_v4]/index.html وانتقِل إلى "زيارة الرابط المحظور". من المفترض أن تتلقّى الخطأ HTTP 403 -

- افتح نافذة جديدة في وضع التصفُّح المتخفي للتأكّد من أنّ لدينا جلسة جديدة. أدخِل عنوان URL http://[LB_IP_v4]/index.html وانتقِل إلى "زيارة رابط إعادة التوجيه". من المفترض أن تظهر لك عملية إعادة التوجيه إلى Google reCAPTCHA وصفحة التحدي اليدوي كما هو موضح أدناه:

التحقّق من سجلّات Cloud Armor
استكشاف سجلّات سياسة الأمان للتحقّق من أنّ إدارة برامج التتبّع تعمل على النحو المتوقّع
- في "وحدة التحكّم"، انتقِل إلى قائمة التنقّل > أمان الشبكة > Cloud Armor.
- انقر على recaptcha-policy..
- انقر على السجلات.

- انقر على عرض سجلّات السياسات.
- في ما يلي طلب بحث MQL(لغة طلبات البحث الخاصة بالمراقبة)، يمكنك نسخه ولصقه في محرِّر طلبات البحث:
resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:(recaptcha-policy)
- انقر الآن على تنفيذ طلب البحث.
- ابحث عن إدخال في السجلّ في "نتائج طلب البحث" حيث يكون الطلب موجّهًا إلى http://[LB_IP_v4]/good-score.html. وسِّع jsonPayload.Expand enforcedSecurityPolicy.

- كرِّر الخطوات نفسها مع http://[LB_IP_v4]/bad-score.html وhttp://[LB_IP_v4]/median-score.html


يُرجى العِلم أنّه تم ضبط configuredAction على ALLOW أو DENY أو GOOGLE_RECAPTCHA بالاسم recaptcha-policy.
تهانينا! لقد أكملت هذا الدرس التطبيقي حول إدارة برامج التتبّع باستخدام Cloud Armor
©2020 Google LLC. جميع الحقوق محفوظة. Google وشعار Google هما علامتان تجاريتان (TM) تابعتان لشركة Google LLC. جميع أسماء الشركات والمنتجات الأخرى قد تكون علامات تجارية للشركات المالكة لها.
10. إعادة تنظيم المختبر
- انتقِل إلى أمان الشبكة >> Cloud Armor >> %POLICY NAME% واختر "حذف" -

- انتقِل إلى الشبكات >> خدمات الشبكة >> موازنة التحميل. اختَر جهاز موازنة الحمل الذي أنشأته وانقر على "حذف".

اختَر خدمة الخلفية والتحقّق من الصحة كموارد إضافية سيتم حذفها:

- انتقِل إلى قائمة التنقّل (
) > Compute Engine > مجموعات المثيلات. اختَر مجموعة الأجهزة الافتراضية المُدارة وانقر على "حذف" -

أكِّد عملية الحذف من خلال كتابة "حذف" في مربّع النص.
انتظِر إلى أن يتم حذف مجموعة المثيلات المُدارة. يؤدي هذا الإجراء أيضًا إلى حذف المثيل في المجموعة. لا يمكنك حذف النماذج إلا بعد حذف مجموعة المثيلات.
- انتقِل إلى نماذج الآلات الافتراضية من اللوحة الجانبية على يمين الصفحة**.** اختَر نموذج الجهاز الافتراضي وانقر على "حذف".
- انتقِل إلى قائمة التنقّل (
) > شبكة VPC > جدار الحماية. اختَر قاعدتَي default-allow-health-check وallow-ssh وانقر على "حذف". - انتقِل إلى قائمة التنقّل (
) > الأمان > reCAPTCHA Enterprise. اختَر المفاتيح التي أنشأناها واحذفها. أكِّد عملية الحذف من خلال كتابة "DELETE" في مربّع النص.

11. تهانينا!
لقد نفّذت إدارة برامج التتبّع بنجاح باستخدام Cloud Armor. لقد أعددت جهاز موازنة حمل HTTP. بعد ذلك، أنشأت مفتاح موقع إلكتروني لرمز مميّز لجلسة reCAPTCHA ونفّذته على صفحة ويب. تعرّفت أيضًا على كيفية إنشاء مفتاح موقع إلكتروني لصفحة التحقّق. يمكنك إعداد سياسة إدارة برامج التتبُّع في Cloud Armor والتحقّق من طريقة تعاملها مع الطلبات استنادًا إلى القواعد. لقد تمكّنت من استكشاف سجلّات سياسة الأمان لتحديد سبب السماح بالزيارات أو حظرها أو إعادة توجيهها.
المواضيع التي تناولناها
- كيفية إعداد نماذج الآلات الافتراضية وإنشاء مجموعات الآلات الافتراضية المُدارة
- كيفية إعداد جهاز موازنة حمل HTTP
- كيفية إنشاء سياسة إدارة برامج التتبّع في Cloud Armor
- كيفية إنشاء مفتاح موقع إلكتروني لرمز مميّز لجلسة reCAPTCHA وتنفيذه
- كيفية إنشاء مفتاح موقع إلكتروني لصفحة تحدّي reCAPTCHA وتنفيذه
- كيفية التأكّد من أنّ "سياسة إدارة برامج التتبُّع" تعمل على النحو المطلوب
الخطوات التالية
- جرِّب إعداد رموز مميزة للإجراءات في reCAPTCHA.