1. परिचय
Google Cloud Armor की आईपी पते की सूचियों की मदद से, आईपी पतों और आईपी रेंज की उन सूचियों को रेफ़रंस किया जा सकता है जिन्हें तीसरे पक्ष की कंपनियां मैनेज करती हैं. सुरक्षा नीति में, नाम वाली आईपी पतों की सूचियां कॉन्फ़िगर की जा सकती हैं. आपको हर आईपी पते या आईपी रेंज को मैन्युअल तरीके से अलग-अलग नहीं बताना होगा.
आपको क्या सीखने को मिलेगा
- Cloud Armor की आईपी पतों की सूची के फ़ायदे
- Cloud Armor की सुरक्षा नीति बनाना
- Cloud Armor की आईपी पते की सूची को डिप्लॉय करना
- ग्लोबल लोड बैलेंसर बनाना
- सैंपल टेस्ट ऐप्लिकेशन के साथ मैनेज किया गया इंस्टेंस ग्रुप बनाना
आपको इन चीज़ों की ज़रूरत होगी
- सुरक्षा नीतियों और लोड बैलेंसर का अनुभव
2. सिर्फ़ उन तीसरे पक्ष की कंपनियों को ट्रैफ़िक की अनुमति देना जिन्हें अनुमति मिली है
आम तौर पर, अनुमति पा चुके तीसरे पक्ष के पार्टनर के आईपी पतों की अनुमति वाली सूची बनाई जाती है. इससे यह पक्का किया जा सकता है कि सिर्फ़ इस पार्टनर से आने वाला ट्रैफ़िक, लोड बैलेंसर और बैकएंड को ऐक्सेस कर सके.
उदाहरण के लिए, सीडीएन सेवा देने वाली कंपनियों को ऑरिजिन सर्वर से कॉन्टेंट को नियमित अंतराल पर पुल करना होता है, ताकि वे उसे अपनी कैश मेमोरी में डिस्ट्रिब्यूट कर सकें. Google के साथ साझेदारी करने से, सीडीएन की सेवाएं देने वाली कंपनियों और Google नेटवर्क एज के बीच सीधा कनेक्शन मिलता है. Google Cloud पर सीडीएन का इस्तेमाल करने वाले लोग, ओरिजिन पुल के दौरान इस डायरेक्ट कनेक्शन का इस्तेमाल कर सकते हैं. ऐसे में, सीडीएन का इस्तेमाल करने वाला व्यक्ति या कंपनी, ऐसी सुरक्षा नीति बना सकती है जो सिर्फ़ उस सीडीएन सेवा देने वाली कंपनी से आने वाले ट्रैफ़िक को अनुमति दे.
इस उदाहरण में, सीडीएन सेवा देने वाली कंपनी, आईपी पतों की अपनी सूची 23.235.32.0/20, 43.249.72.0/22, ⋯, पब्लिश करती है. सीडीएन का इस्तेमाल करने वाला व्यक्ति, सुरक्षा से जुड़ा ऐसा नियम कॉन्फ़िगर करता है जो सिर्फ़ इन आईपी पतों से आने वाले ट्रैफ़िक को अनुमति देता है. इसलिए, सीडीएन सेवा देने वाली दो कंपनियों को ऐक्सेस पॉइंट की अनुमति दी गई है (23.235.32.10 और 43.249.72.10). इसलिए, उनके ट्रैफ़िक को अनुमति दी गई है. बिना अनुमति वाले ऐक्सेस पॉइंट 198.51.100.1 से आने वाले ट्रैफ़िक को ब्लॉक कर दिया गया है.

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

इसके अलावा, पहले से कॉन्फ़िगर की गई आईपी पतों की सूची पाने के लिए, क्लाउड शेल का इस्तेमाल करें
cloudshell में लॉग इन करें और अपना projectid सेट करें
gcloud config list project gcloud config set project [YOUR-PROJECT-ID] Perform setting your projectID: projectid=YOUR-PROJECT-ID echo $projectid
Cloud Shell से
gcloud compute security-policies list-preconfigured-expression-sets \
--filter="id:sourceiplist"
इससे यह नतीजा मिलता है:
EXPRESSION_SET sourceiplist-fastly sourceiplist-cloudflare sourceiplist-imperva
4. कोडलैब टोपोलॉजी

5. सेटअप और ज़रूरी शर्तें
अपने हिसाब से एनवायरमेंट सेट अप करना
- Cloud Console में साइन इन करें. इसके बाद, नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. (अगर आपके पास पहले से Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.)



