نحوه استفاده از پروکسی Identity Aware (IAP) با یک کلیک با Cloud Run

نحوه استفاده از پروکسی Identity Aware (IAP) با یک کلیک با Cloud Run

درباره این codelab

subjectآخرین به‌روزرسانی: ژوئن ۱۲, ۲۰۲۵
account_circleنویسنده: یکی از کارمندان Google

1. مقدمه

نمای کلی

این نرم افزار کد به شما آموزش می دهد که چگونه پروکسی Identity-Aware را از Cloud Run فعال کنید و با مسیریابی به IAP برای احراز هویت، ترافیکی را که برای سرویس Cloud Run محدود می شود، ایمن کنید. با فعال کردن IAP از Cloud Run، می‌توانید با یک کلیک ترافیک را از تمام مسیرهای ورودی، از جمله URLهای پیش‌فرض run.app و متعادل‌کننده‌های بار، هدایت کنید.

در این کد لبه، شما سرویس hello container را اجرا می کنید. فقط کاربرانی که با استفاده از IAP در لیست مجاز قرار گرفته اند به این سرویس دسترسی دارند.

برای سایر محدودیت‌های شناخته شده، لطفاً مستندات IAP در Cloud Run را بررسی کنید.

چیزی که یاد خواهید گرفت

  • نحوه فعال کردن IAP با یک کلیک برای Cloud Run
  • نحوه اعطای دسترسی هویت کاربر به سرویس Cloud Run از طریق IAP

2. قبل از شروع

API ها را فعال کنید

قبل از اینکه بتوانید از این کد لبه استفاده کنید، API های زیر را با اجرا فعال کنید:

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"

تصویر کانتینر hello را با فعال بودن 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 به کاربر اجازه دسترسی می دهید.

5. کنترل دسترسی IAP را پیکربندی کنید

عامل خدمات IAP را ایجاد کنید.

gcloud beta services identity create --service=iap.googleapis.com --project=${PROJECT_ID}

نقش Cloud Run Invoker را به حساب سرویس IAP اختصاص دهید

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)'

URL را در مرورگر خود باز کنید و "در حال اجرا است! تبریک می گویم، شما با موفقیت یک تصویر ظرف را در 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

چند دقیقه صبر کنید تا سیاست IAM منتشر شود. اکنون سعی کنید URL را در مرورگر خود باز کنید و صفحه خطای You don't have access را مشاهده خواهید کرد.

7. تبریک می گویم!

برای تکمیل کد لبه تبریک می گویم!

توصیه می کنیم اسناد Cloud Run IAP را مرور کنید.

آنچه را پوشش داده ایم

  • نحوه فعال کردن IAP با یک کلیک برای Cloud Run
  • نحوه اعطای دسترسی هویت کاربر به سرویس Cloud Run از طریق IAP

8. تمیز کردن

برای جلوگیری از هزینه‌های غیرعمدی، به عنوان مثال، اگر خدمات Cloud Run سهواً بیشتر از تخصیص فراخوانی ماهانه Cloud Run شما در ردیف رایگان فراخوانی می‌شوند، می‌توانید سرویس Cloud Run iap-example را که در مرحله 6 ایجاد کرده‌اید حذف کنید.

برای حذف سرویس Cloud Run، به کنسول Cloud Run Cloud در https://console.cloud.google.com/run بروید و سرویس iap-example حذف کنید.

برای حذف کل پروژه، به مدیریت منابع بروید، پروژه خود را انتخاب کنید و حذف را انتخاب کنید. اگر پروژه را حذف کنید، باید پروژه ها را در Cloud SDK خود تغییر دهید. با اجرای gcloud projects list می توانید لیست تمام پروژه های موجود را مشاهده کنید.