1. সংক্ষিপ্ত বিবরণ
এই ল্যাবটি আপনাকে দেখায় কিভাবে ক্লাউড রান পরিষেবার অ্যাক্সেস সীমাবদ্ধ করতে হয় এবং শুধুমাত্র প্রাঙ্গনে বা আপনার প্রকল্পের VPC-তে চলমান ওয়ার্কলোড থেকে অনুরোধগুলিকে অনুমতি দিতে হয়। অ্যাক্সেস নিয়ন্ত্রণের দুটি স্তর আপনি ব্যবহার করতে পারেন: প্রবেশ সেটিংস এবং পরিচয় এবং অ্যাক্সেস ব্যবস্থাপনা (IAM) নীতি।

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

VPC-তে একটি জাম্প সার্ভার ব্যবহার করে একটি অন-প্রিমিস ওয়ার্কলোড সিমুলেট করা
এই ল্যাবে, আপনি VPC-তে একটি Compute Engine ভার্চুয়াল মেশিন থেকে অনুরোধ পাঠিয়ে অন-প্রেমিসেস হোস্ট থেকে অনুরোধ পাঠানোর সিমুলেট করবেন, যেমনটি এখানে দেখানো হয়েছে।

জাম্প সার্ভার হিসেবে আপনি যে কম্পিউট ইঞ্জিন ভার্চুয়াল মেশিনটি ব্যবহার করবেন তার নেটওয়ার্ক অরিজিন ক্লাউড ভিপিএন গেটওয়ের মতোই, যার কারণে আপনি এটি ব্যবহার করে অন-প্রিমিসেস ওয়ার্কলোড থেকে অনুরোধ পাঠানোর অনুকরণ করতে পারবেন।
2. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
- গুগল ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন অথবা বিদ্যমান একটি পুনরায় ব্যবহার করুন। যদি আপনার ইতিমধ্যেই একটি জিমেইল বা গুগল ওয়ার্কস্পেস অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।



- এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রজেক্টের নামটি প্রদর্শন করা হবে। এটি একটি অক্ষর স্ট্রিং যা Google API গুলি ব্যবহার করে না। আপনি যেকোনো সময় এটি আপডেট করতে পারেন।
- সমস্ত Google ক্লাউড প্রোজেক্টে প্রোজেক্ট আইডি অনন্য এবং অপরিবর্তনীয় (সেট করার পরে এটি পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটি কী তা নিয়ে চিন্তা করেন না। বেশিরভাগ কোডল্যাবে, আপনাকে প্রোজেক্ট আইডি উল্লেখ করতে হবে (এটি সাধারণত
PROJECT_IDহিসাবে চিহ্নিত করা হয়)। যদি আপনি জেনারেট করা আইডি পছন্দ না করেন, তাহলে আপনি অন্য একটি র্যান্ডম তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের চেষ্টা করে দেখতে পারেন যে এটি উপলব্ধ কিনা। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রকল্পের সময়কালের জন্য থাকবে। - আপনার তথ্যের জন্য, তৃতীয় একটি মান আছে, একটি প্রকল্প নম্বর যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
- এরপর, ক্লাউড রিসোর্স/API ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবটি চালানোর জন্য খুব বেশি খরচ হবে না, এমনকি কিছু খরচও হবে না। এই টিউটোরিয়ালের পরে যাতে আপনাকে বিলিং করতে না হয় সেজন্য রিসোর্সগুলি বন্ধ করতে, আপনি আপনার তৈরি রিসোর্সগুলি মুছে ফেলতে পারেন অথবা পুরো প্রকল্পটি মুছে ফেলতে পারেন। গুগল ক্লাউডের নতুন ব্যবহারকারীরা $300 USD ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।
পরিবেশ সেটআপ
- পরবর্তী কমান্ডগুলিতে ব্যবহারের জন্য প্রজেক্ট আইডিতে একটি পরিবেশ পরিবর্তনশীল সেট করুন:
export PROJECT_ID=$(gcloud config get-value project)
export REGION=us-central1
export ZONE=us-central1-a
- এই ল্যাবটি কার্যকর করার জন্য প্রয়োজনীয় API গুলি সক্ষম করুন।
gcloud services enable \
run.googleapis.com \
cloudbuild.googleapis.com \
compute.googleapis.com \
artifactregistry.googleapis.com
- নমুনা অ্যাপ সংগ্রহস্থলটি ক্লোন করুন এবং ডিরেক্টরিতে নেভিগেট করুন।
git clone https://github.com/GoogleCloudPlatform/cymbal-eats.git
cd cymbal-eats/partner-registration-service
- কম্পিউট ইঞ্জিন এবং ক্লাউড রানের জন্য ডিফল্ট অঞ্চল এবং জোন সেট করুন
gcloud config set compute/region ${REGION}
gcloud config set run/region ${REGION}
gcloud config set compute/zone ${ZONE}
৩. পরিষেবাটি স্থাপন করুন
আপনাকে প্রথমে পরিষেবাটি স্থাপন করতে হবে এবং এটি সর্বজনীনভাবে অ্যাক্সেসযোগ্য রাখতে হবে। আপনার ব্রাউজার থেকে অনুরোধ পাঠাতে পারবেন কিনা তা যাচাই করার পরে, আমরা পরিষেবাটি লক করে দেব এবং শুধুমাত্র অভ্যন্তরীণ নেটওয়ার্ক উৎস থেকে অনুরোধগুলিকে অনুমতি দেব।
যখন আপনি নিম্নলিখিত কমান্ডটি চালাবেন, তখন এই নির্দেশাবলী অনুসরণ করুন:
- সোর্স কোড লোকেশন (...): যাচাই করুন যে আপনি পার্টনার-রেজিস্ট্রেশন-সার্ভিস ডিরেক্টরিতে আছেন এবং ডিফল্ট কোড গ্রহণ করতে এন্টার টিপুন।
- পরিষেবার নাম (অংশীদার-নিবন্ধন-পরিষেবা): ডিফল্ট গ্রহণ করতে এন্টার টিপুন।
- [পার্টনার-রেজিস্ট্রেশন-সার্ভিস] (y/N) -এ অননুমোদিত আহ্বানের অনুমতি দেবেন? Y
gcloud run deploy
এই কমান্ডটি সম্পন্ন হলে, এটি আপনার ক্লাউড রান পরিষেবার URL তালিকাভুক্ত করে। আউটপুটটি এই তালিকার মতো দেখাবে:
Service [partner-registration-service] revision [partner-registration-service-00001-haz] has been deployed and is serving 100 percent of traffic. Service URL: https://partner-registration-service-ssssssssss-uc.a.run.app
আপনার ব্রাউজারে পরিষেবা URL খুলুন। আপনি এই আউটপুটটি দেখতে পাবেন:
Partner registration service: RUNNING
শুধুমাত্র অভ্যন্তরীণ অনুরোধগুলিকে অনুমতি দেওয়ার জন্য পরিষেবাটি সেট করুন
এখন, আপনি শুধুমাত্র অভ্যন্তরীণ উৎস থেকে অনুরোধগুলিকে মঞ্জুরি দেওয়ার জন্য ক্লাউড রান পরিষেবার ইনগ্রেস সেটিংস ব্যবহার করবেন। অভ্যন্তরীণ উৎসগুলিতে VPC নেটওয়ার্কগুলিতে থাকা সংস্থানগুলি অন্তর্ভুক্ত থাকে যা ক্লাউড রান পরিষেবার মতো একই প্রকল্পে (অথবা VPC পরিষেবা নিয়ন্ত্রণ পরিধি) থাকে - যা এটিকে আমাদের ব্যবহারের ক্ষেত্রে নিখুঁত করে তোলে।
অতিরিক্তভাবে, অন্যান্য Google ক্লাউড পণ্য থেকে আসা অনুরোধগুলি অভ্যন্তরীণ হিসাবে বিবেচিত হয়, এমনকি যদি সেগুলি VPC-এর অংশ নাও হয়। এই পণ্যগুলির মধ্যে রয়েছে উদাহরণস্বরূপ Pub/Sub এবং Workflows।
এই উৎসগুলি থেকে আসা অনুরোধগুলি Google নেটওয়ার্কের মধ্যেই থাকে, এমনকি যদি তারা run.app URL-এ আপনার পরিষেবা অ্যাক্সেস করে, এবং সর্বজনীন অ্যাক্সেস নিষিদ্ধ।
শুধুমাত্র অভ্যন্তরীণ অনুরোধগুলিকে অনুমতি দেওয়ার জন্য পরিষেবাটি আপডেট করুন:
gcloud run services update partner-registration-service --ingress=internal
যদি আপনি আবার পরিষেবা URL টি খোলেন, তাহলে এটি " Error: Forbidden - Access is forbidden " লেখা হবে।
যেহেতু আপনার ব্রাউজারটি গুগল ক্লাউড প্রজেক্টে অভ্যন্তরীণ কোনও অরিজিন থেকে নয়, বরং একটি বহিরাগত নেটওয়ার্ক অরিজিন থেকে অনুরোধ পাঠায়, তাই আপনি ঠিক এটিই আশা করেন। আপনার পরিষেবা এখন আরও নিরাপদ।
৪. জাম্প সার্ভার হিসেবে একটি কম্পিউট ইঞ্জিন ভার্চুয়াল মেশিন তৈরি করুন
পরবর্তী ধাপ হল একটি অন-প্রিমিসেস সার্ভার থেকে ক্লাউড ভিপিএন গেটওয়ের মাধ্যমে অনুরোধগুলি সিমুলেট করা, জাম্প সার্ভার হিসাবে ব্যবহার করার জন্য ভিপিসিতে একটি কম্পিউট ইঞ্জিন ইনস্ট্যান্স তৈরি করে:
gcloud compute instances create jump-server --scopes=https://www.googleapis.com/auth/cloud-platform
এই কমান্ডের আউটপুট এইরকম কিছু হওয়া উচিত:
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS jump-server us-central1-a n1-standard-1 10.128.0.10 34.170.108.8 RUNNING
কম্পিউট ইঞ্জিন ইনস্ট্যান্স থেকে পরিষেবাটিতে একটি অনুরোধ পাঠান
এখন আপনি ভার্চুয়াল মেশিনে একটি টার্মিনাল খুলবেন এবং VPC নেটওয়ার্কের মেশিন থেকে সরাসরি একটি অনুরোধ পাঠাবেন।
যদি নিম্নলিখিত কমান্ডটি আপনাকে ক্লাউড শেলে SSH সেট আপ করার জন্য অনুরোধ করে, তাহলে নির্দেশাবলী অনুসরণ করুন:
gcloud compute ssh jump-server
এই কমান্ড দিয়ে ক্লাউড রান পরিষেবার URL পান:
gcloud run services describe partner-registration-service --region us-central1
আউটপুটের প্রথম কয়েকটি লাইন এইরকম দেখাবে:
✔ Service partner-registration-service in region us-central1 URL: https://partner-registration-service-ssssssssss-uc.a.run.app Ingress: internal
এখন URL টি কপি করুন এবং curl ব্যবহার করে Compute Engine ইনস্ট্যান্স থেকে একটি অনুরোধ পাঠান। এই অনুরোধটি সফল হওয়া উচিত, কারণ VM ইনস্ট্যান্সটি আপনার প্রকল্পের VPC নেটওয়ার্কে চলে - এটি একটি অভ্যন্তরীণ উৎস।
export SERVICE_URL=https://
curl ${SERVICE_URL}
আউটপুটে বলা উচিত:
Partner registration service: RUNNING
৫. IAM-ভিত্তিক অ্যাক্সেস নিয়ন্ত্রণ সম্পর্কে কী বলা যায়?
এই ল্যাবটি আপনাকে দেখিয়েছে কিভাবে এবং কখন ইনগ্রেস সেটিংস ব্যবহার করতে হবে। যদি আপনি ক্লাউড রানের সাথে অন-প্রিমিস ওয়ার্কলোড সংযুক্ত করেন, তাহলে ইনগ্রেস সেটিংস একটি দুর্দান্ত প্রথম পদক্ষেপ।
IAM-ভিত্তিক অ্যাক্সেস নিয়ন্ত্রণ বাস্তবায়নের জন্য আরও প্রচেষ্টার প্রয়োজন, বিশেষ করে যদি আপনি একটি অন-প্রেমিসেস হোস্ট থেকে কল করেন:
- IAM আপনাকে হোস্টে দীর্ঘস্থায়ী পরিষেবা অ্যাকাউন্টের শংসাপত্র পরিচালনা করতে বাধ্য করে।
- পরিষেবা অ্যাকাউন্টের শংসাপত্র ব্যবহার করে অনুরোধ স্বাক্ষর করার জন্য IAM-এর কোড পরিবর্তন প্রয়োজন।
গুগল অ্যাক্সেস নিয়ন্ত্রণের জন্য বহু-স্তরীয় পদ্ধতির সুপারিশ করে। শুধুমাত্র অভ্যন্তরীণ হোস্টগুলিতে অ্যাক্সেস সীমাবদ্ধ করার জন্য ইনগ্রেস সেটিংস ব্যবহার করা একটি দুর্দান্ত প্রথম পদক্ষেপ, তবে এখানেই থেমে যাবেন না!
৬. অভিনন্দন!
অভিনন্দন, তুমি কোডল্যাব শেষ করেছ!
এরপর কি:
অন্যান্য সিম্বাল ইটস কোডল্যাবগুলি অন্বেষণ করুন:
- Eventarc দিয়ে ক্লাউড ওয়ার্কফ্লো ট্রিগার করা
- ক্লাউড স্টোরেজ থেকে ইভেন্ট প্রসেসিং ট্রিগার করা হচ্ছে
- ক্লাউড রান থেকে প্রাইভেট ক্লাউডএসকিউএল-এর সাথে সংযোগ স্থাপন করা হচ্ছে
- ক্লাউড রান থেকে সম্পূর্ণরূপে পরিচালিত ডাটাবেসের সাথে সংযোগ স্থাপন করা
- আইডেন্টিটি অ্যাওয়্যার প্রক্সি (IAP) সহ সুরক্ষিত সার্ভারলেস অ্যাপ্লিকেশন
- ক্লাউড শিডিউলার দিয়ে ক্লাউড রান জবস ট্রিগার করা
- ক্লাউড রানে নিরাপদে স্থাপন করা হচ্ছে
- GKE অটোপাইলট থেকে প্রাইভেট AlloyDB-তে সংযোগ করা হচ্ছে
পরিষ্কার করা
এই টিউটোরিয়ালে ব্যবহৃত রিসোর্সের জন্য আপনার গুগল ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে, হয় রিসোর্স ধারণকারী প্রজেক্টটি মুছে ফেলুন, অথবা প্রজেক্টটি রেখে পৃথক রিসোর্সগুলি মুছে ফেলুন।
প্রকল্পটি মুছে ফেলা হচ্ছে
বিলিং দূর করার সবচেয়ে সহজ উপায় হল টিউটোরিয়ালের জন্য তৈরি করা প্রকল্পটি মুছে ফেলা।
দরকারী তথ্যসূত্র
ক্লাউড রানে অ্যাক্সেস নিয়ন্ত্রণের দুটি স্তর সম্পর্কে আরও জানতে এখানে অতিরিক্ত রিসোর্স রয়েছে।