كيفية استخدام Identity Aware Proxy (IAP) بنقرة واحدة مع Cloud Run

كيفية استخدام Identity Aware Proxy (IAP) بنقرة واحدة مع Cloud Run

لمحة عن هذا الدرس التطبيقي حول الترميز

subjectتاريخ التعديل الأخير: يونيو 12, 2025
account_circleتأليف موظف Google

1. مقدمة

نظرة عامة

يرشدك هذا الدرس التطبيقي حول الترميز إلى كيفية تفعيل Identity-Aware Proxy من Cloud Run وتأمين الزيارات المرسَلة إلى خدمة Cloud Run من خلال توجيهها إلى IAP للمصادقة. من خلال تفعيل IAP من Cloud Run، يمكنك توجيه الزيارات بنقرة واحدة من جميع مسارات الدخول، بما في ذلك عناوين URL وموزّعات الأحمال التلقائية في run.app.

في هذا الدليل التعليمي حول الرموز البرمجية، ستنشر خدمة حاويات hello. لا يمكن الوصول إلى الخدمة إلا للمستخدمين الذين تم إدراجهم في القائمة المسموح بها باستخدام IAP.

للاطّلاع على القيود الأخرى المعروفة، يُرجى الاطّلاع على مستندات ميزة "الشراء داخل التطبيق" على Cloud Run.

المُعطيات

  • كيفية تفعيل ميزة "الدفع داخل التطبيق" بنقرة واحدة في Cloud Run
  • كيفية منح هوية مستخدم إذن الوصول إلى خدمة Cloud Run من خلال IAP

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"

يمكنك نشر صورة حاوية 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. في الخطوة التالية، ستمنح المستخدم إذن الوصول من خلال "الدفع داخل التطبيق".

5. ضبط ميزة &quot;التحكّم في الوصول إلى التطبيق&quot;

أنشئ وكيل خدمة IAP.

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

إسناد دور "مُشغِّل Cloud Run" إلى حساب خدمة 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 في مَعلمة member إذا كنت تفضّل ذلك.

6. اختبار التطبيق

التحقّق من إمكانية الوصول إلى التطبيق

احصل على عنوان URL لمثال خدمة 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

انتظِر بضع دقائق حتى يتم نشر سياسة "إدارة الهوية وإمكانية الوصول". الآن، حاوِل فتح عنوان URL في المتصفّح وستظهر لك صفحة الخطأ You don't have access.

7. تهانينا!

تهانينا على إكمال ورشة رموز البرامج.

ننصحك بمراجعة مستندات Cloud Run IAP.

المواضيع التي تناولناها

  • كيفية تفعيل ميزة "الدفع بنقرة واحدة" في تطبيقك على Cloud Run
  • كيفية منح هوية مستخدم إذن الوصول إلى خدمة Cloud Run من خلال IAP

8. تَنظيم

لتجنُّب تحصيل رسوم غير مقصودة، على سبيل المثال، إذا تمّ استدعاء خدمات Cloud Run عن طريق الخطأ لعدد مرات يتجاوز المساحة المخصّصة لك شهريًا لاستدعاء Cloud Run في الفئة المجانية، يمكنك حذف خدمة Cloud Run iap-example التي أنشأتها في الخطوة 6.

لحذف خدمة Cloud Run، انتقِل إلى Cloud Run Cloud Console على الرابط https://console.cloud.google.com/run واحذِف خدمة iap-example.

لحذف المشروع بالكامل، انتقِل إلى إدارة الموارد، واختَر مشروعك، ثم اختَر "حذف". في حال حذف المشروع، عليك تغيير المشاريع في حزمة Cloud SDK. يمكنك عرض قائمة بجميع المشاريع المتاحة من خلال تشغيل gcloud projects list.