১. ভূমিকা
সংক্ষিপ্ত বিবরণ
এই কোডল্যাবটি আপনাকে দেখাবে কিভাবে ক্লাউড রান থেকে আইডেন্টিটি-অ্যাওয়ার প্রক্সি (IAP) চালু করতে হয় এবং প্রমাণীকরণের জন্য IAP-তে রাউটিং করে ক্লাউড রান পরিষেবার জন্য নির্ধারিত ট্র্যাফিক সুরক্ষিত করতে হয়। ক্লাউড রান থেকে IAP চালু করার মাধ্যমে, আপনি ডিফল্ট run.app URL এবং লোড ব্যালেন্সার সহ সমস্ত ইনগ্রেস পাথ থেকে এক ক্লিকেই ট্র্যাফিক রাউট করতে পারবেন।
এই কোডল্যাবে, আপনি হ্যালো কন্টেইনার সার্ভিসটি ডেপ্লয় করবেন। শুধুমাত্র IAP ব্যবহার করে যাদেরকে allowlist করা হয়েছে, তারাই এই সার্ভিসটি অ্যাক্সেস করতে পারবে।
অন্যান্য জ্ঞাত সীমাবদ্ধতার জন্য, অনুগ্রহ করে ক্লাউড রান-এর IAP ডকুমেন্টেশন দেখুন।
আপনি যা শিখবেন
- ক্লাউড রানের জন্য ওয়ান-ক্লিক আইএপি কীভাবে সক্রিয় করবেন
- IAP-এর মাধ্যমে কীভাবে কোনো ব্যবহারকারীর পরিচয়কে ক্লাউড রান পরিষেবাতে অ্যাক্সেস দেওয়া যায়
২. শুরু করার আগে
এপিআই সক্ষম করুন
এই কোডল্যাবটি ব্যবহার শুরু করার আগে, নিম্নলিখিত API-গুলি সক্রিয় করতে রান করুন:
gcloud services enable \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
iap.googleapis.com \
run.googleapis.com \
cloudresourcemanager.googleapis.com
৩. এনভায়রনমেন্ট ভেরিয়েবল তৈরি করুন
এই কোডল্যাব জুড়ে ব্যবহৃত হবে এমন এনভায়রনমেন্ট ভেরিয়েবলগুলো সেট করুন।
export PROJECT_ID=<YOUR_PROJECT_ID>
export REGION=<YOUR_REGION>
export SERVICE_NAME=iap-example
export SERVICE_ACCOUNT_NAME=iap-example-sa
export PROJECT_NUMBER=$(gcloud projects describe "${PROJECT_ID}" --format="value(projectNumber)")
৪. IAP সক্রিয় করে একটি পরিষেবা স্থাপন করুন
এই কমান্ডটি চালিয়ে সার্ভিস অ্যাকাউন্টটি (যা ক্লাউড রান সার্ভিস আইডেন্টিটি হিসেবে ব্যবহৃত হবে) তৈরি করুন:
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME \
--display-name="IAP codelab CR identity"
IAP সক্রিয় করে হ্যালো কন্টেইনার ইমেজটি ডিপ্লয় করুন।
gcloud beta run deploy ${SERVICE_NAME} \
--image=us-docker.pkg.dev/cloudrun/container/hello \
--region=${REGION} \
--service-account $SERVICE_ACCOUNT_NAME@${PROJECT_ID}.iam.gserviceaccount.com \
--no-allow-unauthenticated \
--iap
দ্রষ্টব্য: আপনি এখন অ্যাপ্লিকেশনটি অ্যাক্সেস করার চেষ্টা করলে, You don't have access ত্রুটি পৃষ্ঠাটি দেখতে পাবেন। পরবর্তী ধাপে, আপনি IAP-এর মাধ্যমে একজন ব্যবহারকারীকে অ্যাক্সেস প্রদান করবেন।
৫. আইএপি অ্যাক্সেস কন্ট্রোল কনফিগার করুন
IAP সার্ভিস এজেন্ট তৈরি করুন।
gcloud beta services identity create --service=iap.googleapis.com --project=${PROJECT_ID}
IAP পরিষেবা অ্যাকাউন্টে Cloud Run Invoker ভূমিকাটি বরাদ্দ করুন।
gcloud projects add-iam-policy-binding ${PROJECT_ID} \
--member="serviceAccount:service-${PROJECT_NUMBER}@gcp-sa-iap.iam.gserviceaccount.com" \
--role="roles/run.invoker"
IAP-এর মাধ্যমে নির্দিষ্ট ব্যবহারকারী বা গ্রুপকে অনুমতি দিয়ে একজন ব্যবহারকারীকে অ্যাক্সেস প্রদান করুন।
EMAIL_ADDRESS=<YOUR_EMAIL>
gcloud beta iap web add-iam-policy-binding \
--resource-type=cloud-run \
--service=${SERVICE_NAME} \
--region=${REGION} \
--member=user:${EMAIL_ADDRESS} \
--role=roles/iap.httpsResourceAccessor \
--condition=None
দ্রষ্টব্য: চাইলে মেম্বার প্যারামিটারে group:your-group@example.com-ও ব্যবহার করতে পারেন।
৬. অ্যাপ্লিকেশনটি পরীক্ষা করুন
অ্যাপে প্রবেশাধিকার যাচাই করুন
উদাহরণ ক্লাউড রান পরিষেবাটির URL-টি নিন।
gcloud run services describe ${SERVICE_NAME} --region ${REGION} --format 'value(status.url)'
আপনার ব্রাউজারে URL-টি খুলুন এবং আপনি দেখতে পাবেন "এটি চলছে! অভিনন্দন, আপনি সফলভাবে ক্লাউড রানে একটি কন্টেইনার ইমেজ স্থাপন করেছেন"।
অ্যাপে অ্যাক্সেস অপসারণ যাচাই করুন।
নিম্নলিখিত কমান্ডটি চালিয়ে আপনি অ্যাপটিতে আপনার অ্যাক্সেস বাতিল করতে পারেন।
gcloud beta iap web remove-iam-policy-binding \
--resource-type=cloud-run \
--service=${SERVICE_NAME} \
--region=${REGION} \
--member=user:${EMAIL_ADDRESS} \
--role=roles/iap.httpsResourceAccessor
IAM পলিসিটি কার্যকর হওয়ার জন্য কয়েক মিনিট অপেক্ষা করুন। এবার আপনার ব্রাউজারে URL-টি খোলার চেষ্টা করুন এবং আপনি You don't have access ত্রুটির পৃষ্ঠাটি দেখতে পাবেন।
৭. অভিনন্দন!
কোডল্যাবটি সম্পন্ন করার জন্য অভিনন্দন!
আমরা ক্লাউড রান আইএপি ডকুমেন্টেশন পর্যালোচনা করার পরামর্শ দিই।
আমরা যা আলোচনা করেছি
- ক্লাউড রানের জন্য কীভাবে ১-ক্লিক আইএপি চালু করবেন
- IAP-এর মাধ্যমে কীভাবে কোনো ব্যবহারকারীর পরিচয়কে ক্লাউড রান পরিষেবাতে অ্যাক্সেস দেওয়া যায়
৮. পরিষ্কার করুন
অনিচ্ছাকৃত চার্জ এড়ানোর জন্য, উদাহরণস্বরূপ, যদি ফ্রি টিয়ারে আপনার মাসিক ক্লাউড রান ইনভোকেশন বরাদ্দের চেয়ে ক্লাউড রান পরিষেবাগুলো অনিচ্ছাকৃতভাবে বেশিবার চালু করা হয়, তাহলে আপনি ধাপ ৬-এ তৈরি করা ক্লাউড রান পরিষেবা iap-example মুছে ফেলতে পারেন।
Cloud Run পরিষেবাটি মুছে ফেলার জন্য, https://console.cloud.google.com/run-এ অবস্থিত Cloud Run ক্লাউড কনসোলে যান এবং iap-example পরিষেবাটি ডিলিট করে দিন।
সম্পূর্ণ প্রজেক্টটি ডিলিট করতে, 'Manage Resources'- এ যান, আপনার প্রজেক্টটি সিলেক্ট করুন এবং 'Delete' বেছে নিন। প্রজেক্টটি ডিলিট করলে, আপনাকে আপনার Cloud SDK-তে প্রজেক্ট পরিবর্তন করতে হবে। আপনি gcloud projects list চালিয়ে সমস্ত উপলব্ধ প্রজেক্টের তালিকা দেখতে পারেন।