Cloud Armor NamedIP की सूची

1. परिचय

Google Cloud Armor की NamedIP लिस्ट की मदद से, आईपी पतों और आईपी रेंज की उन सूचियों को रेफ़रंस किया जा सकता है जिन्हें तीसरे पक्ष की कंपनियां मैनेज करती हैं. सुरक्षा नीति में, नाम वाली आईपी पतों की सूचियां कॉन्फ़िगर की जा सकती हैं. आपको हर आईपी पते या आईपी रेंज को मैन्युअल तरीके से अलग-अलग तय करने की ज़रूरत नहीं है.

आपको क्या सीखने को मिलेगा

  • Cloud Armor की NamedIP लिस्ट के फ़ायदे
  • Cloud Armor की सुरक्षा नीति बनाना
  • Cloud Armor की NamedIP लिस्ट डिप्लॉय करना
  • ग्लोबल लोड बैलेंसर बनाना
  • सैंपल टेस्ट ऐप्लिकेशन के साथ मैनेज किया गया इंस्टेंस ग्रुप बनाना

आपको इन चीज़ों की ज़रूरत होगी

  • सुरक्षा नीतियों और लोड बैलेंसर का अनुभव

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 से आने वाले ट्रैफ़िक को ब्लॉक कर दिया गया है.

27243e72ee25ee16.png

Google Cloud Armor का नाम दिया गया आईपी पता

3. पहले से कॉन्फ़िगर किए गए नियमों का इस्तेमाल करके, कॉन्फ़िगरेशन और मैनेजमेंट को आसान बनाना

सीडीएन की सेवाएं देने वाली कंपनियां अक्सर ऐसे आईपी पतों का इस्तेमाल करती हैं जो जाने-पहचाने होते हैं और जिनका इस्तेमाल सीडीएन के कई उपयोगकर्ताओं को करना होता है. समय के साथ इन सूचियों में बदलाव होता रहता है, क्योंकि सेवा देने वाली कंपनियां आईपी पते जोड़ती हैं, हटाती हैं, और अपडेट करती हैं.

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

आईपी पते की सूची देने वाली कंपनियां

यहां दी गई टेबल में, आईपी पते की सूची देने वाली कंपनियों के नाम दिए गए हैं. ये कंपनियां, Google Cloud Armor के साथ काम करती हैं. ये सीडीएन सेवा देने वाली ऐसी कंपनियां हैं जिन्होंने Google के साथ साझेदारी की है. उनकी आईपी पतों की सूचियां, अलग-अलग सार्वजनिक यूआरएल के ज़रिए पब्लिश की जाती हैं.

ये पार्टनर, IPv4 पतों और IPv6 पतों की अलग-अलग सूचियां उपलब्ध कराते हैं. Google Cloud Armor, दी गई सूचियों को फ़ेच करने के लिए दिए गए यूआरएल का इस्तेमाल करता है. इसके बाद, सूचियों को आईपी पतों की NamedIP लिस्ट में बदल देता है. टेबल में मौजूद नामों के हिसाब से, सूचियों का रेफ़रंस दिया जाता है.

7e9c09a008e04656.png

इसके अलावा, पहले से कॉन्फ़िगर की गई आईपी पतों की सूची पाने के लिए, क्लाउड शेल का इस्तेमाल करें

Cloud Shell में लॉग इन करें और अपना प्रोजेक्ट आईडी सेट करें

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. कोडलैब टोपोलॉजी

68a800f9adbf4570.png

5. सेटअप और ज़रूरी शर्तें

अपने हिसाब से एनवायरमेंट सेट अप करना

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

96a9c957bc475304.pngb9a10ebdf5b5a448.pnga1e3c01a38fa61c2.png

प्रोजेक्ट आईडी याद रखें. यह सभी Google Cloud प्रोजेक्ट के लिए एक यूनीक नाम होता है. ऊपर दिया गया नाम पहले ही इस्तेमाल किया जा चुका है. इसलिए, यह आपके लिए काम नहीं करेगा. माफ़ करें! इस कोडलैब में इसे बाद में PROJECT_ID के तौर पर दिखाया जाएगा.

  1. इसके बाद, Google Cloud संसाधनों का इस्तेमाल करने के लिए, आपको Cloud Console में बिलिंग चालू करनी होगी.

इस कोडलैब को पूरा करने में ज़्यादा खर्च नहीं आएगा. "सफ़ाई करना" सेक्शन में दिए गए निर्देशों का पालन करना न भूलें. इसमें आपको संसाधनों को बंद करने का तरीका बताया गया है, ताकि इस ट्यूटोरियल के बाद आपको बिलिंग न करनी पड़े. Google Cloud के नए उपयोगकर्ताओं को, मुफ़्त में आज़माने के लिए 300 डॉलर का क्रेडिट मिलता है.

Cloud Shell शुरू करें

Google Cloud को अपने लैपटॉप से रिमोटली ऐक्सेस किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जाएगा. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.

GCP Console में, सबसे ऊपर दाईं ओर मौजूद टूलबार पर मौजूद Cloud Shell आइकॉन पर क्लिक करें:

bce75f34b2c53987.png

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

f6ef2b5f13479f3a.png

इस वर्चुअल मशीन में, डेवलपमेंट के लिए ज़रूरी सभी टूल पहले से मौजूद होते हैं. यह 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. बैकएंड की पुष्टि करना

पुष्टि करें कि दोनों क्षेत्रों में वीएम इंस्टेंस बनाए जा रहे हैं और उनकी एचटीटीपी साइटों को ऐक्सेस किया जा रहा है.

  1. Compute Engine में ही, बाईं ओर मौजूद मेन्यू में जाकर वीएम इंस्टेंस पर क्लिक करें
  2. us-east1-mig से शुरू होने वाले इंस्टेंस पर ध्यान दें. ये इंस्टेंस, मैनेज किए गए इंस्टेंस ग्रुप का हिस्सा हैं.
  3. us-east1-mig के किसी इंस्टेंस के बाहरी आईपी पते पर क्लिक करें. आपको क्लाइंट का आईपी (आपका आईपी पता) और होस्टनेम (us-east1-mig से शुरू होता है) दिखना चाहिए

एचटीटीपी लोड बैलेंसर को कॉन्फ़िगर करना

  1. Cloud Console में, नेविगेशन मेन्यू ( mainmenu.png) > नेटवर्क सेवाएं > लोड बैलेंसिंग पर क्लिक करें. इसके बाद, लोड बैलेंसर बनाएं पर क्लिक करें.
  2. एचटीटीपी या एचटीटीपीएस लोड बैलेंसिंग में जाकर, कॉन्फ़िगरेशन शुरू करें पर क्लिक करें.

start_config.png

  1. 'इंटरनेट से मेरे वीएम तक' चुनें और जारी रखें पर क्लिक करें.
  2. नाम को http-lb पर सेट करें.

बैकएंड को कॉन्फ़िगर करना

बैकएंड सेवाएं, आने वाले ट्रैफ़िक को एक या उससे ज़्यादा अटैच किए गए बैकएंड पर भेजती हैं. हर बैकएंड में एक इंस्टेंस ग्रुप और अतिरिक्त क्षमता का मेटाडेटा होता है.

  1. बैकएंड कॉन्फ़िगरेशन पर क्लिक करें.
  2. बैकएंड सेवाओं और बैकएंड बकेट के लिए, 'बनाएं' पर क्लिक करें या बैकएंड सेवाएं और बैकएंड बकेट चुनें. इसके बाद, बैकएंड सेवाएं पर क्लिक करें. इसके बाद, बैकएंड सेवा बनाएं पर क्लिक करें.
  3. बैकएंड टाइप, इंस्टेंस ग्रुप है
  4. इन वैल्यू को सेट करें. बाकी सभी वैल्यू को डिफ़ॉल्ट पर छोड़ दें: 18bf7a852f0759ee.png
  5. 'हो गया' पर क्लिक करें.
  6. हेल्थ चेक के लिए, 'हेल्थ चेक बनाएं' को चुनें. health_check.png
    1. इन वैल्यू को सेट करें. बाकी सभी वैल्यू को डिफ़ॉल्ट पर छोड़ दें: d2f85af1e988532b.png
  7. 'सेव करें और जारी रखें' पर क्लिक करें.
  8. बैकएंड सेवा बनाने के लिए, बनाएं पर क्लिक करें.

