১. ভূমিকা
গুগল ক্লাউড আর্মার নেমড আইপি অ্যাড্রেস লিস্ট আপনাকে থার্ড-পার্টি প্রোভাইডারদের দ্বারা পরিচালিত আইপি অ্যাড্রেস এবং আইপি রেঞ্জের তালিকা রেফারেন্স করতে দেয়। আপনি একটি সিকিউরিটি পলিসির মধ্যে নেমড আইপি অ্যাড্রেস লিস্ট কনফিগার করতে পারেন। আপনাকে প্রতিটি আইপি অ্যাড্রেস বা আইপি রেঞ্জ আলাদাভাবে ম্যানুয়ালি উল্লেখ করতে হবে না।
আপনি যা শিখবেন
- ক্লাউড আর্মার নেমড আইপি অ্যাড্রেস তালিকার সুবিধাসমূহ
- ক্লাউড আর্মার নিরাপত্তা নীতি তৈরি করুন
- ক্লাউড আর্মার নামযুক্ত আইপি অ্যাড্রেস তালিকা স্থাপন করুন
- গ্লোবাল লোড ব্যালেন্সার তৈরি করুন
- নমুনা পরীক্ষা অ্যাপ্লিকেশন সহ পরিচালিত ইনস্ট্যান্স গ্রুপ তৈরি করুন
আপনার যা যা লাগবে
- নিরাপত্তা নীতি এবং লোড ব্যালেন্সার বিষয়ে অভিজ্ঞতা
২. শুধুমাত্র অনুমোদিত তৃতীয় পক্ষের প্রদানকারীদের থেকে ট্র্যাফিকের অনুমতি দেওয়া
এর একটি সাধারণ ব্যবহার হলো, কোনো অনুমোদিত তৃতীয় পক্ষের অংশীদারের আইপি অ্যাড্রেস সম্বলিত একটি অ্যালাওলিস্ট তৈরি করা, যাতে এটি নিশ্চিত করা যায় যে শুধুমাত্র সেই অংশীদারের কাছ থেকে আসা ট্র্যাফিকই লোড ব্যালেন্সার এবং ব্যাকএন্ডগুলোতে অ্যাক্সেস করতে পারবে।
উদাহরণস্বরূপ, সিডিএন প্রোভাইডারদের তাদের নিজস্ব ক্যাশে বিতরণ করার জন্য নিয়মিত বিরতিতে অরিজিন সার্ভার থেকে কন্টেন্ট পুল করার প্রয়োজন হয়। গুগলের সাথে একটি অংশীদারিত্ব সিডিএন প্রোভাইডার এবং গুগল নেটওয়ার্ক এজ-এর মধ্যে একটি সরাসরি সংযোগ স্থাপন করে। গুগল ক্লাউডের সিডিএন ব্যবহারকারীরা অরিজিন পুল করার সময় এই সরাসরি সংযোগটি ব্যবহার করতে পারেন। এক্ষেত্রে, সিডিএন ব্যবহারকারী এমন একটি নিরাপত্তা নীতি তৈরি করতে চাইতে পারেন যা শুধুমাত্র সেই নির্দিষ্ট সিডিএন প্রোভাইডারের কাছ থেকে আসা ট্র্যাফিককে অনুমতি দেবে।
এই উদাহরণে, একজন সিডিএন প্রোভাইডার তার আইপি অ্যাড্রেসের তালিকা 23.235.32.0/20, 43.249.72.0/22, ⋯, প্রকাশ করে। একজন সিডিএন ব্যবহারকারী এমন একটি সিকিউরিটি রুল কনফিগার করেন যা শুধুমাত্র এই আইপি অ্যাড্রেসগুলো থেকে আসা ট্র্যাফিককে অনুমতি দেয়। এর ফলে, সিডিএন প্রোভাইডারের দুটি অ্যাক্সেস পয়েন্ট (23.235.32.10 এবং 43.249.72.10) অনুমোদিত হয় এবং তাদের ট্র্যাফিকও অনুমোদিত হয়। অননুমোদিত অ্যাক্সেস পয়েন্ট 198.51.100.1 থেকে আসা ট্র্যাফিক ব্লক করা হয়।

