מומלץ: להפעיל את IAP ישירות בשירות Cloud Run, מה שמאפשר:
מגן על נקודת הקצה של
run.appישירות, כך שלא צריך להקצות משאבים של מאזן עומסים.ההגדרה פשוטה יותר ואין עלויות נוספות של מאזן עומסים.
אם תבחרו להציב מאזן עומסים לפני Cloud Run, גם נקודת הקצה של מאזן העומסים תהיה מוגנת.
הפעלת IAP בשירות לקצה העורפי שפונה לשירותי Cloud Run: אם אתם מריצים את Cloud Run בכמה אזורים שמחוברים לאותו שירות גלובלי לקצה העורפי של מאזן העומסים, ואתם צריכים ניהול הרשאות גישה מרכזי, פעלו לפי ההוראות שבדף הזה. אחרת, מומלץ להפעיל את IAP ישירות בשירות Cloud Run.
מגבלות ידועות
אי אפשר להשתמש ב-IAP גם בשירותי Cloud Run וגם במאזן העומסים. אם מפעילים את IAP במאזן עומסים, IAP מאבטח את התנועה רק דרך מאזן העומסים ולא את התנועה שעשויה להגיע לשירות Cloud Run דרך כתובת ה-URL שלו ב-
run.app. כדי לאפשר רק תנועה שאושרה על ידי IAP, קראו את המאמר הגדרת Cloud Run להגבלת הגישה.IAP מאמת את Cloud Run באמצעות הכותרת
X-Serverless-Authorization. Cloud Run מעביר את הכותרת הזו לשירות שלכם אחרי הסרת החתימה. אם השירות שלכם מיועד להעביר את הבקשה לשירות אחר ב-Cloud Run שדורש אימות IAM, צריך לעדכן את השירות כדי להסיר את הכותרת הזו קודם.אי אפשר להשתמש ב-IAP עם Cloud CDN.
IAP מאריך את זמן האחזור. הפעילו את IAP רק בשירותים שלא רגישים לזמן אחזור.
לפני שמתחילים
מומלץ להפעיל את IAP ישירות ב-Cloud Run.אם אתם בוחרים להפעיל את IAP למשאבי Cloud Run במאזן העומסים ולא ישירות ב-Cloud Run, אתם צריכים:
- פרויקט במסוף Google Cloud שהחיוב מופעל בו.
- קבוצה של שירות אחד או יותר ב-Cloud Run, שמוגשים על ידי מאזן עומסים.
- שם דומיין שרשום בכתובת של מאזן העומסים.
קוד אפליקציה כדי לוודא שלכל הבקשות יש זהות.
הפעלת IAP משירות לקצה העורפי או ממאזן עומסים
הערה: מומלץ להפעיל את IAP ישירות ב-Cloud Run, כמו שמתואר במאמרי העזרה של Cloud Run.כדי להפעיל את IAP בשירות לקצה העורפי של מאזן עומסים, פועלים לפי ההוראות הבאות.
המסוף
אם לא הגדרתם את מסך ההסכמה ל-OAuth בפרויקט, תתבקשו לעשות זאת. כדי להגדיר את מסך ההסכמה ל-OAuth, קראו את המאמר הגדרת מסך ההסכמה ל-OAuth.
הגדרת גישה ל-IAP
- נכנסים לדף Identity-Aware Proxy.
- בוחרים את הפרויקט שרוצים לאבטח באמצעות IAP.
- בקטע APPLICATIONS, מסמנים את התיבה לצד שירות הקצה העורפי של מאזן העומסים שאליו רוצים להוסיף חברים.
- בחלונית שבצד שמאל, לוחצים על Add Principal.
בתיבת הדו-שיח Add Principal, מזינים את החשבונות של הקבוצות או המשתמשים שצריכים לקבל את התפקיד IAP-secured Web App User בפרויקט. סוגי החשבונות הבאים יכולים להיות חברים:
- חשבון Google: user@gmail.com – יכול להיות גם חשבון Google Workspace, כמו user@google.com או דומיין אחר של Workspace.
- קבוצת Google: admins@googlegroups.com
- חשבון שירות: server@example.
- דומיין ב-Google Workspace: example.com
ברשימה הנפתחת Roles, בוחרים באפשרות Cloud IAP > IAP-secured Web App User.
לוחצים על Save.
איך מאפשרים גישה למשתמשים מחוץ לארגון
כברירת מחדל, כשמפעילים את IAP, הוא משתמש בלקוח OAuth בניהול Google כדי לאמת משתמשים. כתוצאה מכך, רק משתמשים בארגון יכולים לגשת לאפליקציה שמופעל בה IAP.
כדי לאפשר גישה למשתמשים מחוץ לארגון או למשתמשים ללא ארגון, צריך לעדכן את הגדרות לקוח ה-OAuth כך שישתמש בלקוח OAuth בהתאמה אישית, כמו שמתואר במאמר הפעלת IAP לאפליקציות חיצוניות.
הפעלת IAP
- בדף IAP, בקטע APPLICATIONS, מוצאים את שירות הקצה העורפי של מאזן העומסים שרוצים להגביל את הגישה אליו. כדי להפעיל את IAP למשאב, לוחצים על המתג IAP.
כדי להפעיל את IAP:
- לפחות אחד מהפרוטוקולים בהגדרת ממשק המשתמש של מאזן העומסים חייב להיות HTTPS. מידע נוסף על הגדרת מאזן עומסים
- אתם צריכים את ההרשאות
compute.backendServices.update,clientauthconfig.clients.createו-clientauthconfig.clients.getWithSecret. ההרשאות האלה ניתנות על ידי תפקידים, כמו התפקיד "עריכת פרויקט". מידע נוסף זמין במאמר ניהול הגישה למשאבים שמאובטחים באמצעות IAP.
- בחלון Turn on IAP שמופיע, לוחצים על Turn On כדי לאשר שרוצים לאבטח את המשאב באמצעות IAP. אחרי שמפעילים את IAP, צריך להזין פרטי כניסה לכל החיבורים למאזן העומסים. רק חשבונות עם התפקיד משתמש באפליקציית אינטרנט מאובטחת באמצעות IAP בפרויקט יקבלו גישה.
פועלים לפי ההוראות במאמר בקרת גישה באמצעות IAM כדי לאשר ל-IAP לשלוח תנועה לשירות Cloud Run לקצה העורפי.
- חשבון משתמש:
service-[PROJECT-NUMBER]@gcp-sa-iap. - תפקיד: Cloud Run Invoker
חשבון השירות של IAP נוצר כשמפעילים את IAP. אם חשבון השירות של IAP לא מופיע ברשימת חשבונות המשתמשים, אפשר ליצור אותו באמצעות הפקודה הבאה של gcloud:
gcloud services identity create \ --service=iap.googleapis.com \ --project=PROJECT_ID- חשבון משתמש:
gcloud
- אם עדיין לא עשיתם את זה בפרויקט, יוצרים את סוכן השירות של IAP באמצעות הפקודה הבאה. אם כבר יצרתם את סוכן השירות, הפעלת הפקודה לא תשכפל אותו.
gcloud services identity create --service=iap.googleapis.com --project=[PROJECT_ID]
- כדי לתת לחשבון השירות שיצרתם בשלב הקודם הרשאה להפעיל את הפונקציה, מריצים את הפקודה הבאה:
gcloud run services add-iam-policy-binding [SERVICE-NAME] \ --member='serviceAccount:service-[PROJECT-NUMBER]@gcp-sa-iap.' \ --role='roles/run.invoker' מפעילים את IAP באמצעות הפקודה ברמה הגלובלית או האזורית, בהתאם לסוג של שירות הקצה העורפי של מאזן העומסים (גלובלי או אזורי). משתמשים במזהה הלקוח ובסוד הלקוח ב-OAuth מהשלב הקודם.
היקף גלובלי
gcloud compute backend-services update BACKEND_SERVICE_NAME --global --iap=enabled
היקף אזורי
מחליפים את הערכים בשדות הבאים:gcloud compute backend-services update BACKEND_SERVICE_NAME --region REGION_NAME --iap=enabled
- BACKEND_SERVICE_NAME: השם של שירות הקצה העורפי.
- REGION_NAME: האזור שבו רוצים להפעיל את IAP.
אחרי שמפעילים את IAP, אפשר להשתמש ב-Google Cloud CLI כדי לשנות את מדיניות הגישה של IAP באמצעות התפקיד
roles/iap.httpsResourceAccessorשל ניהול הזהויות והרשאות הגישה (IAM). מידע נוסף זמין במאמר ניהול הגישה למשאבים שמאובטחים באמצעות IAP.
Terraform
- אם עדיין לא עשיתם את זה, מריצים את הפקודה הבאה בפרויקט כדי ליצור את סוכן השירות של IAP. אם כבר יצרתם את סוכן השירות, הפעלת הפקודה לא תשכפל אותו.
resource "google_project_service" "project" { project = "your-project-id" service = "iap.googleapis.com" } מוסיפים את הקוד הבא כדי להקצות את התפקיד
roles/run.invokerלסוכן השירות של IAP.resource "google_cloud_run_v2_service_iam_member" "iap_invoker" { project = google_cloud_run_v2_service.default.project location = google_cloud_run_v2_service.default.location name = google_cloud_run_v2_service.default.name role = "roles/run.invoker" member = "serviceAccount:service-"PROJECT_NUMBER@gcp-sa-iap." }מחליפים את PROJECT_NUMBER במספר הפרויקט.
מפעילים את IAP באמצעות הפקודה הגלובלית או האזורית, בהתאם למאזן העומסים. משתמשים במזהה הלקוח ובסוד הלקוח ב-OAuth מהשלב הקודם.
היקף גלובלי
resource "google_compute_backend_service" "default" { name = "tf-test-backend-service-external" protocol = "HTTPS" load_balancing_scheme = "EXTERNAL_MANAGED" iap { enabled = true oauth2_client_id = "abc" oauth2_client_secret = "xyz" } }היקף אזורי
resource "google_compute_region_backend_service" "default" { name = "tf-test-backend-service-external" protocol = "HTTPS" load_balancing_scheme = "EXTERNAL_MANAGED" iap { enabled = true oauth2_client_id = "abc" oauth2_client_secret = "xyz" } }
הגדרת Cloud Run להגבלת הגישה
כדי למנוע ניתוב של תנועה דרך כתובת ה-URL שמוגדרת כברירת מחדל ב-
run.appבשירות Cloud Run, משביתים את כתובת ה-URL שמוגדרת כברירת מחדל. אחרת, צריך להגדיר את הגדרות תעבורת הנתונים הנכנסת להגבלת תעבורת הנתונים הנכנסת ברשת ל-Cloud Run.פתרון לשגיאות
ההרשאה נדחתה בגישה ל-Cloud Run
Your client does not have permission to get URL from this serverכדי להפעיל את שירות Cloud Run, ב-IAP משתמשים בהרשאות של חשבון השירות של IAP. חשוב לוודא שהקציתם את התפקיד "הפעלת Cloud Run" לחשבון השירות הבא:
service-[PROJECT-NUMBER]@gcp-sa-iap..אם הקציתם את התפקיד "מפעיל של Cloud Run" לחשבון השירות הקודם ואתם עדיין נתקלים בבעיה, פרסו מחדש את שירות Cloud Run.
כשל בסוכן השירות גורם לשגיאה בהגדרת IAM
אם מפעילים את IAP בפרויקט חדש בפעם הראשונה, יכול להיות שתופיע השגיאה הבאה:
Setting IAM permissions failedהסיבה לכך היא שסוכן השירות של Cloud Run נכשל. כדי לפתור את הבעיה, צריך להפעיל מחדש את IAP או להגדיר את מדיניות ה-IAM באופן ידני.
אי אפשר להגדיר את IAP באמצעות ה-CLI של gcloud
The IAP service account is not provisionedאם השגיאה הזו מופיעה, מריצים את הפקודה הבאה:
gcloud services identity create --service=iap.googleapis.com --project=[PROJECT_ID]לחשבון השירות של IAP לא נדרשת הרשאת
run.routes.invokeבמהלך גרסת טרום-ההשקה (Preview) של IAP עם Cloud Run, Cloud Run לא ביצע את בדיקת ההרשאה
run.routes.invokeלקריאות מ-IAP שמשתמשות בתפקיד Cloud Run Invoker. בגרסה הזמינה לכלל המשתמשים (GA), בדיקת ההרשאות הזו מתבצעת ב-Cloud Run.כדי למנוע שינויי תוכנה שעלולים לגרום לכשל, חלק מהפרויקטים של הלקוחות שהיו תלויים בהתנהגות הזו במהלך גרסת טרום-ההשקה (Preview) הוכנסו לרשימת היתרים, כך שההרשאה לא נבדקה. כדי להסיר פרויקטים כאלה מרשימת ההיתרים של גרסת טרום-ההשקה (Preview) בלבד, פנו לתמיכה של Cloud Run.
המאמרים הבאים
הגדרת IAP ל-Cloud Run
הפעלת IAP ב-Cloud Run
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
כדי להפעיל את שרת ה-Proxy לאימות זהויות (IAP) בשירותי Cloud Run, אתם יכולים להשתמש באחת מהשיטות הבאות: