1. परिचय
Google Cloud HTTP(S) लोड बैलेंसिंग को Google के नेटवर्क के एज पर डिप्लॉय किया जाता है. यह Google के पॉइंट ऑफ़ प्रेज़ेंस (पीओपी) पर दुनिया भर में उपलब्ध है. एचटीटीपी या एचटीटीपीएस लोड बैलेंसर पर रीडायरेक्ट किया गया उपयोगकर्ता ट्रैफ़िक, उपयोगकर्ता के सबसे नज़दीकी पीओपी में जाता है. इसके बाद, इसे Google के ग्लोबल नेटवर्क पर लोड बैलेंस किया जाता है. ऐसा सबसे नज़दीकी बैकएंड तक पहुंचने के लिए किया जाता है, जिसमें ज़रूरत के मुताबिक क्षमता उपलब्ध हो.
Cloud Armor, Google का डिस्ट्रिब्यूटेड डिनायल ऑफ़ सर्विस और वेब ऐप्लिकेशन फ़ायरवॉल (डब्ल्यूएएफ़) का पता लगाने वाला सिस्टम है. Cloud Armor, Google Cloud HTTP Load Balancer के साथ मिलकर काम करता है. यह Google Cloud के ग्राहकों के ऐप्लिकेशन को इंटरनेट से होने वाले हमलों से बचाता है. reCAPTCHA Enterprise एक ऐसी सेवा है जो आपकी साइट को स्पैम और गलत इस्तेमाल से बचाती है. यह मौजूदा reCAPTCHA API पर आधारित है. यह एपीआई, जोखिम का विश्लेषण करने की बेहतर तकनीकों का इस्तेमाल करता है, ताकि इंसानों और बॉट के बीच अंतर किया जा सके. Cloud Armor Bot Management, एंड-टू-एंड समाधान उपलब्ध कराता है. यह reCAPTCHA Enterprise की बॉट का पता लगाने और स्कोरिंग करने की सुविधा को इंटिग्रेट करता है. साथ ही, डाउनस्ट्रीम ऐप्लिकेशन को सुरक्षित रखने के लिए, नेटवर्क के एज पर Cloud Armor की मदद से नीति लागू करता है.
इस लैब में, आपको बैकएंड के साथ एचटीटीपी लोड बैलेंसर को कॉन्फ़िगर करना है. इसे नीचे दिए गए डायग्राम में दिखाया गया है. इसके बाद, आपको reCAPTCHA सेशन टोकन साइट कुंजी सेट अप करने और उसे अपनी वेबसाइट में एम्बेड करने का तरीका बताया जाएगा. आपको reCAPTCHA Enterprise की मैन्युअल चुनौती पर रीडायरेक्ट करने का तरीका भी बताया जाएगा. इसके बाद, हम Cloud Armor की बॉट मैनेजमेंट नीति को कॉन्फ़िगर करेंगे. इससे यह पता चलेगा कि बॉट की पहचान करने की सुविधा, आपके ऐप्लिकेशन को नुकसान पहुंचाने वाले बॉट ट्रैफ़िक से कैसे बचाती है.

आपको क्या सीखने को मिलेगा
- सही हेल्थ चेक के साथ एचटीटीपी लोड बैलेंसर को सेट अप करने का तरीका.
- reCAPTCHA WAF के चैलेंज-पेज की साइट कुंजी बनाने और उसे Cloud Armor की सुरक्षा नीति से जोड़ने का तरीका.
- reCAPTCHA सेशन टोकन साइट कुंजी बनाने और उसे अपने वेब पेजों पर इंस्टॉल करने का तरीका.
- Cloud Armor की बॉट मैनेजमेंट नीति बनाने का तरीका.
- यह पुष्टि कैसे करें कि बॉट मैनेजमेंट की नीति, कॉन्फ़िगर किए गए नियमों के आधार पर ट्रैफ़िक को मैनेज कर रही है.
आपको इन चीज़ों की ज़रूरत होगी
- नेटवर्किंग की बुनियादी जानकारी और एचटीटीपी के बारे में जानकारी
- Unix/Linux कमांड लाइन की बुनियादी जानकारी
2. सेटअप और ज़रूरी शर्तें
अपने हिसाब से एनवायरमेंट सेट अप करना
- Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से कोई Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.



