1. ওভারভিউ
এই ল্যাবটি আপনাকে দেখায় কিভাবে একটি ক্লাউড রান পরিষেবাতে অ্যাক্সেস সীমাবদ্ধ করতে হয় এবং শুধুমাত্র প্রাঙ্গনে বা আপনার প্রকল্পের ভিপিসিতে চলমান কাজের চাপ থেকে অনুরোধের অনুমতি দেয়৷ অ্যাক্সেস নিয়ন্ত্রণের দুটি স্তর রয়েছে যা আপনি ব্যবহার করতে পারেন: প্রবেশ সেটিংস এবং আইডেন্টিটি অ্যান্ড অ্যাক্সেস ম্যানেজমেন্ট (IAM) নীতিগুলি৷
প্রবেশ সেটিংস
ইনগ্রেস সেটিংস আপনাকে তাদের নেটওয়ার্ক উত্সের (অভ্যন্তরীণ বা বাহ্যিক) উপর ভিত্তি করে অনুরোধগুলি ফিল্টার করতে দেয়। ডিফল্টরূপে, পাবলিক ইন্টারনেট সহ সমস্ত অনুরোধ পাস করার অনুমতি দেওয়া হয়।
আইএএম নীতি
IAM নীতিগুলি আপনাকে প্রেরকের পরিচয়ের উপর ভিত্তি করে অনুরোধগুলি ফিল্টার করতে দেয় এবং সাধারণত পরিষেবা থেকে পরিষেবার অনুরোধগুলিকে প্রমাণীকরণ করতে ব্যবহৃত হয়৷
এই ল্যাবে, আপনি কীভাবে এবং কখন প্রবেশ সেটিংস ব্যবহার করবেন তা শিখবেন।
অন-প্রিমিসেস হোস্ট VPC এর মাধ্যমে সংযোগ করে
এই ল্যাবে, আমরা একটি অন-প্রিমিসেস কাজের চাপ অনুকরণ করব। একটি অন-প্রিমিসেস হোস্টকে ক্লাউড রানের সাথে সংযুক্ত করতে, আপনি অন-প্রিমিসেস হোস্টের জন্য ব্যক্তিগত Google অ্যাক্সেস কনফিগার করবেন। এর মধ্যে ভিপিসি নেটওয়ার্কে একটি ক্লাউড ভিপিএন গেটওয়ে সেট আপ করা অন্তর্ভুক্ত, যেমনটি নীচে দেখানো হয়েছে৷
ভিপিসিতে একটি জাম্প সার্ভার ব্যবহার করে একটি অন-প্রিমিস ওয়ার্কলোড অনুকরণ করা
এই ল্যাবে, আপনি ভিপিসিতে একটি কম্পিউট ইঞ্জিন ভার্চুয়াল মেশিন থেকে অনুরোধ পাঠিয়ে অন-প্রিমিসেস হোস্ট থেকে অনুরোধ পাঠানোর অনুকরণ করবেন, যেমনটি এখানে দেখানো হয়েছে।
আপনি একটি জাম্প সার্ভার হিসাবে যে কম্পিউট ইঞ্জিন ভার্চুয়াল মেশিনটি ব্যবহার করবেন তার ক্লাউড ভিপিএন গেটওয়ের মতো একই নেটওয়ার্ক উত্স রয়েছে, যে কারণে আপনি একটি অন-প্রিমিসেস ওয়ার্কলোড থেকে অনুরোধ পাঠানোর অনুকরণ করতে এটি ব্যবহার করতে পারবেন৷
2. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
- Google ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।
- প্রকল্পের নাম এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রদর্শনের নাম। এটি একটি অক্ষর স্ট্রিং যা Google API দ্বারা ব্যবহৃত হয় না। আপনি যে কোনো সময় এটি আপডেট করতে পারেন.
- প্রোজেক্ট আইডি সমস্ত Google ক্লাউড প্রোজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (সেট করার পরে পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটা কি যত্ন না. বেশিরভাগ কোডল্যাবে, আপনাকে প্রজেক্ট আইডি উল্লেখ করতে হবে (এটি সাধারণত
PROJECT_ID
হিসাবে চিহ্নিত করা হয়)। আপনি যদি জেনারেট করা আইডি পছন্দ না করেন, তাহলে আপনি অন্য এলোমেলো আইডি তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের চেষ্টা করে দেখতে পারেন এবং এটি উপলব্ধ কিনা। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রকল্পের সময়কালের জন্য থাকবে। - আপনার তথ্যের জন্য, একটি তৃতীয় মান রয়েছে, একটি প্রকল্প নম্বর যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
- এরপরে, ক্লাউড রিসোর্স/এপিআই ব্যবহার করতে আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ করা উচিত নয়, যদি কিছু থাকে। রিসোর্স বন্ধ করতে যাতে এই টিউটোরিয়ালের বাইরে আপনার বিলিং খরচ না হয়, আপনি আপনার তৈরি করা রিসোর্স মুছে ফেলতে পারেন বা পুরো প্রোজেক্ট মুছে ফেলতে পারেন। Google ক্লাউডের নতুন ব্যবহারকারীরা $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}
3. পরিষেবাটি স্থাপন করুন
আপনি প্রথমে পরিষেবাটি স্থাপন করবেন এবং এটি সর্বজনীনভাবে অ্যাক্সেসযোগ্য রেখে দেবেন৷ আপনি যাচাই করার পরে যে আপনি আপনার ব্রাউজার থেকে অনুরোধ পাঠাতে পারেন, আমরা পরিষেবাটি লক করে দেব এবং শুধুমাত্র অভ্যন্তরীণ নেটওয়ার্ক উত্স থেকে অনুরোধ করার অনুমতি দেব৷
আপনি যখন নিম্নলিখিত কমান্ডটি চালান, এই নির্দেশাবলী অনুসরণ করুন:
- উত্স কোড অবস্থান (...): আপনি অংশীদার-নিবন্ধন-পরিষেবা ডিরেক্টরিতে আছেন তা যাচাই করুন এবং ডিফল্ট গ্রহণ করতে এন্টার টিপুন
- পরিষেবার নাম (অংশীদার-নিবন্ধন-পরিষেবা): ডিফল্ট স্বীকার করতে এন্টার টিপুন
- [অংশীদার-নিবন্ধন-পরিষেবার] (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
শুধুমাত্র অভ্যন্তরীণ অনুরোধের অনুমতি দিতে পরিষেবা সেট করুন
এখন, আপনি শুধুমাত্র অভ্যন্তরীণ উত্স থেকে অনুরোধের অনুমতি দিতে ক্লাউড রান পরিষেবার প্রবেশ সেটিংস ব্যবহার করবেন৷ অভ্যন্তরীণ উত্সগুলি ভিপিসি নেটওয়ার্কগুলির সংস্থানগুলিকে অন্তর্ভুক্ত করে যা ক্লাউড রান পরিষেবার মতো একই প্রকল্পে (বা ভিপিসি পরিষেবা নিয়ন্ত্রণের পরিধি) - যা এটিকে আমাদের ব্যবহারের ক্ষেত্রে নিখুঁত করে তোলে৷
উপরন্তু, অন্যান্য Google ক্লাউড পণ্যগুলির অনুরোধগুলিকে অভ্যন্তরীণ হিসাবে বিবেচনা করা হয়, এমনকি যদি সেগুলি VPC-এর অংশ নাও হয়৷ এই পণ্যগুলির মধ্যে রয়েছে উদাহরণস্বরূপ পাব/সাব এবং ওয়ার্কফ্লো।
এই উত্সগুলি থেকে অনুরোধগুলি Google নেটওয়ার্কের মধ্যেই থাকে, এমনকি যদি তারা run.app URL-এ আপনার পরিষেবা অ্যাক্সেস করে এবং সর্বজনীন অ্যাক্সেস নিষিদ্ধ।
শুধুমাত্র অভ্যন্তরীণ অনুরোধের অনুমতি দিতে পরিষেবাটি আপডেট করুন:
gcloud run services update partner-registration-service --ingress=internal
আপনি যদি পরিষেবার URL আবার খোলেন, তাহলে এটি বলবে " ত্রুটি: নিষিদ্ধ - অ্যাক্সেস নিষিদ্ধ "
যেহেতু আপনার ব্রাউজার একটি বহিরাগত নেটওয়ার্ক উত্স থেকে অনুরোধ পাঠায়, এবং Google ক্লাউড প্রকল্পের অভ্যন্তরীণ উত্স থেকে নয়, তাই আপনি যা আশা করেন ঠিক তাই হবে৷ আপনার সেবা এখন আরো নিরাপদ.
4. একটি জাম্প সার্ভার হিসাবে একটি কম্পিউট ইঞ্জিন ভার্চুয়াল মেশিন তৈরি করুন
পরবর্তী ধাপ হল একটি ক্লাউড ভিপিএন গেটওয়ের মাধ্যমে একটি অন-প্রিমিসেস সার্ভার থেকে অনুরোধ অনুকরণ করা, একটি জাম্প সার্ভার হিসাবে ব্যবহার করার জন্য ভিপিসিতে একটি কম্পিউট ইঞ্জিন উদাহরণ তৈরি করে:
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
কম্পিউট ইঞ্জিন ইন্সট্যান্স থেকে পরিষেবাটিতে একটি অনুরোধ পাঠান
আপনি এখন ভার্চুয়াল মেশিনে একটি টার্মিনাল খুলবেন এবং ভিপিসি নেটওয়ার্কে মেশিন থেকে সরাসরি একটি অনুরোধ পাঠাবেন।
যদি নিম্নলিখিত কমান্ড আপনাকে ক্লাউড শেলে 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 টি অনুলিপি করুন এবং কার্ল ব্যবহার করে Compute Engine ইন্সট্যান্স থেকে একটি অনুরোধ পাঠান। এই অনুরোধটি সফল হওয়া উচিত, কারণ VM উদাহরণটি আপনার প্রকল্পের VPC নেটওয়ার্কে চলে - এটি একটি অভ্যন্তরীণ উত্স।
export SERVICE_URL=https://
curl ${SERVICE_URL}
আউটপুট বলতে হবে:
Partner registration service: RUNNING
5. আইএএম-ভিত্তিক অ্যাক্সেস নিয়ন্ত্রণ সম্পর্কে কী?
কিভাবে এবং কখন প্রবেশ সেটিংস ব্যবহার করতে হয় এই ল্যাবটি আপনাকে দেখিয়েছে। আপনি যদি ক্লাউড রানের সাথে একটি অন-প্রিমিস ওয়ার্কলোড সংযুক্ত করেন তবে প্রবেশ সেটিংস একটি দুর্দান্ত প্রথম পদক্ষেপ।
IAM-ভিত্তিক অ্যাক্সেস কন্ট্রোল বাস্তবায়নের জন্য আরও প্রচেষ্টার প্রয়োজন, বিশেষ করে যদি আপনি একটি অন-প্রিমিসেস হোস্ট থেকে কল করছেন:
- IAM আপনাকে হোস্টে দীর্ঘস্থায়ী পরিষেবা অ্যাকাউন্টের শংসাপত্রগুলি পরিচালনা করতে হবে
- পরিষেবা অ্যাকাউন্টের শংসাপত্রগুলি ব্যবহার করে অনুরোধে স্বাক্ষর করার জন্য IAM-এর কোড পরিবর্তনের প্রয়োজন।
Google অ্যাক্সেস নিয়ন্ত্রণের জন্য একটি বহু-স্তরযুক্ত পদ্ধতির সুপারিশ করে। শুধুমাত্র অভ্যন্তরীণ হোস্টগুলিতে অ্যাক্সেস সীমাবদ্ধ করতে প্রবেশ সেটিংস ব্যবহার করা একটি দুর্দান্ত প্রথম পদক্ষেপ, তবে সেখানে থামবেন না!
6. অভিনন্দন!
অভিনন্দন, আপনি কোডল্যাব শেষ করেছেন!
এরপর কি:
অন্যান্য Cymbal Eats কোডল্যাবগুলি অন্বেষণ করুন:
- Eventarc এর সাথে ক্লাউড ওয়ার্কফ্লো ট্রিগার করা
- ক্লাউড স্টোরেজ থেকে ইভেন্ট প্রসেসিং ট্রিগার করছে
- ক্লাউড রান থেকে ব্যক্তিগত ক্লাউডএসকিউএল-এর সাথে সংযোগ করা হচ্ছে
- ক্লাউড রান থেকে সম্পূর্ণরূপে পরিচালিত ডেটাবেসে সংযোগ করা হচ্ছে
- আইডেন্টিটি অ্যাওয়ার প্রক্সি (IAP) সহ সুরক্ষিত সার্ভারহীন অ্যাপ্লিকেশন
- ক্লাউড শিডিউলারের সাথে ক্লাউড রান জব ট্রিগার করা
- ক্লাউড রানে নিরাপদে স্থাপন করা হচ্ছে
- GKE অটোপাইলট থেকে ব্যক্তিগত AlloyDB-তে সংযোগ করা হচ্ছে
পরিষ্কার করুন
এই টিউটোরিয়ালে ব্যবহৃত সংস্থানগুলির জন্য আপনার Google ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে, হয় সংস্থানগুলি রয়েছে এমন প্রকল্পটি মুছুন, অথবা প্রকল্পটি রাখুন এবং পৃথক সংস্থানগুলি মুছুন৷
প্রকল্প মুছে ফেলা হচ্ছে
বিলিং দূর করার সবচেয়ে সহজ উপায় হল আপনি টিউটোরিয়ালের জন্য তৈরি করা প্রকল্পটি মুছে ফেলা।
দরকারী রেফারেন্স
এখানে অতিরিক্ত সংস্থান রয়েছে যা আপনাকে ক্লাউড রানে অ্যাক্সেস নিয়ন্ত্রণের দুটি স্তর সম্পর্কে আরও জানতে সহায়তা করে৷