গুগল ক্লাউড আর্মার নামযুক্ত আইপি ঠিকানা
৩. পূর্ব-কনফিগার করা নিয়ম ব্যবহার করে কনফিগারেশন এবং ব্যবস্থাপনা সহজ করা
সিডিএন প্রোভাইডাররা প্রায়শই এমন আইপি অ্যাড্রেস ব্যবহার করে যা সুপরিচিত এবং অনেক সিডিএন ব্যবহারকারীর প্রয়োজন হয়। সময়ের সাথে সাথে এই তালিকাগুলো পরিবর্তিত হয়, কারণ প্রোভাইডাররা আইপি অ্যাড্রেস যোগ করে, সরিয়ে দেয় এবং আপডেট করে।
একটি নিরাপত্তা নীতি নিয়মে নামযুক্ত আইপি অ্যাড্রেস তালিকা ব্যবহার করলে আইপি অ্যাড্রেস কনফিগার এবং পরিচালনা করার প্রক্রিয়া সহজ হয়ে যায়, কারণ গুগল ক্লাউড আর্মার প্রতিদিন স্বয়ংক্রিয়ভাবে সিডিএন প্রোভাইডারদের থেকে তথ্য সিঙ্ক্রোনাইজ করে। এর ফলে, ম্যানুয়ালি একটি বড় আইপি অ্যাড্রেস তালিকা রক্ষণাবেক্ষণের সময়সাপেক্ষ এবং ত্রুটিপূর্ণ প্রক্রিয়াটি দূর হয়।
আইপি ঠিকানা তালিকা প্রদানকারী
নিম্নলিখিত সারণীতে উল্লেখিত আইপি অ্যাড্রেস তালিকা প্রদানকারীরা গুগল ক্লাউড আর্মার দ্বারা সমর্থিত। এরা হলো গুগলের সাথে অংশীদারিত্বে থাকা সিডিএন প্রদানকারী। তাদের আইপি অ্যাড্রেস তালিকাগুলো স্বতন্ত্র পাবলিক ইউআরএল-এর মাধ্যমে প্রকাশ করা হয়।
এই অংশীদাররা IPv4 অ্যাড্রেস এবং IPv6 অ্যাড্রেসের আলাদা তালিকা সরবরাহ করে। Google Cloud Armor প্রদত্ত URL ব্যবহার করে তালিকাগুলো সংগ্রহ করে এবং তারপর সেগুলোকে নামযুক্ত IP অ্যাড্রেসের তালিকায় রূপান্তরিত করে। আপনি টেবিলের নামগুলো ব্যবহার করে তালিকাগুলো উল্লেখ করতে পারেন।

বিকল্পভাবে, আগে থেকে কনফিগার করা নামযুক্ত আইপি অ্যাড্রেসের তালিকা পেতে ক্লাউড শেল ব্যবহার করুন।
ক্লাউডশেলে লগ ইন করুন এবং আপনার প্রজেক্ট আইডি সেট করুন।
gcloud config list project gcloud config set project [YOUR-PROJECT-ID] Perform setting your projectID: projectid=YOUR-PROJECT-ID echo $projectid
ক্লাউড শেল থেকে
gcloud compute security-policies list-preconfigured-expression-sets \
--filter="id:sourceiplist"
এর ফলে যা ফেরত আসে:
EXPRESSION_SET sourceiplist-fastly sourceiplist-cloudflare sourceiplist-imperva
৪. কোডল্যাব টপোলজি

৫. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিতে পরিবেশ সেটআপ
- ক্লাউড কনসোলে সাইন ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। (যদি আপনার আগে থেকে Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।)



প্রজেক্ট আইডিটি মনে রাখবেন, যা সমস্ত গুগল ক্লাউড প্রজেক্ট জুড়ে একটি অনন্য নাম (উপরের নামটি ইতিমধ্যে ব্যবহৃত হয়েছে এবং আপনার জন্য কাজ করবে না, দুঃখিত!)। এই কোডল্যাবে এটিকে পরবর্তীতে PROJECT_ID হিসাবে উল্লেখ করা হবে।
- এরপরে, গুগল ক্লাউড রিসোর্স ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং চালু করতে হবে।
এই কোডল্যাবটি চালাতে খুব বেশি খরচ হওয়ার কথা নয়, এমনকি আদৌ কোনো খরচ নাও হতে পারে। "পরিষ্কার-পরিচ্ছন্নতা" (Cleaning up) বিভাগে দেওয়া নির্দেশাবলী অবশ্যই অনুসরণ করবেন, যেখানে রিসোর্স বন্ধ করার পরামর্শ দেওয়া হয়েছে, যাতে এই টিউটোরিয়ালের বাইরে আপনার কোনো বিল না আসে। গুগল ক্লাউডের নতুন ব্যবহারকারীরা ৩০০ মার্কিন ডলারের ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।
ক্লাউড শেল শুরু করুন
যদিও গুগল ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালনা করা যায়, এই কোডল্যাবে আপনি গুগল ক্লাউড শেল ব্যবহার করবেন, যা ক্লাউডে চালিত একটি কমান্ড লাইন পরিবেশ।
GCP কনসোল থেকে উপরের ডানদিকের টুলবারে থাকা ক্লাউড শেল আইকনে ক্লিক করুন:

পরিবেশটি প্রস্তুত করতে এবং এর সাথে সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগবে। এটি শেষ হলে, আপনি এইরকম কিছু দেখতে পাবেন:

এই ভার্চুয়াল মেশিনটিতে আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুলস লোড করা আছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি প্রদান করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক পারফরম্যান্স ও অথেনটিকেশনকে ব্যাপকভাবে উন্নত করে। এই ল্যাবে আপনার সমস্ত কাজ শুধুমাত্র একটি ব্রাউজার দিয়েই করা যাবে।
৬. ভিপিসি নেটওয়ার্ক তৈরি করুন
ভিপিসি নেটওয়ার্ক
ক্লাউড শেল থেকে
gcloud compute networks create
নামযুক্ত-তালিকা-ভিপিসি
--subnet-mode custom
সাবনেট তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute networks subnets create named-ip-subnet \
--network
নামযুক্ত-তালিকা-ভিপিসি
--range 10.0.0.0/24 --region us-east1
ফায়ারওয়াল নিয়ম তৈরি করুন
ক্লাউড শেল থেকে
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
লোড ব্যালেন্সার তৈরি করুন
ইনস্ট্যান্স টেমপ্লেট তৈরি করুন
ক্লাউড শেল থেকে
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
ম্যানেজড ইনস্ট্যান্স গ্রুপ তৈরি করুন
ক্লাউড শেল থেকে
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
৭. ব্যাকএন্ডগুলো যাচাই করুন
উভয় অঞ্চলে ভিএম ইনস্ট্যান্স তৈরি হচ্ছে কিনা তা যাচাই করুন এবং তাদের HTTP সাইটগুলিতে প্রবেশ করুন।
- Compute Engine-এ থাকা অবস্থায়, বাম দিকের মেনুতে VM instances-এ ক্লিক করুন।
- us-east1-mig দিয়ে শুরু হওয়া ইনস্ট্যান্সগুলো লক্ষ্য করুন। এই ইনস্ট্যান্সগুলো ম্যানেজড ইনস্ট্যান্স গ্রুপের অংশ।
- us-east1-mig ইনস্ট্যান্সের এক্সটার্নাল আইপি-তে ক্লিক করুন। আপনি ক্লায়েন্ট আইপি (আপনার আইপি অ্যাড্রেস) এবং হোস্টনেম (যা us-east1-mig দিয়ে শুরু হয়) দেখতে পাবেন।
HTTP লোড ব্যালেন্সার কনফিগার করুন
- ক্লাউড কনসোলে, নেভিগেশন মেনুতে ক্লিক করুন (
) > নেটওয়ার্ক সার্ভিসেস > লোড ব্যালান্সিং-এ ক্লিক করুন এবং তারপরে ক্রিয়েট লোড ব্যালান্সার-এ ক্লিক করুন। - HTTP(S) লোড ব্যালেন্সিং-এর অধীনে, স্টার্ট কনফিগারেশন-এ ক্লিক করুন।

- ইন্টারনেট থেকে আমার ভিএম-এ নির্বাচন করুন, এবং চালিয়ে যান-এ ক্লিক করুন।
- নামটি http-lb তে সেট করুন।
ব্যাকএন্ড কনফিগার করুন
ব্যাকএন্ড সার্ভিসগুলো আগত ট্র্যাফিককে এক বা একাধিক সংযুক্ত ব্যাকএন্ডে প্রেরণ করে। প্রতিটি ব্যাকএন্ড একটি ইনস্ট্যান্স গ্রুপ এবং অতিরিক্ত পরিষেবা প্রদানের সক্ষমতার মেটাডেটা দ্বারা গঠিত।
- ব্যাকএন্ড কনফিগারেশনে ক্লিক করুন।
- ব্যাকএন্ড সার্ভিস ও ব্যাকএন্ড বাকেটের জন্য, ক্রিয়েট-এ ক্লিক করুন অথবা ব্যাকএন্ড সার্ভিস ও ব্যাকএন্ড বাকেট নির্বাচন করে, তারপর ব্যাকএন্ড সার্ভিসেস-এ ক্লিক করুন এবং তারপরে ক্রিয়েট এ ব্যাকএন্ড সার্ভিস-এ ক্লিক করুন।
- ব্যাকএন্ডের ধরণ হলো ইনস্ট্যান্স গ্রুপ
- নিম্নলিখিত মানগুলি সেট করুন, অন্য সব মান তাদের ডিফল্ট অবস্থায় রাখুন:

- সম্পন্ন ক্লিক করুন।
- স্বাস্থ্য পরীক্ষার জন্য, একটি স্বাস্থ্য পরীক্ষা তৈরি করুন নির্বাচন করুন।

- নিম্নলিখিত মানগুলি সেট করুন, অন্য সব মান তাদের ডিফল্ট অবস্থায় রাখুন:

- নিম্নলিখিত মানগুলি সেট করুন, অন্য সব মান তাদের ডিফল্ট অবস্থায় রাখুন:
- সংরক্ষণ করুন এবং চালিয়ে যান-এ ক্লিক করুন।
- ব্যাকএন্ড সার্ভিস তৈরি করতে Create-এ ক্লিক করুন।

ফ্রন্টএন্ড কনফিগার করুন
হোস্ট এবং পাথ রুল নির্ধারণ করে আপনার ট্র্যাফিক কীভাবে পরিচালিত হবে। উদাহরণস্বরূপ, আপনি ভিডিও ট্র্যাফিক একটি ব্যাকএন্ডে এবং স্ট্যাটিক ট্র্যাফিক অন্য একটি ব্যাকএন্ডে পাঠাতে পারেন। তবে, এই ল্যাবে আপনি হোস্ট এবং পাথ রুল কনফিগার করছেন না।
- ফ্রন্টএন্ড কনফিগারেশনে ক্লিক করুন।
- http-ফ্রন্ট-এন্ড
- নিম্নলিখিতগুলি নির্দিষ্ট করুন, এবং অন্যান্য সমস্ত মান তাদের ডিফল্ট অবস্থায় রাখুন।

- সম্পন্ন ক্লিক করুন।
৮. HTTP লোড ব্যালেন্সার পর্যালোচনা করুন এবং তৈরি করুন
- পর্যালোচনা করুন এবং চূড়ান্ত করুন।

- ব্যাকএন্ড ও ফ্রন্টএন্ড পরিষেবাগুলো পর্যালোচনা করুন।

- Create-এ ক্লিক করুন।
- লোড ব্যালেন্সার তৈরি হওয়ার জন্য কয়েক মিনিট অপেক্ষা করুন।
- লোড ব্যালান্সারের নামের (http-lb) উপর ক্লিক করুন।
- পরবর্তী কাজের জন্য লোড ব্যালান্সারের IPv4 অ্যাড্রেসটি নোট করুন, যা http-lb নামে পরিচিত।
৯. অননুমোদিত প্রবেশ সফল হয়েছে কিনা তা যাচাই করুন।
নেমড আইপি অ্যাড্রেস পলিসি প্রয়োগ করার আগে, ল্যাব ব্যালেন্সার এবং পরবর্তী ওয়েব অ্যাপ্লিকেশনে অননুমোদিত অ্যাক্সেস সফল হয়েছে কিনা তা যাচাই করুন। উল্লেখ্য, নেমড আইপি অ্যাড্রেস পলিসি প্রয়োগ করা হলে, ওয়েব অ্যাপ্লিকেশনে অ্যাক্সেস শুধুমাত্র নির্ধারিত এক্সপ্রেশন সেটের মধ্যে সীমাবদ্ধ থাকবে।
- পূর্ববর্তী ধাপে তৈরি করা আপনার লোড ব্যালেন্সার আইপি অ্যাড্রেস (http-lb) শনাক্ত করুন এবং আপনার ওয়েব ব্রাউজারে পেস্ট করুন। আউটপুটটি নিচের স্ক্রিনশটের মতো হবে।
দ্রষ্টব্য: এই ধাপে কয়েক মিনিট সময় লাগবে। ওয়েবপেজটি তৈরি হয়ে গেলে, ক্লায়েন্ট আইপি আপনার ওয়ার্কস্টেশন আইপি থেকে নয়, বরং গুগল ফ্রন্ট এন্ড থেকে নেওয়া হবে।

