שלב 3: הגדרת הגישה
בקטע הזה אנחנו מפרטים דרכים שונות להעניק גישה לפריסת MDE, בהתאם לצרכים שלכם.
מנהור SSH באמצעות IAP
כדי להתחבר לכתובות ה-IP הפרטיות של שירותי MDE, אפשר להשתמש במנהרת SSH למכונת proxy וירטואלית. הגישה הזו מאפשרת לכם להשתמש בכלים מקומיים כמו Postman כדי ליצור אינטראקציה עם ממשקי ה-API של MDE.
פריסת MDE רגילה יוצרת מכונת VM של proxy בשם mde-proxy. המחשב הזה יכול להעביר בקשות נכנסות דרך שרת proxy אל שער ה-API של MDE או אל ממשק האינטרנט של MDE. למכונה הווירטואלית הזו יש רק כתובת IP פרטית, אבל IAP מאפשר ליצור מנהרת SSH מאובטחת למכונה הזו באמצעות שרת Proxy לאימות זהויות (IAP) להעברת TCP.
בהמשך הקטע הזה מוסבר איך להגדיר IAP כדי ליצור מנהור של תעבורה אל mde-proxy, ואיך ליצור מנהור אל mde-proxy מתחנת העבודה:
במסוף Google Cloud , עוברים אל IAP ולוחצים על Enable API. השלמת הפעולה עשויה להימשך כמה דקות.
במסוף Google Cloud , עוברים אל IAP ולוחצים על SSH AND TCP RESOURCES.
נותנים הרשאה למשתמשים שמורשים להשתמש ב-IAP כדי להתחבר אל
mde-proxyדרך IAP:כדי שמשתמשים יוכלו להשתמש ב-IAP כדי להתחבר אל
mde-proxy, צריך להקצות להם אתroles/iap.tunnelResourceAccessorהתפקיד לפי ההוראות הבאות:בוחרים באפשרות mde-proxy מהרשימה.
בחלונית הצדדית שמשמאל, לוחצים על Add Principal.
מקלידים את כתובת האימייל של חשבון המשתמש שרוצים להעניק לו גישה.
בוחרים את התפקיד
IAP-secured Tunnel User.
יוצרים מנהרה ל-MDE API באמצעות הפקודה הבאה:
export MDE_PROXY_ZONE=$(gcloud compute instances list --filter="mde-proxy" \ --format="value(zone)") gcloud compute ssh mde-proxy \ --zone "$MDE_PROXY_ZONE" --tunnel-through-iap \ -- -N -L 8080:api.mde.cloud.google.com:80אחרי שמריצים את הפקודה, אפשר לגשת לממשקי ה-API של MDE בכתובת
http://localhost:8080.יוצרים מנהרה לממשק האינטרנט של MDE.
אם יצרתם מנהרת נתונים ל-MDE API בשלב 3, תוכלו לפתוח טרמינל חדש כדי להריץ את הפקודות מאוחר יותר. מנהרות SSH ל-MDE API ולממשק האינטרנט של MDE יכולות לפעול במקביל.
export MDE_PROXY_ZONE=$(gcloud compute instances list --filter="mde-proxy" \ --format="value(zone)") gcloud compute ssh mde-proxy \ --zone "$MDE_PROXY_ZONE" --tunnel-through-iap \ -- -N -L 8081:ui.mde.cloud.google.com:80אחרי שמריצים את הפקודה, אפשר לגשת לממשק האינטרנט של MDE בכתובת
http://localhost:8081.
הגדרת שרת proxy לאימות זהויות (IAP)
שרת proxy לאימות זהויות (IAP) מאפשר להתחבר בצורה מאובטחת לכתובות ה-IP הפנימיות של MDE API וממשק האינטרנט, וגם להגביל את הגישה החיצונית לממשק האינטרנט של MDE רק למשתמשים מורשים, אם פרסתם אותו עם האפשרות 'מאזן עומסים חיצוני'.
כדי להשתמש ב-IAP, קודם צריך להפעיל את IAP Service API (אם עדיין לא עשיתם זאת) ולהגדיר את מסך ההסכמה ל-OAuth:
במסוף Google Cloud , נכנסים אל IAP ולוחצים על Enable API. השלמת הפעולה עשויה להימשך כמה דקות.
הגדרת מסך ההסכמה ל-OAuth עבור IAP:
במסוף Google Cloud , עוברים לדף Google Auth Platform ובוחרים את פרויקט הפריסה של MDE אם מוצגת בקשה.
- בדף Overview (סקירה כללית), לוחצים על Create OAuth client (יצירת לקוח OAuth).
- בוחרים באפשרות Web application (אפליקציית אינטרנט) כסוג האפליקציה.
- מזינים את שם האפליקציה שרוצים להציג, למשל
MDE. - לוחצים על יצירה ואז על אישור בחלון הקופץ.
- בדף Branding, מוודאים שמופיעים שם האפליקציה, כתובת האימייל לתמיכה במשתמשים והפרטים ליצירת קשר עם המפתח.
כדי לשנות בהמשך מידע במסך ההסכמה של OAuth, כמו שם המוצר או כתובת האימייל, חוזרים על השלבים הקודמים להגדרת מסך ההסכמה.
הגדרת גישה לממשק האינטרנט של מאזן עומסים חיצוני מסוג HTTP
בקטע הזה נסביר איך להגדיר גישה לממשק האינטרנט של MDE באמצעות מאזן עומסים חיצוני מסוג HTTP של IAP.
אם הפעלתם את מאזן העומסים החיצוני של HTTP לממשק האינטרנט של MDE, אתם צריכים להשתמש ב-IAP כדי להגביל את הגישה לאפליקציה רק למשתמשים מורשים.
לפני שמתחילים
חשוב לוודא שאתם עומדים בדרישות המוקדמות הבאות:
- הפריסה של MDE בוצעה באמצעות ממשק האינטרנט של MDE.
- פרסתם את ממשק האינטרנט של MDE עם מאזן עומסים חיצוני מסוג HTTP.
- השלמתם את השלבים של ההגדרה הכללית של רכישות מתוך האפליקציה.
שלבים
נכנסים לדף IAP במסוף Google Cloud .
מאתרים את המשאב שמתאים לשירות של ממשק המשתמש החיצוני (מחפשים את
mde-ui-ext-service).בעמודה IAP (רכישות מתוך האפליקציה) של המשאב, משנים את המתג למצב Enabled (מופעל).
בתיבת הדו-שיח לאישור, לוחצים על הפעלה.
מסמנים את התיבה לצד שם המשאב.
בחלונית הצדדית השמאלית, לוחצים על Add Principal.
מקלידים את כתובת האימייל של המשתמש או הקבוצה שרוצים להעניק להם גישה.
בתפריט הנפתח Role, בוחרים באפשרות Cloud IAP > IAP-secured Web App User.
לוחצים על Save.
גישה בין ארגונים (אופציונלי)
כברירת מחדל, IAP משתמש בלקוחות OAuth שמנוהלים על ידי Google, שמגבילים באופן מחמיר את הגישה למשתמשים באותו Google Cloud ארגון שבו נמצא הפרויקט. אם הפריסה שלכם דורשת גישה ממשתמשים חיצוניים (שותפים שמשתמשים בדומיין אחר), אתם צריכים להשתמש בלקוח OAuth בהתאמה אישית שמוגדר עם סוג משתמש חיצוני.
פרטים נוספים זמינים ב Google Cloud מסמכי התיעוד הרשמיים בנושא שימוש בלקוחות OAuth בהתאמה אישית עם IAP והפעלת IAP ב-GKE.
אפשר להגדיר את זה באחת מהדרכים הבאות:
שיטה א': הגדרה ישירה במסוף (ללא סודות של GKE)
אם GKE BackendConfig לא מנהל את הגדרות ה-IAP (כלומר, אין לו בלוק iap שמאפשר ל-GKE Ingress לרשת הגדרות קיימות), אפשר להגדיר את הלקוח המותאם אישית ישירות במסוף:
- מגדירים את מסך ההסכמה ל-OAuth של הפרויקט כחיצוני (ראו את הקטע הגדרה של מסך הסכמה ל-OAuth למעלה). אם סטטוס האפליקציה נשאר 'בבדיקה', צריך לוודא שהוספתם את המשתמשים החיצוניים לרשימה משתמשים לבדיקה.
- עוברים אל דף ה-IAP.
- בשורה של משאב
mde-ui-ext-service, לוחצים על סמל האפשרויות הנוספות (3 נקודות) בעמודה פעולות ובוחרים באפשרות הגדרות. - בוחרים באפשרות Custom OAuth (OAuth בהתאמה אישית).
- לוחצים על Auto Generate Credentials (יצירת פרטי כניסה באופן אוטומטי) או מספקים פרטי כניסה קיימים אם יצרתם אותם ידנית ב-APIs & Services (ממשקי API ושירותים).
- לוחצים על Save.
שיטה ב': הגדרה בניהול GKE (באמצעות סודות של Kubernetes)
אם אתם מעדיפים לנהל את ההגדרות של IAP באמצעות מניפסטים של Kubernetes (GitOps), אתם צריכים לאחסן את פרטי הכניסה בסוד ולהפנות אליו ב-BackendConfig:
- מגדירים את מסך ההסכמה של OAuth כחיצוני ויוצרים פרטי כניסה של לקוח OAuth באופן ידני בקטע APIs & Services > Credentials (סוג אפליקציית אינטרנט).
- יוצרים סוד של Kubernetes באשכול:
sh kubectl create secret generic iap-oauth-secret \ --namespace=mde \ --from-literal=client_id=YOUR_CLIENT_ID \ --from-literal=client_secret=YOUR_CLIENT_SECRET - מעדכנים את
BackendConfigבשירות כך שיפנה לסוד:yaml spec: iap: enabled: true oauthclientCredentials: secretName: iap-oauth-secret
הגדרת DNS לממשק האינטרנט של MDE
אם הפעלתם את מאזן העומסים החיצוני של HTTP לממשק האינטרנט של MDE, אתם צריכים להגדיר את רשומת A של שם הדומיין שהקציתם למשתנה MDE_UI_DOMAIN_NAME ב-input.tfvars לכתובת ה-IP של מאזן העומסים החיצוני של HTTP שנפרס כדי להשלים את הקצאת אישור ה-SSL שמנוהל על ידי Google.
אפשר לחפש את כתובת ה-IP של מאזן העומסים החיצוני מסוג HTTP באמצעות הפקודה הבאה:
gcloud compute addresses list --filter="name~'.*mde-ui.*'" --format="value(address)" --global
כדי לקבל פרטים על יצירת רשומת A, צריך לפנות למארח ה-DNS.