Cloud Armor NamedIP की सूची

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

27243e72ee25ee16.png

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

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

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

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

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

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

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

7e9c09a008e04656.png

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

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

68a800f9adbf4570.png

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

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

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

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.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. बैकएंड सेवाओं और बैकएंड बकेट के लिए, Create पर क्लिक करें या Backend services & backend buckets को चुनें. इसके बाद, Backend services पर क्लिक करें. इसके बाद, Create a backend service पर क्लिक करें.
  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. नाम वाली आईपी पतों की सूची कॉन्फ़िगर करना

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