प्रोजेक्ट आईडी याद रखें. यह सभी Google Cloud प्रोजेक्ट के लिए एक यूनीक नाम होता है. ऊपर दिया गया नाम पहले ही इस्तेमाल किया जा चुका है. इसलिए, यह आपके लिए काम नहीं करेगा. माफ़ करें! इस कोड लैब में इसे बाद में PROJECT_ID के तौर पर दिखाया जाएगा.
- इसके बाद, Google Cloud संसाधनों का इस्तेमाल करने के लिए, आपको Cloud Console में बिलिंग चालू करनी होगी.
इस कोडलैब को पूरा करने में ज़्यादा खर्च नहीं आएगा. "सफ़ाई करना" सेक्शन में दिए गए निर्देशों का पालन करना न भूलें. इसमें बताया गया है कि संसाधनों को कैसे बंद किया जाए, ताकि इस ट्यूटोरियल के बाद आपको बिलिंग न करनी पड़े. Google Cloud के नए उपयोगकर्ताओं को, मुफ़्त में आज़माने के लिए 300 डॉलर का क्रेडिट मिलता है.
Cloud Shell शुरू करें
Google Cloud को अपने लैपटॉप से रिमोटली ऐक्सेस किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जाएगा. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.
GCP Console में, सबसे ऊपर दाईं ओर मौजूद टूलबार पर मौजूद Cloud Shell आइकॉन पर क्लिक करें:

इसे चालू करने और एनवायरमेंट से कनेक्ट करने में सिर्फ़ कुछ सेकंड लगेंगे. यह प्रोसेस पूरी होने के बाद, आपको कुछ ऐसा दिखेगा:

इस वर्चुअल मशीन में, डेवलपमेंट के लिए ज़रूरी सभी टूल पहले से मौजूद हैं. यह 5 जीबी की होम डायरेक्ट्री उपलब्ध कराता है. साथ ही, यह Google Cloud पर काम करता है. इससे नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस बेहतर होती है. इस लैब में मौजूद सभी टास्क को सिर्फ़ ब्राउज़र की मदद से पूरा किया जा सकता है.
6. वीपीसी नेटवर्क बनाना
VPC नेटवर्क
Cloud Shell से
gcloud compute networks create
named-list-vpc
--subnet-mode custom
सबनेट बनाएं
Cloud Shell से
gcloud compute networks subnets create named-ip-subnet \
--network
named-list-vpc
--range 10.0.0.0/24 --region us-east1
फ़ायरवॉल के नियम बनाना
Cloud Shell से
gcloud compute --project=$projectid firewall-rules create default-allow-http --direction=INGRESS --priority=1000 --network=named-list-vpc --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0
gcloud compute --project=$projectid firewall-rules create default-allow-health-check --direction=INGRESS --priority=1000 --network=named-list-vpc --action=ALLOW --rules=tcp --source-ranges=130.211.0.0/22,35.191.0.0/16
लोड बैलेंसर बनाना
इंस्टेंस टेंप्लेट बनाना
Cloud Shell से
gcloud beta compute --project=$projectid instance-templates create us-east1-template --machine-type=e2-medium --subnet=projects/$projectid/regions/us-east1/subnetworks/named-ip-subnet --network-tier=PREMIUM --metadata=startup-script-url=gs://cloud-training/gcpnet/httplb/startup.sh --maintenance-policy=MIGRATE --image=debian-10-buster-v20210217 --image-project=debian-cloud --boot-disk-size=10GB --boot-disk-type=pd-balanced --boot-disk-device-name=us-east1-template --no-shielded-secure-boot --no-shielded-vtpm --no-shielded-integrity-monitoring --reservation-affinity=any
मैनेज किया गया इंस्टेंस ग्रुप बनाना
Cloud Shell से
gcloud compute --project=$projectid instance-groups managed create us-east1-mig --base-instance-name=us-east1-mig --template=us-east1-template --size=1 --zone=us-east1-b
7. बैकएंड की पुष्टि करना
पुष्टि करें कि दोनों क्षेत्रों में वीएम इंस्टेंस बनाए जा रहे हैं और उनकी एचटीटीपी साइटों को ऐक्सेस किया जा रहा है.
- Compute Engine में ही, बाईं ओर मौजूद मेन्यू में जाकर वीएम इंस्टेंस पर क्लिक करें
- us-east1-mig से शुरू होने वाले इंस्टेंस पर ध्यान दें. ये इंस्टेंस, मैनेज किए गए इंस्टेंस ग्रुप का हिस्सा हैं.
- us-east1-mig के किसी इंस्टेंस के बाहरी आईपी पते पर क्लिक करें. आपको क्लाइंट का आईपी (आपका आईपी पता) और होस्टनेम (us-east1-mig से शुरू होता है) दिखना चाहिए
एचटीटीपी लोड बैलेंसर को कॉन्फ़िगर करना
- Cloud Console में, नेविगेशन मेन्यू (
) > नेटवर्क सेवाएं > लोड बैलेंसिंग पर क्लिक करें. इसके बाद, लोड बैलेंसर बनाएं पर क्लिक करें. - एचटीटीपी या एचटीटीपीएस लोड बैलेंसिंग में जाकर, कॉन्फ़िगरेशन शुरू करें पर क्लिक करें.