- प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. यह एक कैरेक्टर स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करते. इसे किसी भी समय अपडेट किया जा सकता है.
- प्रोजेक्ट आईडी, सभी Google Cloud प्रोजेक्ट के लिए यूनीक होना चाहिए. साथ ही, इसे बदला नहीं जा सकता. Cloud Console, यूनीक स्ट्रिंग को अपने-आप जनरेट करता है. आम तौर पर, आपको इससे कोई फ़र्क़ नहीं पड़ता कि यह क्या है. ज़्यादातर कोडलैब में, आपको प्रोजेक्ट आईडी का रेफ़रंस देना होगा. इसे आम तौर पर
PROJECT_IDके तौर पर पहचाना जाता है. इसलिए, अगर आपको यह पसंद नहीं है, तो कोई दूसरा रैंडम आईडी जनरेट करें. इसके अलावा, अपने हिसाब से कोई आईडी जनरेट करके देखें कि वह उपलब्ध है या नहीं. इसके बाद, प्रोजेक्ट बनाने के बाद इसे "फ़्रीज़" कर दिया जाता है. - तीसरी वैल्यू, प्रोजेक्ट नंबर होती है. इसका इस्तेमाल कुछ एपीआई करते हैं. इन तीनों वैल्यू के बारे में ज़्यादा जानने के लिए, दस्तावेज़ देखें.
- इसके बाद, आपको Cloud Console में बिलिंग चालू करनी होगी, ताकि Cloud संसाधनों/एपीआई का इस्तेमाल किया जा सके. इस कोडलैब को पूरा करने में ज़्यादा खर्च नहीं आएगा. संसाधन शट डाउन करने के लिए, कोडलैब के आखिर में दिए गए "सफ़ाई" से जुड़े निर्देशों का पालन करें, ताकि इस ट्यूटोरियल के बाद आपको बिलिंग न करनी पड़े. Google Cloud के नए उपयोगकर्ताओं को, मुफ़्त में आज़माने के लिए 300 डॉलर का क्रेडिट मिलता है.
Cloud Shell शुरू करें
Google Cloud को अपने लैपटॉप से रिमोटली ऐक्सेस किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जाएगा. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.
GCP Console में, सबसे ऊपर दाईं ओर मौजूद टूलबार पर मौजूद 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. बैकएंड में एचटीटीपी और एसएसएच ट्रैफ़िक की अनुमति देने के लिए, फ़ायरवॉल के नियम कॉन्फ़िगर करना
फ़ायरवॉल के नियमों को कॉन्फ़िगर करें, ताकि Google Cloud की हेल्थ चेक और लोड बैलेंसर से बैकएंड तक एचटीटीपी ट्रैफ़िक की अनुमति दी जा सके. साथ ही, इंस्टेंस में एसएसएच की अनुमति देने के लिए, फ़ायरवॉल का कोई नियम कॉन्फ़िगर करें.
हम आपके प्रोजेक्ट में बनाए गए डिफ़ॉल्ट वीपीसी नेटवर्क का इस्तेमाल करेंगे. बैकएंड में एचटीटीपी ट्रैफ़िक की अनुमति देने के लिए, फ़ायरवॉल का नियम बनाएं. परफ़ॉर्मेंस की जांच से यह तय होता है कि लोड बैलेंसर के कौनसे इंस्टेंस, नए कनेक्शन स्वीकार कर सकते हैं. एचटीटीपी लोड बैलेंसिंग के लिए, लोड बैलेंस किए गए इंस्टेंस की हेल्थ जांच करने वाले जांचकर्ता, 130.211.0.0/22 और 35.191.0.0/16 रेंज के पतों से आते हैं. आपके वीपीसी फ़ायरवॉल के नियमों के तहत, इन कनेक्शन की अनुमति होनी चाहिए. साथ ही, लोड बैलेंसर एक ही आईपी रेंज पर बैकएंड से कम्यूनिकेट करते हैं.
- Cloud Console में, नेविगेशन मेन्यू (
) > वीपीसी नेटवर्क > फ़ायरवॉल पर जाएं.

