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 के साथ साझेदारी की है. उनके आईपी पतों की सूचियां, सार्वजनिक यूआरएल की मदद से पब्लिश की जाती हैं.

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

7e9c09a008e04656.png

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

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.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 कंसोल में, सबसे ऊपर दाईं ओर मौजूद टूलबार पर क्लाउड शेल आइकॉन पर क्लिक करें:

bce75f34b2c53987.png

प्रावधान करने और एनवायरमेंट से कनेक्ट होने में कुछ ही समय लगेगा. उसके पूरा हो जाने पर, आपको कुछ ऐसा दिखाई देगा:

f6ef2b5f13479f3a.png

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

6. VPC नेटवर्क बनाएं

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 में अब भी, बाएं मेन्यू में VM इंस्टेंस पर क्लिक करें
  2. ध्यान दें कि us-east1-mig से शुरू होने वाले इंस्टेंस, मैनेज किए जा रहे इंस्टेंस ग्रुप का हिस्सा हैं.
  3. us-east1-mig के इंस्टेंस के बाहरी आईपी पते पर क्लिक करें. आपको क्लाइंट आईपी (आपका आईपी पता), होस्टनेम (us-east1-mig से शुरू होता है) दिखना चाहिए

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

  1. Cloud Console में, नेविगेशन मेन्यू ( mainmenu.png) पर क्लिक करें > Network Services पर क्लिक करें > लोड बैलेंसिंग चालू करने के बाद, 'लोड बैलेंसर बनाएं' पर क्लिक करें.
  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. अगले टास्क के लिए, लोड बैलेंसर का आईपीवी4 पता नोट करें. इसे http-lb कहा जाता है.

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

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

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

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

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 Amour की नई नीति बनाएं

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 सुरक्षा नीति लागू करें और दुनिया भर में नीति लागू होने के लिए कुछ मिनट इंतज़ार करें

gcloud compute backend-services update http-backend --security-policy ca-policy --global

13. नाम वाले आईपी पते की पुष्टि करना

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