- 'इंटरनेट से मेरे वीएम तक' चुनें और जारी रखें पर क्लिक करें.
- नाम को http-lb पर सेट करें.
बैकएंड को कॉन्फ़िगर करना
बैकएंड सेवाएं, आने वाले ट्रैफ़िक को अटैच किए गए एक या उससे ज़्यादा बैकएंड पर भेजती हैं. हर बैकएंड में एक इंस्टेंस ग्रुप और अतिरिक्त सर्वर क्षमता का मेटाडेटा होता है.
- बैकएंड कॉन्फ़िगरेशन पर क्लिक करें.
- बैकएंड सेवाओं और बैकएंड बकेट के लिए, Create पर क्लिक करें या Backend services & backend buckets को चुनें. इसके बाद, Backend services पर क्लिक करें. इसके बाद, Create a backend service पर क्लिक करें.
- बैकएंड टाइप, इंस्टेंस ग्रुप है
- इन वैल्यू को सेट करें. बाकी सभी वैल्यू को डिफ़ॉल्ट पर छोड़ दें:

- 'हो गया' पर क्लिक करें.
- हेल्थ चेक के लिए, 'हेल्थ चेक बनाएं' को चुनें.

- इन वैल्यू को सेट करें. बाकी सभी वैल्यू को डिफ़ॉल्ट पर छोड़ दें:

- इन वैल्यू को सेट करें. बाकी सभी वैल्यू को डिफ़ॉल्ट पर छोड़ दें:
- 'सेव करें और जारी रखें' पर क्लिक करें.
- बैकएंड सेवा बनाने के लिए, 'बनाएं' पर क्लिक करें.

फ़्रंटएंड को कॉन्फ़िगर करना
होस्ट और पाथ के नियमों से यह तय होता है कि आपके ट्रैफ़िक को कैसे डायरेक्ट किया जाएगा. उदाहरण के लिए, वीडियो ट्रैफ़िक को एक बैकएंड पर और स्टैटिक ट्रैफ़िक को दूसरे बैकएंड पर भेजा जा सकता है. हालांकि, इस लैब में होस्ट और पाथ के नियमों को कॉन्फ़िगर नहीं किया जा रहा है.
- फ़्रंटएंड कॉन्फ़िगरेशन पर क्लिक करें.
- http-front-end
- यहां दी गई वैल्यू डालें. बाकी सभी वैल्यू को डिफ़ॉल्ट
पर छोड़ दें - 'हो गया' पर क्लिक करें.
8. एचटीटीपी लोड बैलेंसर की समीक्षा करना और उसे बनाना
- 'समीक्षा करें और फ़ाइनल करें' पर क्लिक करें.

- बैकएंड सेवाओं और फ़्रंटएंड की समीक्षा करें.

- 'बनाएं' पर क्लिक करें.
- लोड बैलेंसर बनने में कुछ मिनट लग सकते हैं
- लोड बैलेंसर (http-lb) के नाम पर क्लिक करें.
- अगले टास्क के लिए, लोड बैलेंसर के IPv4 पते को नोट करें. इसे http-lb कहा जाता है.
9. बिना अनुमति के ऐक्सेस की पुष्टि करना
आईपी पते के नाम वाली नीति लागू करने से पहले, लैब बैलेंसर और उसके बाद वेब ऐप्लिकेशन के अनधिकृत ऐक्सेस की पुष्टि करें. ध्यान दें कि आईपी पते के नामकरण की नीति लागू होने के बाद, वेब ऐप्लिकेशन का ऐक्सेस सिर्फ़ उपलब्ध कराए गए एक्सप्रेशन सेट तक सीमित हो जाता है.
- पिछले चरण में बनाए गए लोड बैलेंसर (http-lb) के आईपी पते का पता लगाएं और उसे अपने वेब ब्राउज़र में चिपकाएं. आउटपुट, नीचे दिए गए स्क्रीनशॉट के जैसा होगा.
ध्यान दें: इस चरण में कुछ मिनट लगेंगे. वेबपेज जनरेट होने के बाद, क्लाइंट आईपी Google Front End का होगा, न कि आपके वर्कस्टेशन का आईपी.