- मौजूदा ICMP, internal, RDP, और SSH फ़ायरवॉल नियमों पर ध्यान दें.हर Google Cloud प्रोजेक्ट, डिफ़ॉल्ट नेटवर्क और इन फ़ायरवॉल नियमों से शुरू होता है.
- फ़ायरवॉल का नियम बनाएं पर क्लिक करें.
- ये वैल्यू सेट करें. बाकी सभी वैल्यू को डिफ़ॉल्ट पर छोड़ दें:
प्रॉपर्टी | वैल्यू (वैल्यू टाइप करें या बताए गए तरीके से विकल्प चुनें) |
नाम | default-allow-health-check |
नेटवर्क | डिफ़ॉल्ट |
टारगेट | टारगेट किए गए टैग |
टारगेट टैग | allow-health-check |
सोर्स फ़िल्टर | आईपी रेंज |
सोर्स आईपी रेंज | 130.211.0.0/22, 35.191.0.0/16 |
प्रोटोकॉल और पोर्ट | प्रोटोकॉल और पोर्ट तय किए गए हैं. इसके बाद, टीसीपी देखें. पोर्ट नंबर के लिए 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
- इसी तरह, इंस्टेंस में एसएसएच करने की अनुमति देने के लिए, फ़ायरवॉल का नियम बनाएं -
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. इंस्टेंस टेंप्लेट कॉन्फ़िगर करना और मैनेज किए गए इंस्टेंस ग्रुप बनाना
मैनेज किया गया इंस्टेंस ग्रुप, एक जैसे इंस्टेंस का ग्रुप बनाने के लिए इंस्टेंस टेंप्लेट का इस्तेमाल करता है. इनका इस्तेमाल करके, एचटीटीपी लोड बैलेंसर का बैकएंड बनाएं.
इंस्टेंस टेंप्लेट कॉन्फ़िगर करना
इंस्टेंस टेंप्लेट एक ऐसा संसाधन है जिसका इस्तेमाल वीएम इंस्टेंस और मैनेज किए गए इंस्टेंस ग्रुप बनाने के लिए किया जाता है. इंस्टेंस टेंप्लेट, मशीन टाइप, बूट डिस्क इमेज, सबनेट, लेबल, और इंस्टेंस की अन्य प्रॉपर्टी तय करते हैं. नीचे दिए गए तरीके से इंस्टेंस टेंप्लेट बनाएं.
- Cloud Console में, नेविगेशन मेन्यू (
) > Compute Engine > इंस्टेंस टेंप्लेट पर जाएं. इसके बाद, इंस्टेंस टेंप्लेट बनाएं पर क्लिक करें. - नाम के लिए, 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 पेज पर ही, बाईं ओर मौजूद मेन्यू में Instance groups पर क्लिक करें.