b00c217bf592f0.png

फ़्रंटएंड को कॉन्फ़िगर करना

होस्ट और पाथ के नियमों से यह तय होता है कि आपके ट्रैफ़िक को कैसे डायरेक्ट किया जाएगा. उदाहरण के लिए, वीडियो ट्रैफ़िक को एक बैकएंड पर और स्टैटिक ट्रैफ़िक को दूसरे बैकएंड पर भेजा जा सकता है. हालांकि, इस लैब में होस्ट और पाथ के नियमों को कॉन्फ़िगर नहीं किया जा रहा है.

  1. फ़्रंटएंड कॉन्फ़िगरेशन पर क्लिक करें.
  2. http-front-end
  3. यहां दी गई वैल्यू डालें. बाकी सभी वैल्यू को डिफ़ॉल्ट 51ae16211e72142f.png पर छोड़ दें
  4. 'हो गया' पर क्लिक करें.

8. एचटीटीपी लोड बैलेंसर की समीक्षा करना और उसे बनाना

  1. 'समीक्षा करें और फ़ाइनल करें' पर क्लिक करें.

8efe5b462a80071d.png

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

30b06910bf7fae29.png

  1. 'बनाएं' पर क्लिक करें.
  2. लोड बैलेंसर बनने में कुछ मिनट लग सकते हैं
  3. लोड बैलेंसर (http-lb) के नाम पर क्लिक करें.
  4. अगले टास्क के लिए, लोड बैलेंसर के IPv4 पते को नोट करें. इसे http-lb कहा जाता है.

9. बिना अनुमति के ऐक्सेस की पुष्टि करना

आईपी पते के नाम वाली नीति लागू करने से पहले, पुष्टि करें कि लैब बैलेंसर और उसके बाद वेब ऐप्लिकेशन को अनधिकृत तरीके से ऐक्सेस किया गया हो. ध्यान दें कि आईपी पते के आधार पर ऐक्सेस देने की नीति लागू होने के बाद, वेब ऐप्लिकेशन का ऐक्सेस सिर्फ़ उन आईपी पतों तक सीमित हो जाता है जिन्हें ऐक्सेस देने के लिए सेट किया गया है.

  1. पिछले चरण में बनाए गए लोड बैलेंसर (http-lb) के आईपी पते का पता लगाएं और उसे अपने वेब ब्राउज़र में चिपकाएं. आउटपुट, नीचे दिए गए स्क्रीनशॉट के जैसा होगा.

ध्यान दें: इस चरण में कुछ मिनट लगेंगे. वेबपेज जनरेट होने के बाद, क्लाइंट आईपी Google Front End का होगा, न कि आपके वर्कस्टेशन का आईपी.

f93410e9568f1f32.png

अपने वर्कस्टेशन से, यहां बताई गई पुष्टि करें

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. नाम वाली आईपी पतों की सूची कॉन्फ़िगर करना

Named IP लिस्ट के लिए, 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. नाम वाले आईपी पते की पुष्टि करना

  1. सुरक्षा नीति लागू होने की वजह से, आपके वर्कस्टेशन से लोड बैलेंसर को ऐक्सेस करने की अनुमति नहीं है.
  2. पुष्टि करने के लिए, अपने वर्कस्टेशन से टर्मिनल विंडो खोलें और लोड बैलेंसर के आईपी पते पर कर्ल करें. 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 की NamedIP लिस्ट के फ़ायदे
  • ग्लोबल लोड बैलेंसर बनाना
  • सैंपल टेस्ट ऐप्लिकेशन के साथ मैनेज किया गया इंस्टेंस ग्रुप बनाना
  • Cloud Armor की सुरक्षा नीति बनाना
  • Cloud Armor की NamedIP लिस्ट डिप्लॉय करना
  • नाम वाले आईपी पतों के लिए Cloud Armor की नीति की पुष्टि करना