1. परिचय
खास जानकारी
इस कोडलैब में, Cloud Run से Identity-Aware Proxy को चालू करने का तरीका बताया गया है. साथ ही, Cloud Run सेवा के लिए भेजे गए ट्रैफ़िक को सुरक्षित करने का तरीका बताया गया है. इसके लिए, पुष्टि करने के लिए ट्रैफ़िक को IAP पर रूट किया जाता है. Cloud Run से IAP चालू करके, सभी इनग्रेस पाथ से ट्रैफ़िक को एक क्लिक में रूट किया जा सकता है. इनमें डिफ़ॉल्ट run.app यूआरएल और लोड बैलेंसर शामिल हैं.
इस कोडलैब में, आपको hello container सेवा को डिप्लॉय करना होगा. जिन उपयोगकर्ताओं को IAP का इस्तेमाल करके अनुमति दी गई है सिर्फ़ उनके पास इस सेवा का ऐक्सेस है.
अन्य ज्ञात सीमाओं के बारे में जानने के लिए, कृपया Cloud Run पर IAP का दस्तावेज़ देखें.
आपको क्या सीखने को मिलेगा
- Cloud Run के लिए, एक क्लिक में IAP चालू करने का तरीका
- IAP के ज़रिए, किसी उपयोगकर्ता को Cloud Run सेवा के लिए पहचान का ऐक्सेस कैसे दें
2. शुरू करने से पहले
एपीआई चालू करें
इस कोडलैब का इस्तेमाल शुरू करने से पहले, इन एपीआई को चालू करें. इसके लिए, यह कमांड चलाएं:
gcloud services enable \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
iap.googleapis.com \
run.googleapis.com \
cloudresourcemanager.googleapis.com
3. एनवायरमेंट वैरिएबल बनाना
ऐसे एनवायरमेंट वैरिएबल सेट करें जिनका इस्तेमाल इस कोडलैब में किया जाएगा
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)")
4. IAP की सुविधा चालू करके कोई सेवा डिप्लॉय करना
यह कमांड चलाकर, सेवा खाता बनाएं. इसका इस्तेमाल Cloud Run सेवा की पहचान के तौर पर किया जाता है:
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME \
--display-name="IAP codelab CR identity"
IAP की सुविधा चालू करके, hello कंटेनर इमेज को डिप्लॉय करें.
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 गड़बड़ी वाला पेज दिखेगा. अगले चरण में, किसी उपयोगकर्ता को आईएपी के ज़रिए ऐक्सेस दिया जाएगा.
5. 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 का भी इस्तेमाल किया जा सकता है.
6. ऐप्लिकेशन को टेस्ट करना
ऐप्लिकेशन के ऐक्सेस की पुष्टि करना
Cloud Run सेवा के उदाहरण के लिए यूआरएल पाएं.
gcloud run services describe ${SERVICE_NAME} --region ${REGION} --format 'value(status.url)'
यूआरएल को अपने ब्राउज़र में खोलें. आपको "It's Running! बधाई हो, आपने Cloud Run पर कंटेनर इमेज को डिप्लॉय कर दिया है"
ऐप्लिकेशन का ऐक्सेस हटाने की पुष्टि करना
इस निर्देश को चलाकर, ऐप्लिकेशन से अपना ऐक्सेस हटाया जा सकता है.
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
आईएम नीति लागू होने में कुछ मिनट लग सकते हैं. अब अपने ब्राउज़र में यूआरएल खोलें. आपको You don't have access गड़बड़ी वाला पेज दिखेगा.
7. बधाई हो!
कोडलैब पूरा करने के लिए बधाई!
हमारा सुझाव है कि आप Cloud Run IAP से जुड़ा दस्तावेज़ पढ़ें.
हमने क्या-क्या कवर किया है
- Cloud Run के लिए, एक क्लिक में होने वाली IAP की सुविधा चालू करने का तरीका
- IAP के ज़रिए, किसी उपयोगकर्ता को Cloud Run सेवा के लिए पहचान का ऐक्सेस कैसे दें
8. व्यवस्थित करें
अनचाहे शुल्क से बचने के लिए, Cloud Run सेवा को मिटाया जा सकता है. उदाहरण के लिए, अगर Cloud Run सेवाओं को मुफ़्त टियर में Cloud Run सेवाओं के लिए तय की गई सीमा से ज़्यादा बार इस्तेमाल किया जाता है, तो चरण 6 में बनाई गई Cloud Run सेवा iap-example को मिटाया जा सकता है.
Cloud Run सेवा को मिटाने के लिए, Cloud Run Cloud Console पर जाएं. इसके लिए, https://console.cloud.google.com/run पर जाएं और iap-example सेवा को मिटाएं.
पूरा प्रोजेक्ट मिटाने के लिए, संसाधन मैनेज करें पर जाएं. इसके बाद, अपना प्रोजेक्ट चुनें और मिटाएं को चुनें. प्रोजेक्ट मिटाने पर, आपको Cloud SDK में प्रोजेक्ट बदलने होंगे. gcloud projects list कमांड चलाकर, सभी उपलब्ध प्रोजेक्ट की सूची देखी जा सकती है.