- इंस्टेंस ग्रुप बनाएं पर क्लिक करें. नया मैनेज किया गया इंस्टेंस ग्रुप (स्टेटलेस) को चुनें.
- ये वैल्यू सेट करें. बाकी सभी वैल्यू को डिफ़ॉल्ट पर छोड़ दें:
प्रॉपर्टी | वैल्यू (वैल्यू टाइप करें या बताए गए तरीके से विकल्प चुनें) |
नाम | lb-backend-example |
जगह | एक ज़ोन |
क्षेत्र | us-east1 |
ज़ोन | us-east1-b |
इंस्टेंस टेंप्लेट | lb-backend-template |
ऑटो स्केलिंग | ऑटोस्केल न करें |
इंस्टेंस की संख्या | 1 |
- बनाएं पर क्लिक करें.
इंस्टेंस ग्रुप में नाम वाला पोर्ट जोड़ना
अपने इंस्टेंस ग्रुप के लिए, एचटीटीपी सेवा तय करें और पोर्ट के नाम को काम के पोर्ट पर मैप करें. लोड बैलेंसिंग सेवा, ट्रैफ़िक को नाम वाले पोर्ट पर फ़ॉरवर्ड करती है.
gcloud compute instance-groups set-named-ports lb-backend-example \
--named-ports http:80 \
--zone us-east1-b
5. एचटीटीपी लोड बैलेंसर को कॉन्फ़िगर करना
एचटीटीपी लोड बैलेंसर को कॉन्फ़िगर करें, ताकि वह आपके बैकएंड lb-backend-example: पर ट्रैफ़िक भेज सके
कॉन्फ़िगरेशन शुरू करना
- Cloud Console में, नेविगेशन मेन्यू (
) > नेटवर्क सेवाएं > लोड बैलेंसिंग पर क्लिक करें. इसके बाद, लोड बैलेंसर बनाएं पर क्लिक करें. - एचटीटीपी या एचटीटीपीएस लोड बैलेंसिंग में जाकर, कॉन्फ़िगरेशन शुरू करें पर क्लिक करें.

- इंटरनेट से मेरे वीएम तक, क्लासिक एचटीटीपी या एचटीटीपीएस लोड बैलेंसर को चुनें. इसके बाद, जारी रखें पर क्लिक करें.
- नाम को http-lb पर सेट करें.
बैकएंड को कॉन्फ़िगर करना
बैकएंड सेवाएं, आने वाले ट्रैफ़िक को एक या उससे ज़्यादा अटैच किए गए बैकएंड पर भेजती हैं. हर बैकएंड में एक इंस्टेंस ग्रुप और अतिरिक्त क्षमता का मेटाडेटा होता है.
- बैकएंड कॉन्फ़िगरेशन पर क्लिक करें.
- बैकएंड सेवाएं और बैकएंड बकेट के लिए, बैकएंड सेवा बनाएं पर क्लिक करें.
- ये वैल्यू सेट करें. बाकी सभी वैल्यू को डिफ़ॉल्ट पर छोड़ दें:
प्रॉपर्टी | वैल्यू (बताए गए तरीके से विकल्प चुनें) |
नाम | http-backend |
प्रोटोकॉल | HTTP |
नाम वाला पोर्ट | htp |
इंस्टेंस ग्रुप | lb-backend-example |
नंबर पोर्ट करें | 80 |
- हो गया पर क्लिक करें.
- बैकएंड जोड़ें पर क्लिक करें.
- हेल्थ चेक के लिए, हेल्थ चेक बनाएं को चुनें.

- ये वैल्यू सेट करें. बाकी सभी वैल्यू को डिफ़ॉल्ट पर छोड़ दें:
प्रॉपर्टी | वैल्यू (बताए गए तरीके से विकल्प चुनें) |
नाम | http-health-check |
प्रोटोकॉल | टीसीपी |
पोर्ट | 80 |

- सेव करें पर क्लिक करें.
- लॉगिंग चालू करें बॉक्स को चुनें.
- सैंपल रेट को 1 पर सेट करें:

- बैकएंड सेवा बनाने के लिए, बनाएं पर क्लिक करें.

फ़्रंटएंड को कॉन्फ़िगर करना
होस्ट और पाथ के नियमों से यह तय होता है कि आपके ट्रैफ़िक को कैसे डायरेक्ट किया जाएगा. उदाहरण के लिए, वीडियो ट्रैफ़िक को एक बैकएंड पर और स्टैटिक ट्रैफ़िक को दूसरे बैकएंड पर भेजा जा सकता है. हालांकि, इस लैब में होस्ट और पाथ के नियमों को कॉन्फ़िगर नहीं किया जा रहा है.
- फ़्रंटएंड कॉन्फ़िगरेशन पर क्लिक करें.
- यहां दी गई वैल्यू डालें. बाकी सभी वैल्यू को डिफ़ॉल्ट पर सेट रहने दें:
प्रॉपर्टी | वैल्यू (वैल्यू टाइप करें या बताए गए तरीके से विकल्प चुनें) |
प्रोटोकॉल | HTTP |
आईपी वर्शन | IPv4 |
आईपी पता | कुछ समय के लिए |
पोर्ट | 80 |
- हो गया पर क्लिक करें.
एचटीटीपी लोड बैलेंसर की समीक्षा करना और उसे बनाना
- समीक्षा करें और फ़ाइनल करें पर क्लिक करें.

