בדף הזה מוסבר איך לאבטח את אפליקציות ה-SaaS באמצעות שער גישה מאובטח של Chrome Enterprise Premium.
שער גישה מאובטח של Chrome Enterprise Premium פועל כשרת proxy קדימה, ומחיל מסגרת גישה של אפס אמון ומספק בקרה פרטנית מבוססת-הקשר על מי שמקבל גישה לאפליקציות ה-SaaS שלכם.
איך מאבטחים גישה לאפליקציות SaaS
הנה סקירה כללית ברמה גבוהה של האופן שבו שער גישה מאובטח מגן על אפליקציות SaaS:
- הגדרות הדפדפן בצד הלקוח מעבירות את תעבורת הנתונים של האפליקציה דרך שרת proxy מאובטח של שער.
- שער גישה מאובטח בודק את מדיניות בקרת הגישה מבוססת-הקשר כדי לאשר גישה של לקוח (משתמש ומכשיר).
- אם הגישה של הלקוח מותרת, השער מעביר את התעבורה לאפליקציה באמצעות כתובות IP ייחודיות של מקור שהוקצו לשער ולאזור הזה. Google Cloudכתובות ה-IP שהוקצו שמורות באופן בלעדי לשער שאתם יוצרים, ומשתמשים או שערים אחרים לא יכולים להשתמש בהן. כדי לשלוט בגישה, אפשר להוסיף את כתובות ה-IP הייעודיות האלה לרשימת ההיתרים באפליקציית ה-SaaS.
התפקידים הנדרשים
צריך לבקש מהאדמין להקצות את התפקידים הבאים:
אדמין BeyondCorp בענן (
roles/beyondcorp.admin) כדי להגדיר את Chrome Enterprise Premium בפרויקטאדמין של Access Context Manager (
roles/accesscontextmanager.policyAdmin), כדי לקרוא ולהוסיף רמות גישה חדשותService Usage Viewer (
roles/serviceusage.serviceUsageViewer) to use the Google Cloud console
מידע נוסף על תפקידים בניהול זהויות והרשאות גישה (IAM)
לפני שמתחילים
לפני שמגדירים את שער הגישה המאובטח, צריך לוודא שיש לכם את הפריטים הבאים:
- רישיון ל-Chrome Enterprise Premium.
- גישה למסוף Google Admin עם חשבון אדמין.
- Google Cloud השירות מופעל למשתמשים.
Google Cloud פרויקט עם חשבון לחיוב שהוקצה לו ועם API מופעל מהסוגים הבאים: BeyondCorp API
אפליקציית SaaS שרוצים להגן עליה. האפליקציה צריכה לתמוך ב-
IP allowlistingכדי לאכוף בדיקות אבטחה באמצעות שער גישה מאובטח.
מגבלות
לשער גישה מאובטח של Chrome Enterprise Premium יש את המגבלות הבאות:
- קישוריות IPv6: שער גישה מאובטח של Chrome Enterprise Premium לא תומך באפליקציות SaaS שמשתמשות בקישוריות IPv6.
- ספק זהויות כאפליקציית SaaS: אסור להגדיר ספק זהויות כאפליקציית SaaS כדי להגן עליו באמצעות השער המאובטח, אם האימות של משתמש הקצה באמצעות השער המאובטח תלוי באותו ספק זהויות.
הגדרת סביבת מעטפת
כדי לייעל את תהליך ההגדרה ולקיים אינטראקציה עם ממשקי ה-API של שער הגישה המאובטח, צריך להגדיר את משתני הסביבה הבאים במעטפת העבודה.
פרמטרים כלליים
PROJECT_ID=
PROJECT_IDAPPLICATION_ID=APPLICATION_IDAPPLICATION_DISPLAY_NAME="APPLICATION_DISPLAY_NAME" HOST_NAME=HOST_NAMEמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו נוצר שער הגישה המאובטח. -
APPLICATION_ID: המזהה של האפליקציה, כמוgithub. השם יכול להכיל עד 63 תווים, והוא יכול לכלול אותיות קטנות, מספרים ומקפים. התו הראשון חייב להיות אות, והתו האחרון יכול להיות אות או מספר. -
APPLICATION_DISPLAY_NAME: השם שיוצג, שקריא לאנשים.
HOST_NAME: שם המארח של האפליקציה. לדוגמה,github.com. אורך שם המארח יכול להיות עד 253 תווים, והוא צריך להיות באחד מהפורמטים הבאים:- כתובת IPv4 תקינה
- כתובת IPv6 תקינה
- שם DNS תקין
- כוכבית (*)
- כוכבית (*) ואחריה שם DNS תקין
-
פרמטרים של שער גישה מאובטח
SECURITY_GATEWAY_ID=
SECURITY_GATEWAY_IDSECURITY_GATEWAY_DISPLAY_NAME="SECURITY_GATEWAY_DISPLAY_NAME"מחליפים את מה שכתוב בשדות הבאים:
-
SECURITY_GATEWAY_ID: המזהה של השער המאובטח. המזהה יכול להכיל עד 63 תווים, והוא יכול לכלול אותיות קטנות, מספרים ומקפים. התו הראשון צריך להיות אות, והתו האחרון יכול להיות אות או מספר. SECURITY_GATEWAY_DISPLAY_NAME: השם של שער הגישה המאובטח שקריא לאנשים. השם יכול להכיל עד 63 תווים, והוא יכול לכלול רק תווים שניתנים להדפסה.
-
יצירת שער מאובטח
שער גישה מאובטח של Chrome Enterprise Premium הוא אבן בניין בסיסית ליצירת חיבורים מאובטחים לאפליקציות. הוא מקצה פרויקט ורשת ייעודיים, ומספק בידוד ואבטחה.
console
כדי ליצור משאב שער גישה מאובטח:
- במסוף Google Cloud , נכנסים לדף שער הגישה המאובטח.
מעבר לשער מאובטח - בוחרים את הפרויקט שרוצים ליצור עבורו שער גישה מאובטח.
- כדי ליצור שער גישה מאובטח, לוחצים על יצירת שער חדש ומחכים עד שתהליך יצירת השער יסתיים.
- אפשר לעקוב אחרי ההתקדמות בקטע 'התראות' במסוף Google Cloud .
- לפני שיוצרים משאב של אפליקציית SaaS, מומלץ ליצור מרכזי יציאה של SaaS. הדגל
hubsמייצג את המשאבים האזוריים שנדרשים להפעלת קישוריות יוצאת לאפליקציית היעד. אפשר להגדיר מרכז אחד לכל אזור, וכל מרכז מספק שתי כתובות IP. ב-Secure Gateway יכולים להיות עד 20 רכזות. אפשר לציין את האזורים הבאים:africa-south1asia-east1asia-south1asia-south2asia-southeast1europe-central2europe-north1europe-southwest1europe-west1europe-west2europe-west3europe-west4europe-west8europe-west9northamerica-northeast1northamerica-northeast2northamerica-south1southamerica-east1southamerica-west1us-central1us-east1us-east4us-east5us-west1
- נכנסים לדף SaaS Egress Hubs במסוף Google Cloud .
מעבר אל SaaS Egress Hubs - בוחרים את הפרויקט שרוצים ליצור עבורו את מרכזי היציאה של SaaS.
- כדי להוסיף רכזת יציאה של SaaS, לוחצים על הוספת רכזת יציאה של SaaS.
- בתפריט הנפתח, בוחרים את האזורים שבהם רוצים להוסיף את מרכזי היציאה. כדי להוסיף את מרכזי היציאה, לוחצים על הוספת מרכז יציאה של SaaS כדי להוסיף יותר ממרכז אחד. כשמסיימים, לוחצים על Save (שמירה) כדי ליצור את מרכזי היציאה.
gcloud
כדי ליצור משאב של שער גישה מאובטח, מריצים את הפקודה הבאה. במקרה של סימון --hubs, מציינים אזור אחד או יותר מהרשימה הבאה.
gcloud beyondcorp security-gateways create SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global \ --display-name="SECURITY_GATEWAY_DISPLAY_NAME" \ --hubs=us-central1 \ --service-discovery={}
הדגל hubs מגדיר את המשאבים האזוריים שנדרשים להפעלת קישוריות יוצאת לאפליקציית היעד. אפשר להגדיר מרכז אחד לכל אזור, וכל מרכז מספק שתי כתובות IP. ב-Secure Gateway יכולים להיות עד 20 רכזות. אפשר לציין את האזורים הבאים:
africa-south1asia-east1asia-south1asia-south2asia-southeast1europe-central2europe-north1europe-southwest1europe-west1europe-west2europe-west3europe-west4europe-west8europe-west9northamerica-northeast1northamerica-northeast2northamerica-south1southamerica-east1southamerica-west1us-central1us-east1us-east4us-east5us-west1
REST
כדי ליצור משאב שער גישה מאובטח, צריך להפעיל את שיטת Create API עם פרטי השער בגוף הבקשה. במקרה של סימון hubs, מציינים אזור אחד או יותר מהרשימה הבאה.
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d '{ "display_name": "SECURITY_GATEWAY_DISPLAY_NAME", "hubs": { "us-central1": {} }, "service_discovery": {} }' \ "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways?security_gateway_id=SECURITY_GATEWAY_ID"
הדגל hubs מייצג את המשאבים האזוריים שנדרשים להפעלת קישוריות יוצאת לאפליקציית היעד. אפשר להגדיר מרכז אחד לכל אזור, וכל מרכז מספק שתי כתובות IP. ב-Secure Gateway יכולים להיות עד 20 רכזות. אפשר לציין את האזורים הבאים:
africa-south1asia-east1asia-south1asia-south2asia-southeast1europe-central2europe-north1europe-southwest1europe-west1europe-west2europe-west3europe-west4europe-west8europe-west9northamerica-northeast1northamerica-northeast2northamerica-south1southamerica-east1southamerica-west1us-central1us-east1us-east4us-east5us-west1
הגדרת אפליקציית SaaS
אחרי שיוצרים שער גישה מאובטח, אפשר להגדיר את אפליקציות ה-SaaS כך שישתמשו בשער הגישה המאובטח לגישה מאובטחת.
console
כדי להגדיר מרכזי יציאה של SaaS:
- נכנסים לדף SaaS Egress Hubs במסוף Google Cloud .
מעבר אל SaaS Egress Hubs - בדף SaaS Egress Hubs (מרכזי יציאה של SaaS), מחפשים את הטבלה שבה מפורטים המרכזים. לכל אזור שבו אתם מתכוונים להשתמש, מעתיקים את כל כתובות ה-IP שמופיעות בעמודה Static dedicated egress IPs (כתובות IP סטטיות ייעודיות ליציאה). בכל אזור מסופקות שתי כתובות IP.
- מוסיפים את כתובות ה-IP לרשימת ההיתרים של כתובות ה-IP באפליקציית ה-SaaS. לדוגמה, אם מדובר באפליקציית GitHub, אפשר לפעול לפי המדריך הזה: ניהול כתובות IP מותרות בארגון.
gcloud
כדי להגדיר מרכזי יציאה של SaaS:
- מקבלים את כתובות ה-IP שהוקצו על ידי שער הגישה המאובטח לכל Hub. מוקצות שתי כתובות IP לאזור.
- מוסיפים את כתובות ה-IP לרשימת ההיתרים של כתובות ה-IP באפליקציית ה-SaaS. לדוגמה, אם מדובר באפליקציית GitHub, אפשר לפעול לפי ההוראות במאמר ניהול כתובות IP מותרות בארגון.
gcloud beyondcorp security-gateways describe SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global
הדוגמה הבאה היא של תשובת GET של שער גישה מאובטח עם hubs. בדוגמה, כתובות ה-IP hubs נוצרות באזורים us-central1 ו-us-east1, וצריך לאפשר את כל כתובות ה-IP שמוחזרות בתגובה באפליקציית ה-SaaS.
createTime: 'CREATE_TIME' displayName: My secure gateway hubs: us-central1: internetGateway: assignedIps: - IP_ADDRESS_1 - IP_ADDRESS_2 us-east1: internetGateway: assignedIps: - IP_ADDRESS_1 - IP_ADDRESS_2 name: projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID state: RUNNING updateTime: 'UPDATE_TIME'
REST
כדי להגדיר מרכזי יציאה של SaaS:
- מקבלים את כתובות ה-IP שהוקצו על ידי שער הגישה המאובטח לכל Hub. מוקצות שתי כתובות IP לאזור.
- מוסיפים את כתובות ה-IP לרשימת ההיתרים של כתובות ה-IP באפליקציית ה-SaaS. לדוגמה, אם מדובר באפליקציית GitHub, אפשר לפעול לפי ההוראות במאמר ניהול כתובות IP מותרות בארגון.
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID"
הדוגמה הבאה היא של תשובת GET של שער גישה מאובטח עם hubs. בדוגמה, כתובות ה-IP hubs נוצרות באזורים us-central1 ו-us-east1, וצריך לאפשר את כל כתובות ה-IP שמוחזרות בתגובה באפליקציית ה-SaaS.
{ "securityGateways": [ { "name": "projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID", "createTime": "CREATE_TIME", "updateTime": "UPDATE_TIME", "displayName": "My secure gateway", "state": "RUNNING", "hubs": { "us-central1": { "internetGateway": { "assignedIps": [ "IP_ADDRESS_1", "IP_ADDRESS_2", ] } }, "us-east1": { "internetGateway": { "assignedIps": [ "IP_ADDRESS_1", "IP_ADDRESS_2", ] } } } } ] }
יצירה של משאב אפליקציה
המידע הבא יעזור לכם להגדיר משאב של אפליקציית שער מאובטח.
יצירת משאב של אפליקציית שער מאובטח ב- Google Cloud
משאב האפליקציה Google Cloud הוא משאב משנה של משאב השער המאובטח. יוצרים משאב אפליקציה באמצעות מסוף Google Cloud או הפעלת CreateAPI.
console
כדי ליצור אפליקציית SaaS:
- במסוף Google Cloud , נכנסים לדף שער הגישה המאובטח.
מעבר לשער מאובטח - כדי ליצור אפליקציה, לוחצים על הוספת אפליקציה.
- בוחרים את סוג האפליקציה: אפליקציה ציבורית.
- אם עדיין לא הגדרתם מרכזי יציאה של SaaS לשער המאובטח הזה, תתבקשו ליצור אותם. באפליקציות ציבוריות נדרש לפחות מרכז יציאה אחד של SaaS. כדי להגדיר מרכזי יציאה של SaaS, לוחצים על מעבר למרכזי יציאה של SaaS ומוסיפים אזור אחד או יותר.
- אחרי שיוצרים מרכז יציאה אחד או יותר, לוחצים על הבא.
- מזינים את פרטי האפליקציה:
- שם האפליקציה: מזינים שם, לדוגמה,
GitHub. - התאמות לדומיינים: מזינים רשימה מופרדת בפסיקים של תבניות דומיין כדי להעביר את התנועה דרך שער הגישה המאובטח. כוללים את היציאה בפורמט
domain:port. אפשר להשתמש בתווים כלליים לחיפוש (*). לדוגמה:github.com:443.
- שם האפליקציה: מזינים שם, לדוגמה,
- כדי להגדיר את אפליקציית ה-SaaS, לוחצים על המשך.
- מגדירים את אפליקציית ה-SaaS כך שתאפשר תעבורת נתונים משער הגישה המאובטח:
- חשוב לרשום או להעתיק את כל כתובות ה-IP שמופיעות עבור האזורים שבהם אתם משתמשים. כתובות ה-IP האלה ייחודיות לשער הגישה המאובטח שלכם.
- נכנסים למסוף הניהול של אפליקציית ה-SaaS.
- עוברים להגדרות הרשת או להגדרות האבטחה שבהן מנהלים את רשימות היתרים של כתובות IP.
- מוסיפים את כל כתובות ה-IP שהתקבלו לרשימת ההיתרים של כתובות ה-IP באפליקציה.
- כדי להוסיף את האפליקציה, לוחצים על המשך.
- אופציונלי: הגדרת מדיניות גישה: בוחרים מדיניות גישה של Access Context Manager. אפשר לדלג על השלב הזה במדריך הזה.
- כדי ליצור את האפליקציה, לוחצים על יצירה.
gcloud
כדי ליצור אפליקציית SaaS באמצעות gcloud, מריצים את הפקודה הבאה:
gcloud beyondcorp security-gateways applications create APPLICATION_ID \ --project=PROJECT_ID \ --security-gateway=SECURITY_GATEWAY_ID \ --location=global \ --display-name="APPLICATION_DISPLAY_NAME" \ --endpoint-matchers="hostname=HOST_NAME,ports=443"
REST
כדי ליצור אפליקציית SaaS באמצעות ה-API בארכיטקטורת REST, מריצים את הפקודה הבאה:
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d "{ \"display_name\": \"APPLICATION_DISPLAY_NAME\", \"endpoint_matchers\": [{hostname: \"HOST_NAME\", ports: 443}] }" \ "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID/applications?application_id=APPLICATION_ID"
הגדרת מדיניות גישה
אפשר להחיל מדיניות גישה כדי לשלוט בגישה ברמת האפליקציה. אם לא מוגדרת מדיניות גישה, הגישה לאפליקציה נדחית כברירת מחדל.
console
יצירת מדיניות לכמה אפליקציות
כדי להגדיר מדיניות גישה:
- כדי ליצור מדיניות שחלה על כמה אפליקציות שמקושרות לשער גישה מאובטח, עוברים לדף Policies (מדיניות).
מעבר אל 'מדיניות' - כדי להוסיף מדיניות גישה לאפליקציות, לוחצים על יצירת מדיניות.
- מהרשימה הנפתחת, בוחרים את האפליקציות שרוצים שהמדיניות תחול עליהן.
- מוסיפים חשבונות משתמש למדיניות:
חשבונות ראשיים יכולים להיות משתמשים, קבוצות, דומיינים או חשבונות שירות. הגישה של חשבונות המשתמשים האלה מאושרת או נדחית בהתאם לרמות הגישה שאתם מקצים.
- כדי להוסיף חשבון משתמש, לוחצים על Add principal.
- בשדה Principal, מזינים את כתובת האימייל של המשתמש, הקבוצה או חשבון השירות, או את שם הדומיין.
- בתפריט הנפתח רמות גישה, בוחרים רמת גישה מוגדרת מראש אחת או יותר של בקרת גישה מבוססת-הקשר. הגישה תינתן רק אם הגורם המורשה עומד בתנאים של רמות הגישה שנבחרו.
כדי להוסיף עוד גורמים ראשיים, לוחצים שוב על הוספת גורם ראשי וחוזרים על שלבי המשנה.
אפשר ליצור ולנהל רמות גישה ב-Access Context Manager.
- כדי להחיל את המדיניות על האפליקציה, לוחצים על Create Policy.
שינוי מדיניות גישה ברמת האפליקציה
- כדי לשנות מדיניות עבור אפליקציה אחת, עוברים לדף אפליקציות.
מעבר אל Applications - כדי למצוא את האפליקציה שרוצים לערוך:
- ברשימה Applications (אפליקציות), מחפשים את האפליקציה שרוצים לשנות.
- כדי לראות את פרטי האפליקציה, לוחצים על תפריט פעולות נוספות () ובוחרים באפשרות הצגת פרטים.
- כדי לערוך את הבקשה, לוחצים על עריכה.
- מוסיפים חשבונות משתמש למדיניות:
חשבונות ראשיים יכולים להיות משתמשים, קבוצות, דומיינים או חשבונות שירות. הגישה של חשבונות המשתמשים האלה מאושרת או נדחית בהתאם לרמות הגישה שאתם מקצים.
- כדי להוסיף חשבון משתמש, לוחצים על Add principal.
- בשדה Principal, מזינים את כתובת האימייל של המשתמש, הקבוצה או חשבון השירות, או את שם הדומיין.
- ברשימה הנפתחת רמות גישה, בוחרים רמת גישה מבוססת-הקשר מוגדרת מראש. הגישה תינתן רק אם הגורם המורשה עומד בתנאים של רמות הגישה שנבחרו.
כדי להוסיף עוד גורמים ראשיים, לוחצים שוב על הוספת גורם ראשי וחוזרים על שלבי המשנה.
אפשר ליצור ולנהל רמות גישה ב-Access Context Manager.
- כדי להחיל את המדיניות על האפליקציה, לוחצים על שמירה.
gcloud
הוספת קישור ברמת שער Service Discovery
לפני שמעניקים למשתמש גישה לאפליקציה, צריך לוודא שיש לו הרשאות לחיפוש שירותים ברמת השער המאובטח.
gcloud beyondcorp security-gateways add-iam-policy-binding SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global \ --role="roles/beyondcorp.serviceDiscoveryUser" \ --member=MEMBER
מחליפים את מה שכתוב בשדות הבאים:
-
SECURITY_GATEWAY_ID: המזהה של שער הגישה המאובטח -
PROJECT_ID: מזהה הפרויקט שבו מוגדר שער גישה מאובטח -
MEMBER: המשתמש, הקבוצה או חשבון השירות שרוצים להקצות להם את התפקיד Service Discovery. מידע נוסף זמין במאמר חשבונות ראשיים ב-IAM
הוספה של קישור ברמת האפליקציה
gcloud beyondcorp security-gateways applications add-iam-policy-binding APPLICATION_ID \ --security-gateway=SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global \ --role="roles/beyondcorp.sgApplicationUser" \ --member=MEMBER
מחליפים את מה שכתוב בשדות הבאים:
-
APPLICATION_ID: המזהה של משאב האפליקציה -
SECURITY_GATEWAY_ID: המזהה של שער הגישה המאובטח -
PROJECT_ID: מזהה הפרויקט שבו מוגדר שער גישה מאובטח -
MEMBER: המשתמש, הקבוצה או חשבון השירות שרוצים להקצות להם את התפקיד Service Discovery. מידע נוסף זמין במאמר חשבונות ראשיים ב-IAM
הוספה של קישור מותנה
אפשר גם להוסיף קשירה עם תנאים. התנאים מציינים דרישות, כמו כתובת IP של משתמש שמגיעה ממיקום ספציפי. (אפשר להגדיר את רמת הגישה במדיניות גישה ברמת הארגון או במדיניות גישה בהיקף מוגבל).
הפקודה הבאה מעניקה גישה רק אם כתובת ה-IP של המקור נמצאת ברמת גישה שצוינה:
gcloud beyondcorp security-gateways applications add-iam-policy-binding APPLICATION_ID \ --security-gateway=SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global \ --role="roles/beyondcorp.sgApplicationUser" \ --member=MEMBER \ --condition="expression='accessPolicies/1234567890/accessLevels/in_us' in request.auth.access_levels,title=Source IP must be in US"
הסרה של קישור ברמת השער של Service Discovery
ביטול הרשאות של משתמש לגילוי שירותים ברמת השער המאובטח.
gcloud beyondcorp security-gateways remove-iam-policy-binding SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global \ --role="roles/beyondcorp.serviceDiscoveryUser" \ --member=MEMBER
מחליפים את מה שכתוב בשדות הבאים:
-
SECURITY_GATEWAY_ID: המזהה של שער הגישה המאובטח -
PROJECT_ID: מזהה הפרויקט שבו מוגדר שער גישה מאובטח -
MEMBER: המשתמש, הקבוצה או חשבון השירות שרוצים להסיר מהם את התפקיד Service Discovery. מידע נוסף זמין במאמר חשבונות ראשיים ב-IAM
הסרה של קישור ברמת האפליקציה
gcloud beyondcorp security-gateways applications remove-iam-policy-binding APPLICATION_ID \ --security-gateway=SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global \ --role="roles/beyondcorp.sgApplicationUser" \ --member=MEMBER
מחליפים את מה שכתוב בשדות הבאים:
-
APPLICATION_ID: המזהה של משאב האפליקציה -
SECURITY_GATEWAY_ID: המזהה של שער הגישה המאובטח -
PROJECT_ID: מזהה הפרויקט שבו מוגדר שער גישה מאובטח -
MEMBER: המשתמש, הקבוצה או חשבון השירות שרוצים להסיר מהם את התפקיד Service Discovery. מידע נוסף זמין במאמר חשבונות ראשיים ב-IAM
הסרה של קישור מותנה
אפשר גם להסיר קשר עם תנאים. התנאים מציינים דרישות, כמו כתובת IP של משתמש שמגיעה ממיקום ספציפי. (אפשר להגדיר את רמת הגישה במדיניות גישה ברמת הארגון או במדיניות גישה בהיקף מוגבל).
הפקודה הבאה לדוגמה מסירה קישור מותנה עם רמת גישה שצוינה:
gcloud beyondcorp security-gateways applications remove-iam-policy-binding APPLICATION_ID \ --security-gateway=SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global \ --role="roles/beyondcorp.sgApplicationUser" \ --member=MEMBER \ --condition="expression='accessPolicies/1234567890/accessLevels/in_us' in request.auth.access_levels,title=Source IP must be in US"
REST
עדכון מדיניות גישה בצורה בטוחה
הפקודה setIamPolicy מחליפה את כל המדיניות הקיימת במדיניות שאתם מספקים. כדי להימנע מהסרה בטעות של הרשאות קיימות, מומלץ להשתמש בתבנית 'קריאה-שינוי-כתיבה' הבאה. הדפוס הזה עוזר למנוע הסרה בטעות של הרשאות קיימות.
- קריאה: שמירת מדיניות הגישה הנוכחית בקובץ.
- שינוי: עורכים את קובץ המדיניות באופן מקומי כדי להוסיף או לשנות הרשאות.
- כתיבה: החלת קובץ המדיניות המעודכן.
הגדרת מדיניות ברמת שער של Service Discovery
כדי להעניק הרשאות לחיפוש שירותים, צריך להגדיר מדיניות גישה בשער האבטחה במקום באפליקציה ספציפית. הפעולה הזו מתבצעת לפי אותו דפוס של 'קריאה-שינוי-כתיבה'.
מאחזרים את המדיניות הנוכחית ושומרים אותה בקובץ בשם gateway_policy.json.
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID:getIamPolicy" > gateway_policy.json
לאחר מכן, פותחים את הקובץ gateway_policy.json בכלי לעריכת טקסט ומוסיפים את הגורמים הנדרשים לרשימה members של התפקיד roles/beyondcorp.serviceDiscoveryUser, בדומה לשינויים ברמת האפליקציה.
קובץ gateway_policy.json לדוגמה:
{ "version": 3, "bindings": [ { "role": "roles/beyondcorp.serviceDiscoveryUser", "members": [ "group:existing-group@example.com" ] } ], "etag": "BwXN8_d-bOM=" }
אפשר גם להוסיף סוגים אחרים של חברים, כמו serviceAccount, user, group, principal ו-principalSet, בהגדרות של מדיניות. מידע נוסף מופיע במאמר חשבונות משתמשים ב-IAM.
החלת המדיניות המעודכנת:
jq '{policy: .}' gateway_policy.json | curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @- \ "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID:setIamPolicy"
הגדרת מדיניות גישה ברמת האפליקציה
טעינת המדיניות הנוכחית
מאחזרים את המדיניות הנוכחית. השדה etag מונע עדכונים סותרים אם כמה אדמינים מבצעים שינויים בו-זמנית.
הפקודה הבאה מאחזרת את המדיניות ושומרת אותה בקובץ בשם policy.json.
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID/applications/APPLICATION_ID:getIamPolicy" > policy.json
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו מוגדר שער גישה מאובטח -
SECURITY_GATEWAY_ID: המזהה של שער הגישה המאובטח -
APPLICATION_ID: המזהה של משאב האפליקציה
הפקודה יוצרת קובץ policy.json שמכיל את המדיניות הנוכחית.
שינוי קובץ המדיניות
כדי להעניק לקבוצה גישה לשימוש בשער הגישה המאובטח:
- פותחים את הקובץ
policy.jsonבכלי לעריכת טקסט. - מוסיפים את הקבוצה לרשימה
membersלתפקידroles/beyondcorp.securityGatewayUser.
קובץ policy.json לדוגמה:
{ "version": 3, "bindings": [ { "role": "roles/beyondcorp.sgApplicationUser", "members": [ "group:existing-group@example.com" ] } ], "etag": "BwXN8_d-bOM=" }
כדי להוסיף עוד קבוצה, מוסיפים רשומה חדשה למערך members. כוללים פסיק אחרי הרשומה הקודמת.
בדוגמה הבאה מוסיפים את new-group@example.com:
{ "version": 3, "bindings": [ { "role": "roles/beyondcorp.sgApplicationUser", "members": [ "group:existing-group@example.com", "group:new-group@example.com" ] } ], "etag": "BwXN8_d-bOM=" }
אפשר גם להוסיף סוגים אחרים של חברים, כמו serviceAccount, user, group, principal ו-principalSet, בהגדרות של מדיניות. מידע נוסף מופיע במאמר חשבונות משתמשים ב-IAM.
החלת המדיניות המעודכנת
אחרי שעורכים ושומרים את הקובץ policy.json, מפעילים אותו על המשאב באמצעות הפקודה setIamPolicy. הפקודה הזו משתמשת ב-etag מהקובץ כדי לוודא שאתם מעדכנים את הגרסה הנכונה.
jq '{policy: .}' policy.json | curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @- \ "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID/applications/APPLICATION_ID:setIamPolicy"
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו מוגדר שער גישה מאובטח -
SECURITY_GATEWAY_ID: המזהה של שער הגישה המאובטח -
APPLICATION_ID: המזהה של משאב האפליקציה
הוספה של מדיניות גישה מותנית
אפשר גם להגדיר מדיניות גישה עם תנאים. התנאים מציינים דרישות, כמו כתובת IP של משתמש שמגיעה ממיקום ספציפי. (אפשר להגדיר את רמת הגישה במדיניות גישה ברמת הארגון או במדיניות גישה בהיקף מוגבל).
מדיניות ההרשאות הבאה מעניקה גישה רק אם כתובת ה-IP של המקור נמצאת ברמת גישה שצוינה:
{ "version": 3, "bindings": [ { "role": "roles/beyondcorp.sgApplicationUser", "members": [ "group:group@example.com" ], "condition": { "expression": "request.auth.access_levels.contains('accessPolicies/1234567890/accessLevels/in_us')", "title": "Source IP must be in US" } } ], "etag": "BwXN8_d-bOM=" }
כדי להחיל את המדיניות הזו, פועלים לפי השלבים שמתוארים למעלה.
שיפור האבטחה באמצעות בקרת גישה מבוססת-הקשר
כדי לשפר עוד יותר את האבטחה ולוודא שרק מופעים מנוהלים של Google Chrome יוכלו לגשת לאפליקציות האינטרנט שלכם דרך שער האבטחה, מומלץ להוסיף כלל של בקרת גישה מבוססת הקשר (CAA). הכלל הזה בודק אם פרופיל Chrome של המשתמש נמצא בניהול, כדי למנוע שימוש לרעה בדפדפנים לא מנוהלים או זדוניים.
הערה: כדי להשתמש בתכונה הזו, צריך להתקין ולהגדיר את התוסף Endpoint Verification.כדי להטמיע את זה, מוסיפים תנאי לרמות הגישה המותאמות אישית של Access Context Manager. הנה דוגמה לתנאי שאפשר להתאים:
device.chrome.management_state == ChromeManagementState.CHROME_MANAGEMENT_STATE_PROFILE_MANAGED
מידע נוסף על הגדרה, בדיקה וניהול של המצב הזה זמין במאמר מאפיינים של דפדפן Chrome.
התקנת התוסף Chrome Enterprise Premium
התוסף Chrome Enterprise Premium הוא חלק בלתי נפרד משער גישה מאובטח, והוא עוזר באימות. מתקינים את התוסף לכל המשתמשים בשער המאובטח. מידע על פריסת התוסף זמין במאמר צפייה באפליקציות ותוספים והגדרתם. כדי להתקין את התוסף Chrome Enterprise Premium:
- נכנסים למסוף Google Admin.
- לוחצים על דפדפן Chrome > אפליקציות ותוספים.
- לוחצים על הכרטיסייה משתמשים ודפדפנים.
- כדי להוסיף את התוסף ל-Chrome, לוחצים על הלחצן + ואז בוחרים באפשרות הוספה של אפליקציית Chrome או של תוסף לפי המזהה שלהם.
מחפשים את התוסף Secure Enterprise Browser באמצעות המזהה הבא, ואז מגדירים את מדיניות ההתקנה שלו להתקנה בהגדרת מנהל מערכת לכל המשתמשים ביחידה הארגונית או בקבוצה:
ekajlcmdfcigmdbphhifahdfjbkciflj
לוחצים על התוסף המותקן, ובשדה מדיניות לגבי תוספים, מזינים את ערך ה-JSON הבא:
{ "securityGateway": { "Value": { "authentication": {}, "context": { "resource": "projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID" }, "serviceDiscovery": { "routes": {} } } } }
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו מוגדר שער גישה מאובטח -
SECURITY_GATEWAY_ID: המזהה של שער הגישה המאובטח
-
כדי לשמור את ההגדרות, לוחצים על Save.
הגדרה של קובץ PAC מדור קודם
כשמפעילים את זיהוי השירותים, לקוח דפדפן Chrome יכול לזהות אוטומטית את האפליקציות שהגדרתם ולנתב אליהן תעבורת נתונים דרך שער הגישה המאובטח. כך לא צריך להגדיר ניתוב ידני באמצעות קובץ PAC.
אם זיהוי שירותים לא מופעל בשער גישה מאובטח, יש לכם הגדרה מדור קודם. תצטרכו להגדיר קובץ PAC כדי לשלוט בהפניה בדפדפן Chrome.
כדי לבדוק אם יש לכם הגדרה מדור קודם, משתמשים בפקודות הבאות כדי לראות אם גילוי השירותים מופעל:
gcloud
gcloud beyondcorp security-gateways describe SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global | grep -i "serviceDiscovery"
REST
curl --silent \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID" | grep -i "serviceDiscovery"
אם הפקודה לא מחזירה פלט, השער שלכם משתמש בהגדרה מדור קודם. במקרה של שערים שמוגדרים בשיטה מדור קודם, הניתוב מתבצע באמצעות קובץ PAC מאוחסן.
שלב 1: יוצרים ומארחים את קובץ ה-PAC
יוצרים קובץ בשם
pac_config.jsעם קוד ה-JavaScript הבא, ומחליפים אתHOST_NAMEבדומיין של האפליקציה (לדוגמה,myapp.example.com):function FindProxyForURL(url, host) { const PROXY = "HTTPS via.prod.securegateway.goog:443"; const sites = ["HOST_NAME"]; for (const site of sites) { if (shExpMatch(url, 'https://' + site + '/*') || shExpMatch(url, '*.' + site + '/*')) { return PROXY; } } return 'DIRECT'; }
מעלים את קובץ ה-PAC לשירות אירוח, כמו קטגוריה של Cloud Storage.
- מוודאים שאפשר להוריד את הקובץ באופן ציבורי.
- מגדירים את כותרת ה-HTTP
Cache-Controlלערךno-cacheכדי שהדפדפנים תמיד יאחזרו את כללי הניתוב העדכניים ביותר.
מעתיקים את כתובת ה-URL הציבורית של קובץ ה-PAC שהועלה.
שלב 2: החלת קובץ ה-PAC במסוף Google Admin
- נכנסים למסוף Google Admin.
- עוברים אל מכשירים > Chrome > הגדרות.
- בוחרים את היחידה הארגונית או הקבוצה ולוחצים על מצב פרוקסי.
- בקטע מצב Proxy, בוחרים באפשרות תמיד להשתמש בתצורת proxy אוטומטית (PAC) המפורטת למטה.
- מזינים את כתובת ה-URL הציבורית של קובץ ה-PAC המתארח בשדה המתאים.
- לוחצים על Save.
שלב 3: הגדרת התוסף Chrome Enterprise Premium
התוסף נדרש לטיפול באימות. המדיניות הזו לגבי תוספים שונה מההגדרה הרגילה כי היא לא כוללת את החסימה של serviceDiscovery.
- במסוף Google Admin, עוברים אל דפדפן Chrome > אפליקציות ותוספים.
- עוברים לכרטיסייה משתמשים ודפדפנים ומוודאים שהתוסף Secure Enterprise Browser (
ekajlcmdfcigmdbphhifahdfjbkciflj) נוסף ונאכף. לוחצים על התוסף, ובשדה מדיניות לתוספים מזינים את ערך ה-JSON הבא:
{ "securityGateway": { "Value": { "authentication": {}, "context": { "resource": "projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID" } } } }
לוחצים על Save.
מעבר להגדרת גילוי השירותים
כדי להעביר את שער האבטחה מדור קודם מהגדרה של קובץ PAC להגדרה החדשה של גילוי שירותים, צריך להפעיל את התכונה באופן ידני ולעדכן את ההגדרות.
הפעלת זיהוי שירותים בשער הגישה המאובטח: צריך לעדכן את השער הקיים כדי להפעיל זיהוי שירותים.
gcloud
gcloud beyondcorp security-gateways update SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global \ --service-discovery={}
REST
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "service_discovery": {} }' \ "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID?updateMask=service_discovery"
הגדרת מדיניות הגישה ברמת השער: מעניקים למשתמשים את התפקיד
roles/beyondcorp.serviceDiscoveryUserברמת השער כדי שהם יוכלו להשתמש באיתור שירותים. פועלים לפי ההוראות בקטע הוספת קישור ברמת השער של Service Discovery.מעדכנים את ההגדרה של התוסף Chrome Enterprise Premium: פועלים לפי ההוראות שבקטע התקנת התוסף Chrome Enterprise Premium כדי לעדכן את מדיניות התוסף. הגדרות ה-JSON החדשות חייבות לכלול את הבלוק
"serviceDiscovery": { "routes": {} }.הסרת קובץ ה-PAC מדור קודם: אחרי שהתכונה 'גילוי שירותים' מופעלת, קובץ ה-PAC מדור קודם כבר לא נחוץ.
- במסוף Google Admin, עוברים אל מכשירים > Chrome > הגדרות > הגדרות משתמש ודפדפן > רשת.
- מחפשים את ההגדרה מצב שרת proxy.
- מסירים את כתובת ה-URL של קובץ ה-PAC או משנים את ההגדרה מתמיד להשתמש בתצורת proxy אוטומטית (PAC) המפורטת למטה למצב שמתאים לרשת שלכם, כמו המשתמשים יכולים להגדיר.
- לוחצים על Save.
חוויית משתמש הקצה
בסיום ההגדרה, משתמשי קצה שניגשים לאפליקציית ה-SaaS המוגנת מקבלים או נדחית הגישה שלהם בהתאם למדיניות הגישה שחלה על האפליקציה.
גישה לאפליקציה ב-Chrome
התוסף Chrome Enterprise Premium נדרש כדי להפנות את התנועה דרך השער המאובטח. התוסף מטפל באימות בין המשתמש לבין שער הגישה המאובטח. התוסף מותקן באופן אוטומטי דרך מדיניות הדומיין.
כשהמשתמשים ניגשים לאפליקציית ה-SaaS שהגדרתם, תעבורת הנתונים שלהם עוברת דרך שער הגישה המאובטח, שבודק אם הם עומדים במדיניות הגישה. אם המשתמשים עוברים את הבדיקות של מדיניות הגישה, הם מקבלים גישה לאפליקציה.
כשמדיניות ההרשאות דוחה את הגישה לאפליקציה דרך הדפדפן, המשתמשים מקבלים הודעה Access denied.