আপনার ওয়ার্কস্টেশন থেকে নিচে নির্দেশিত অনুরূপ যাচাইকরণ সম্পাদন করুন।
bash-3.2$ curl <load-balancer-IP>
১০. উদাহরণ আউটপুট
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
১১. নামযুক্ত আইপি তালিকা কনফিগার করুন
নেমড আইপি লিস্টের জন্য একটি নতুন ক্লাউড আর্মার পলিসি তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute --project=$projectid security-policies create ca-policy
ক্লাউড শেল থেকে
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=\*
উপলব্ধ সিডিএন নেমড আইপি লিস্টের ঠিকানাগুলো শনাক্ত করুন।
ক্লাউড শেল থেকে
gcloud compute security-policies list-preconfigured-expression-sets \
--filter="id:sourceiplist"
এর ফলে যা ফেরত আসে:
EXPRESSION_SET sourceiplist-fastly sourceiplist-cloudflare sourceiplist-imperva
ক্লাউড শেল থেকে আপনার CDN-এ উপলব্ধ এক্সপ্রেশন সেটের উপর ভিত্তি করে নামযুক্ত আইপি অ্যাড্রেসের তালিকা কনফিগার করুন।
gcloud beta compute security-policies rules create 600 \
--security-policy ca-policy \
--expression "evaluatePreconfiguredExpr('expression_set')" \
--action "allow"
ক্লাউডফ্লেয়ার ব্যবহার করে উদাহরণ
gcloud beta compute security-policies rules create 600 \
--security-policy ca-policy \
--expression "evaluatePreconfiguredExpr('sourceiplist-cloudflare')" \
--action "allow"
১২. সিএ নিরাপত্তা নীতি প্রয়োগ করুন
CA নিরাপত্তা নীতি প্রয়োগ করুন এবং বিশ্বব্যাপী নীতি প্রচারের জন্য কয়েক মিনিট অপেক্ষা করুন।
gcloud compute backend-services update http-backend --security-policy ca-policy --global
১৩. নামযুক্ত আইপি ঠিকানা যাচাইকরণ
- নিরাপত্তা নীতি কার্যকর হওয়ায়, আপনার ওয়ার্কস্টেশন থেকে লোড ব্যালান্সারে প্রবেশ অননুমোদিত।
- যাচাই করার জন্য, আপনার ওয়ার্কস্টেশন থেকে একটি টার্মিনাল উইন্ডো খুলুন এবং লোড ব্যালান্সারের আইপি অ্যাড্রেসে `curl` কমান্ড চালান। `curl` কমান্ডের আউটপুটে একটি '403' Forbidden এরর আসবে, কারণ আপনার ওয়ার্কস্টেশনটি এখন অননুমোদিত।
আপনার ওয়ার্কস্টেশন থেকে
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
১৪. অভিনন্দন!
কোডল্যাবটি সম্পন্ন করার জন্য অভিনন্দন।
আমরা যা আলোচনা করেছি
- ক্লাউড আর্মার নেমড আইপি অ্যাড্রেস তালিকার সুবিধাসমূহ
- গ্লোবাল লোড ব্যালেন্সার তৈরি করুন
- নমুনা পরীক্ষা অ্যাপ্লিকেশন সহ পরিচালিত ইনস্ট্যান্স গ্রুপ তৈরি করুন
- ক্লাউড আর্মার নিরাপত্তা নীতি তৈরি করুন
- ক্লাউড আর্মার নামযুক্ত আইপি অ্যাড্রেস তালিকা স্থাপন করুন
- নেমড আইপি ক্লাউড আর্মার পলিসি যাচাই করুন