- बैकएंड सेवाओं और फ़्रंटएंड की समीक्षा करें.
- बनाएं पर क्लिक करें.
- लोड बैलेंसर बनने तक इंतज़ार करें.
- लोड बैलेंसर (http-lb) के नाम पर क्लिक करें.
- अगले टास्क के लिए, लोड बैलेंसर का IPv4 पता नोट करें. हम इसे [LB_IP_v4] के तौर पर दिखाएंगे.
6. एचटीटीपी लोड बैलेंसर की जांच करना
बैकएंड के लिए एचटीटीपी लोड बैलेंसर बनाने के बाद, पुष्टि करें कि ट्रैफ़िक को बैकएंड सेवा पर फ़ॉरवर्ड किया गया है. HTTP लोड बैलेंसर के लिए IPv4 ऐक्सेस की जांच करने के लिए, अपने ब्राउज़र में नया टैब खोलें और http://[LB_IP_v4] पर जाएं. [LB_IP_v4] को लोड बैलेंसर के IPv4 पते से बदलना न भूलें.
7. reCAPTCHA सेशन टोकन और चैलेंज-पेज साइट कुंजी बनाएं और उसे डिप्लॉय करें
WAF और Google Cloud Armor इंटिग्रेशन के लिए reCAPTCHA Enterprise में ये सुविधाएं मिलती हैं: reCAPTCHA चैलेंज पेज, reCAPTCHA ऐक्शन-टोकन, और reCAPTCHA सेशन-टोकन. इस कोड लैब में, हम reCAPTCHA सेशन टोकन साइट कुंजी और reCAPTCHA WAF चैलेंज-पेज साइट को लागू करेंगे.
reCAPTCHA सेशन टोकन और WAF चैलेंज-पेज साइट कुंजी बनाएं
सेशन टोकन साइट कुंजी और चैलेंज पेज साइट कुंजी बनाने से पहले, दो बार जांच कर लें कि आपने reCAPTCHA Enterprise API चालू किया हो. इसके लिए, शुरुआत में "एपीआई चालू करें" सेक्शन में दिए गए निर्देशों का पालन करें.
reCAPTCHA JavaScript, आकलन के बाद एंड-यूज़र के ब्राउज़र पर reCAPTCHA सेशन-टोकन को कुकी के तौर पर सेट करता है. असली उपयोगकर्ता का ब्राउज़र, कुकी अटैच करता है और जब तक reCAPTCHA JavaScript चालू रहती है, तब तक कुकी को रीफ़्रेश करता है.
- reCAPTCHA सेशन टोकन साइट कुंजी बनाएं और कुंजी के लिए WAF सुविधा चालू करें. हम Cloud Armor के साथ इंटिग्रेशन को चालू करने के लिए, WAF सेवा को 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
- ऊपर दी गई कमांड के आउटपुट से, आपको बनाई गई कुंजी मिलती है. इसे नोट कर लें, क्योंकि हम इसे अगले चरण में आपकी वेबसाइट में जोड़ेंगे.
- reCAPTCHA WAF के चैलेंज-पेज की साइट कुंजी बनाएं और कुंजी के लिए WAF की सुविधा चालू करें. reCAPTCHA Enterprise पर आने वाले अनुरोधों को रीडायरेक्ट करने के लिए, reCAPTCHA चैलेंज पेज की सुविधा का इस्तेमाल किया जा सकता है. इससे यह पता लगाया जा सकता है कि हर अनुरोध संभावित रूप से धोखाधड़ी वाला है या असली है. हम बाद में इस कुंजी को 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 पर जाएं. आपको बनाई गई कुंजियां, Enterprise Keys -