अपने वर्कस्टेशन से, यहां बताई गई पुष्टि करें
bash-3.2$ curl <load-balancer-IP>
10. आउटपुट का उदाहरण
bash-3.2$ curl <load-balancer-ip> <h1>HTTP Load Balancing Lab</h1><h2>Client IP</h2>Your IP address : 35.191.0.151<h2>Hostname</h2>Server Hostname: us-east1-mig-8nqq<h2>Server Location</h2>Region and Zone: us-east1-b
11. नाम वाली आईपी पतों की सूची कॉन्फ़िगर करना
आईपी पतों की सूची के लिए, Cloud Armor की नई नीति बनाना
Cloud Shell से
gcloud compute --project=$projectid security-policies create ca-policy
Cloud Shell से
gcloud compute --project=$projectid security-policies rules update 2147483647 --action=deny-403 --security-policy=ca-policy --description="Default rule, higher priority overrides it" --src-ip-ranges=\*
उपलब्ध सीडीएन के नाम वाले आईपी पतों की सूचियों के पतों की पहचान करें.
Cloud Shell से
gcloud compute security-policies list-preconfigured-expression-sets \
--filter="id:sourceiplist"
इससे यह नतीजा मिलता है:
EXPRESSION_SET sourceiplist-fastly sourceiplist-cloudflare sourceiplist-imperva
Cloud Shell से, उपलब्ध एक्सप्रेशन सेट के आधार पर आईपी पतों की सूची को कॉन्फ़िगर करें
gcloud beta compute security-policies rules create 600 \
--security-policy ca-policy \
--expression "evaluatePreconfiguredExpr('expression_set')" \
--action "allow"
cloudflare का इस्तेमाल करने का उदाहरण
gcloud beta compute security-policies rules create 600 \
--security-policy ca-policy \
--expression "evaluatePreconfiguredExpr('sourceiplist-cloudflare')" \
--action "allow"
12. CA की सुरक्षा नीति लागू करना
CA की सुरक्षा नीति लागू करें और ग्लोबल नीति के लागू होने के लिए कुछ मिनट इंतज़ार करें
gcloud compute backend-services update http-backend --security-policy ca-policy --global
13. नाम वाले आईपी पते की पुष्टि करना
- सुरक्षा नीति लागू होने की वजह से, आपके वर्कस्टेशन से लोड बैलेंसर को ऐक्सेस करने की अनुमति नहीं है.
- पुष्टि करने के लिए, अपने वर्कस्टेशन से टर्मिनल विंडो खोलें और लोड बैलेंसर के आईपी पते पर कर्ल करें. curl से मिलने वाले आउटपुट में, ‘403' का 'अनुमति नहीं है' गड़बड़ी का मैसेज दिखेगा. ऐसा इसलिए होगा, क्योंकि अब आपके वर्कस्टेशन को अनुमति नहीं है.
अपने वर्कस्टेशन से
bash-3.2$ curl <load-balancer-IP> <!doctype html><meta charset="utf-8"><meta name=viewport content="width=device-width, initial-scale=1"><title>403</title>403 Forbidden
चैनल पर बिना अनुमति के की गई गतिविधियों को पूरी तरह से मिटाने का तरीका
gcloud -q compute backend-services update http-backend --security-policy "" --global gcloud -q compute --project=$projectid security-policies delete ca-policy gcloud -q compute forwarding-rules delete http-front-end --global gcloud -q compute target-http-proxies delete http-lb-target-proxy gcloud -q compute url-maps delete http-lb gcloud -q compute backend-services delete http-backend --global gcloud -q compute health-checks delete http-health-check gcloud -q compute --project=$projectid instance-groups managed delete us-east1-mig --zone=us-east1-b gcloud -q beta compute --project=$projectid instance-templates delete us-east1-template gcloud -q compute --project=$projectid firewall-rules delete default-allow-http gcloud -q compute --project=$projectid firewall-rules delete default-allow-health-check gcloud -q compute networks subnets delete named-ip-subnet --region us-east1 gcloud -q compute networks delete named-list-vpc
14. बधाई हो!
कोडलैब पूरा करने के लिए बधाई.
हमने क्या-क्या बताया
- Cloud Armor की आईपी पतों की सूची के फ़ायदे
- ग्लोबल लोड बैलेंसर बनाना
- सैंपल टेस्ट ऐप्लिकेशन के साथ मैनेज किया गया इंस्टेंस ग्रुप बनाना
- Cloud Armor की सुरक्षा नीति बनाना
- Cloud Armor की आईपी पते की सूची को डिप्लॉय करना
- नाम वाले आईपी के लिए Cloud Armor की नीति की पुष्टि करना