reCAPTCHA सेशन टोकन साइट कुंजी लागू करना
- नेविगेशन मेन्यू (
) > Compute Engine > वीएम इंस्टेंस पर जाएं. अपने इंस्टेंस ग्रुप में वीएम ढूंढें और उसे एसएसएच करें.

- वेब सर्वर की रूट डायरेक्ट्री पर जाएं और उपयोगकर्ता को रूट में बदलें -
@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 की सुरक्षा नीति के नियम बनाना
इस सेक्शन में, Cloud Armor के बॉट मैनेजमेंट के नियमों का इस्तेमाल किया जाएगा. इससे reCAPTCHA स्कोर के आधार पर अनुरोधों को अनुमति दी जा सकेगी, उन्हें अस्वीकार किया जा सकेगा, और उन्हें रीडायरेक्ट किया जा सकेगा. याद रखें कि सेशन टोकन साइट पासकोड बनाते समय, आपने टेस्टिंग स्कोर 0.5 पर सेट किया था.
- Cloud Shell में, gcloud का इस्तेमाल करके सुरक्षा नीति बनाएं. Cloud Shell इस्तेमाल करने के तरीके के बारे में जानने के लिए, "सेटअप और ज़रूरी शर्तें" में जाकर "Cloud Shell शुरू करें" पर जाएं:
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"
- बॉट मैनेजमेंट का नियम जोड़ें, ताकि अगर यूआरएल पाथ, 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
- अगर यूआरएल पाथ, 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"
- बॉट मैनेजमेंट का एक नियम जोड़ें, ताकि अगर यूआरएल पाथ, median-score.html से मेल खाता हो और उसका स्कोर 0.5 के बराबर हो, तो ट्रैफ़िक को Google reCAPTCHA पर रीडायरेक्ट किया जा सके
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. Cloud Armor की मदद से बॉट मैनेजमेंट की पुष्टि करना
- कोई ब्राउज़र खोलें और http://[LB_IP_v4]/index.html यूआरएल डालें. "लिंक पर जाने की अनुमति दें" पर जाएं. आपको इन तरीकों से अनुमति मिलनी चाहिए -

- यह पक्का करने के लिए कि हमारे पास नया सेशन हो, गुप्त मोड में एक नई विंडो खोलें. http://[LB_IP_v4]/index.html यूआरएल डालें और "Visit blocked link" पर जाएं. आपको एचटीटीपी 403 गड़बड़ी का मैसेज मिलेगा -

- यह पक्का करने के लिए कि हमारे पास नया सेशन हो, गुप्त मोड में एक नई विंडो खोलें. http://[LB_IP_v4]/index.html यूआरएल डालें और "Visit redirect link" पर जाएं. आपको Google reCAPTCHA और मैन्युअल चुनौती वाले पेज पर रीडायरेक्ट किया जाएगा. यह पेज इस तरह दिखेगा -

Cloud Armor के लॉग की पुष्टि करना
सुरक्षा नीति के लॉग एक्सप्लोर करके, यह पुष्टि करें कि बॉट मैनेजमेंट उम्मीद के मुताबिक काम कर रहा है.
- Console में, नेविगेशन मेन्यू > नेटवर्क सुरक्षा > Cloud Armor पर जाएं.
- recaptcha-policy. पर क्लिक करें
- लॉग पर क्लिक करें.

- नीति के लॉग देखें पर क्लिक करें.
- यहां मॉनिटरिंग क्वेरी लैंग्वेज(एमक्यूएल) क्वेरी दी गई है. इसे कॉपी करके क्वेरी एडिटर में चिपकाया जा सकता है -
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 का लोगो, Google LLC के ट्रेडमार्क हैं. दूसरी सभी कंपनियां और प्रॉडक्ट के नाम, उन कंपनियों के ट्रेडमार्क हो सकते हैं जिनसे वे जुड़े हुए हैं.
10. Lab Clean up
- नेटवर्क सुरक्षा >> Cloud Armor >> %POLICY NAME% पर जाएं और मिटाएं चुनें -

- नेटवर्किंग >> नेटवर्क सेवाएं >> लोड बैलेंसिंग पर जाएं. आपने जो लोड बैलेंसर बनाया है उसे चुनें और मिटाएं पर क्लिक करें.

मिटाने के लिए, बैकएंड सेवा और हेल्थ चेक को अतिरिक्त संसाधन के तौर पर चुनें -

- नेविगेशन मेन्यू (
) > Compute Engine > इंस्टेंस ग्रुप पर जाएं. मैनेज किया गया इंस्टेंस ग्रुप चुनें और मिटाएं पर क्लिक करें -

टेक्स्ट बॉक्स में "मिटाएं" टाइप करके, मिटाने की पुष्टि करें.
मैनेज किए गए इंस्टेंस ग्रुप के मिटने का इंतज़ार करें. इससे ग्रुप में मौजूद इंस्टेंस भी मिट जाता है. इंस्टेंस ग्रुप को मिटाने के बाद ही, टेंप्लेट मिटाए जा सकते हैं.
- बाईं ओर मौजूद पैनल में, इंस्टेंस टेंप्लेट पर जाएं**.** इंस्टेंस टेंप्लेट चुनें और मिटाएं पर क्लिक करें.
- नेविगेशन मेन्यू (
) > वीपीसी नेटवर्क > फ़ायरवॉल पर जाएं. डिफ़ॉल्ट रूप से अनुमति देने वाले हेल्थ चेक और एसएसएच की अनुमति देने वाले नियमों को चुनें. इसके बाद, मिटाएं पर क्लिक करें. - नेविगेशन मेन्यू (
) > सुरक्षा > reCAPTCHA Enterprise पर जाएं. हमने जो कुंजियां बनाई हैं उन्हें चुनें और मिटाएं. टेक्स्ट बॉक्स में "मिटाएं" टाइप करके, मिटाने की पुष्टि करें.

11. बधाई हो!
आपने Cloud Armor की मदद से बॉट मैनेजमेंट की सुविधा लागू कर ली है. आपने एचटीटीपी लोड बैलेंसर कॉन्फ़िगर किया हो. इसके बाद, आपने किसी वेबपेज पर reCAPTCHA सेशन टोकन साइट कुंजी बनाई और उसे लागू किया. आपने चैलेंज पेज के लिए साइट कुंजी बनाने का तरीका भी सीखा. आपने Cloud Armor बॉट मैनेजमेंट की नीति सेट अप की है. साथ ही, यह पुष्टि की है कि वे नियमों के आधार पर अनुरोधों को कैसे मैनेज करते हैं. आपको सुरक्षा नीति के लॉग देखने का विकल्प मिला, ताकि यह पता लगाया जा सके कि ट्रैफ़िक को अनुमति क्यों दी गई, ब्लॉक क्यों किया गया या रीडायरेक्ट क्यों किया गया.
हमने क्या-क्या बताया
- इंस्टेंस टेंप्लेट सेट अप करने और मैनेज किए गए इंस्टेंस ग्रुप बनाने का तरीका.
- एचटीटीपी लोड बैलेंसर सेट अप करने का तरीका.
- Cloud Armor की बॉट मैनेजमेंट नीति बनाने का तरीका.
- reCAPTCHA सेशन टोकन साइट कुंजी बनाने और लागू करने का तरीका.
- reCAPTCHA चैलेंज पेज की साइट कुंजी बनाने और उसे लागू करने का तरीका.
- इस बात की पुष्टि कैसे करें कि बॉट मैनेजमेंट की नीति उम्मीद के मुताबिक काम कर रही है.
अगले चरण
- reCAPTCHA ऐक्शन टोकन सेट अप करने की कोशिश करें.