במסמך הזה מוסבר איך להגדיר שער גישה מאובטח של Chrome Enterprise Premium כדי לאבטח את הגישה לאפליקציות האינטרנט הפרטיות שלכם.
שער גישה מאובטח של Chrome Enterprise Premium פועל כשרת proxy קדימה, ומחיל מסגרת גישה של אפס אמון ומספק שליטה מפורטת ומבוססת-הקשר על מי שמקבל גישה לאפליקציות האינטרנט הפרטיות שלכם.
איך מאבטחים את הגישה לאפליקציות אינטרנט פרטיות
שער הגישה המאובטח יוצר מנהרה מאובטחת ומחיל מדיניות של בקרת גישה מבוססת-הקשר, וכך שומר על הפרטיות של האפליקציות הפרטיות ומגן עליהן מפני חשיפה לאינטרנט הציבורי. הגדרת דפדפן בצד הלקוח מפנה את התנועה של האפליקציות האלה דרך נקודת הקצה של שרת ה-proxy של שער הגישה המאובטח. לאחר מכן, שער הגישה המאובטח מחיל את מדיניות הגישה הרלוונטית, ואם הגישה מותרת, הוא מעביר את הבקשה לאפליקציית היעד.
שער הגישה המאובטח יכול לעזור להגן על אפליקציות אינטרנט פרטיות שמתארחות בסביבות הבאות:
Google Cloud פרויקט: שער הגישה המאובטח יכול להפנות גישה לאפליקציות שפועלות ברשת ה-VPC שלכם. Google Cloud
לאGoogle Cloud (מרכזי נתונים מקומיים או עננים אחרים): קודם צריך ליצור חיבור בין רשת ה-VPC הפרטית ב- Google Cloud לרשת הלאGoogle Cloud . בדרך כלל עושים את זה באמצעות Cloud VPN או Cloud Interconnect. שער הגישה המאובטח משתמש בחיבור כדי לשלוח את התנועה לרשת ה-VPC הפרטית, שבתורה מנתבת אותה לסביבה שאינהGoogle Cloud .
התפקידים הנדרשים
צריך לבקש מהאדמין להקצות את התפקידים הבאים:
אדמין 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 נוספים בלי אמצעי בקרה נפרדים מופעלים.
- השירותGoogle Cloud מופעל למשתמשים.
Google Cloud פרויקט עם חשבון לחיוב שהוקצה לו ועם API מופעל: BeyondCorp API
לאפליקציות פרטיות בסביבה שאינהGoogle Cloud , נדרש חיבור Cloud VPN או Cloud Interconnect בין סביבתGoogle Cloud לבין הסביבה שאינהGoogle Cloud שבה האפליקציה נמצאת. מידע נוסף על הגדרת חיבורים לרשת זמין במקורות המידע הבאים:
הגדרת סביבת מעטפת
כדי לייעל את תהליך ההגדרה ולקיים אינטראקציה עם ממשקי ה-API של שער הגישה המאובטח, צריך להגדיר את משתני הסביבה הבאים במעטפת העבודה.
- פרמטרים כלליים
PROJECT_ID=PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו נוצר שער גישה מאובטח.
-
- פרמטרים של שער גישה מאובטח
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 .
gcloud
כדי ליצור שער גישה מאובטח באמצעות gcloud, מריצים את הפקודה הבאה:
gcloud beyondcorp security-gateways create SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global \ --display-name="SECURITY_GATEWAY_DISPLAY_NAME" \ --service-discovery={}
REST
כדי ליצור שער גישה מאובטח באמצעות ה-API בארכיטקטורת REST, מריצים את הפקודה הבאה:
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d '{ "display_name": "SECURITY_GATEWAY_DISPLAY_NAME", "service_discovery": {} }' \ "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways?security_gateway_id=SECURITY_GATEWAY_ID"
הגדרת אפליקציית אינטרנט פרטית
כדי להגדיר משאבי אפליקציה ספציפיים בשער גישה מאובטח, צריך להגדיר את ההרשאות הדרושות ואת הגדרות הרשת כדי לאפשר קישוריות וניתוב תקין.
מתן הרשאות לחשבון השירות
כדי להפנות תעבורת נתונים לרשת VPC, צריך להעניק לשער הגישה המאובטח הרשאות מסוימות ב-IAM לחשבון השירות המקבל. הפעולה הזו מאפשרת לשער גישה מאובטח להגיע לאפליקציות הפרטיות שלכם, בין אם הן מתארחות ב- Google Cloud VPC או בסביבה שאינהGoogle Cloud ומחוברת דרך Cloud VPN או Cloud Interconnect.
כדי לתת הרשאות לחשבון השירות, מבצעים את הפעולות הבאות:
-
כדי לזהות את כתובת האימייל בחשבון של חשבון השירות שמקצה הרשאות, צריך לקבל את הפרטים של שער הגישה המאובטח. האימייל מופיע בשדה
delegatingServiceAccountשל התשובה.gcloud
gcloud beyondcorp security-gateways describe SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global
REST
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"
-
מגדירים משתני סביבה לחשבון השירות ולפרויקט של ה-VPC של היעד. כדי לקבל את כתובת האימייל בחשבון השירות, אפשר להשתמש בפקודה הבאה:
DELEGATING_SERVICE_ACCOUNT=`gcloud beyondcorp security-gateways describe SECURITY_GATEWAY_ID --project=PROJECT_ID --location=global --format="value(delegatingServiceAccount)"`
-
מקצים לחשבון השירות המקבל הרשאה בפרויקט ה-VPC הפרטי את התפקיד
roles/beyondcorp.upstreamAccessב-IAM. מחליפים אתgcloud projects add-iam-policy-binding
PRIVATE_VPC_PROJECT_ID\ --role=roles/beyondcorp.upstreamAccess \ --member=serviceAccount:DELEGATING_SERVICE_ACCOUNTPRIVATE_VPC_PROJECT_IDבמזהה הפרויקט של רשת ה-VPC שבה אפליקציית האינטרנט הפרטית פרוסה או שבה מוגדר Cloud VPN/Interconnect.
אחרי שמעניקים את התפקיד, צריך לחכות בערך שתי דקות עד שמדיניות ניהול הזהויות והרשאות הגישה (IAM) תיכנס לתוקף.
הגדרת ניתוב ברשת וכללים לחומת אש
כדי לאפשר לתעבורת נתונים משער גישה מאובטח להגיע לאפליקציות האינטרנט הפרטיות שלכם, צריך להגדיר כללים של חומת אש, ניתוב ברשת והגדרות DNS.
כללי חומת אש לאפליקציות ב- Google Cloud
אם אפליקציית האינטרנט הפרטית שלכם מתארחת ברשת ה- Google Cloud VPC, למשל במכונה וירטואלית ב-Compute Engine, בשירות Google Kubernetes Engine עם כתובת IP פנימית או מאחורי מאזן עומסים פנימי מסוג TCP/UDP, צריך להגדיר כללי חומת אש שלGoogle Cloud VPC. כך מאפשרים תעבורת TCP נכנסת מטווח כתובות ה-IP של שער הגישה המאובטח: 136.124.16.0/20.
gcloud
כדי ליצור כלל בחומת האש באמצעות gcloud, מריצים את הפקודה הבאה:
gcloud compute firewall-rules create FIREWALL_RULE_NAME \ --project=PRIVATE_VPC_PROJECT_ID \ --network=NETWORK_NAME \ --allow=tcp \ --source-ranges=136.124.16.0/20
מחליפים את מה שכתוב בשדות הבאים:
-
FIREWALL_RULE_NAME: שם לכלל חומת האש. -
PRIVATE_VPC_PROJECT_ID: מזהה הפרויקט שבו מתארחת רשת ה-VPC. -
NETWORK_NAME: השם של רשת ה-VPC שבה האפליקציה מתארחת.
כללי חומת אש לאפליקציות בסביבות לאGoogle Cloud
אם אפליקציית האינטרנט הפרטית שלכם נמצאת במרכז נתונים מקומי או ברשת של ספק ענן אחר, ומחוברת ל- Google CloudVPC שלכם באמצעות Cloud VPN או Cloud Interconnect, צריך להגדיר כללי חומת אש בחומת האש המקומית או באמצעי בקרה מקבילים לאבטחת רשת, כמו קבוצות אבטחה ורשימות ACL של רשת, בסביבת הענן האחרת. כך אפשר לאפשר תעבורת TCP נכנסת מטווח כתובות ה-IP של שער הגישה המאובטח: 136.124.16.0/20.
הגדרת ניתוב מסביבות שאינןGoogle Cloud לשער גישה מאובטח
כדי לאפשר תקשורת דו-כיוונית לאפליקציות פרטיות שמארחות בסביבות שאינן שלGoogle Cloud , כמו בסביבה מקומית או בעננים אחרים, הרשת החיצונית שלכם צריכה ליצור נתיב חזרה לטווח כתובות ה-IP של שער הגישה המאובטח הבא: 136.124.16.0/20.
מוודאים שהרשת הפרטית יכולה להגיע לטווח כתובות ה-IP של שער הגישה המאובטח דרך Cloud VPN או Cloud Interconnect:
ניתוב דינמי: אם אתם משתמשים בניתוח דינמי, כמו פרוטוקול Border Gateway (BGP) עם Cloud Router, ודאו ש-Cloud Router Google Cloud מפרסם באופן מפורש את טווחי כתובות ה-IP של שער גישה מאובטח למכשיר BGP המקומי. למרות ש-BGP מחליף באופן דינמי הרבה מסלולים, צריך לפרסם באופן מפורש את טווחי כתובות ה-IP של שער הגישה המאובטח.
gcloud
כדי לבדוק אם טווח המקורות מפורסם, מריצים את הפקודה הבאה:
gcloud compute routers list-bgp-routes ROUTER_NAME \ --peer=PEER_NAME \ --region=REGION \ --project=PROJECT_ID \ --route-direction=OUTBOUND \ --address-family=IPV4 \ --destination-range=136.124.16.0/20
מחליפים את מה שכתוב בשדות הבאים:
- ROUTER_NAME: השם של Cloud Router.
- PEER_NAME: השם של עמית ה-BGP.
- REGION: האזור שבו נמצא הנתב.
- PROJECT_ID: מזהה הפרויקט שמכיל את הנתב.
ניתוב סטטי: אם אתם משתמשים בניתוב סטטי, אתם צריכים להוסיף ידנית מסלולים לכל אחד מטווח כתובות ה-IP של שערים מאובטחים בציוד של הרשת המקומית, כמו הנתב או חומת האש. במסלולים הסטטיים האלה צריך לציין שתעבורת נתונים שמיועדת לטווח כתובות ה-IP של שער הגישה המאובטח צריכה להישלח דרך חיבור Cloud VPN או Cloud Interconnect.
כשמשתמשים בניתוב סטטי, Cloud VPN צריך להיות באחד מהאזורים הנתמכים הבאים:
africa-south1asia-east1asia-east2asia-northeast1asia-northeast2asia-northeast3asia-south1asia-south2asia-southeast1asia-southeast2asia-southeast3australia-southeast2europe-central2europe-north1europe-north2europe-southwest1europe-west1europe-west10europe-west12europe-west2europe-west3europe-west4europe-west6europe-west8europe-west9me-central1me-central2me-west1northamerica-northeast1northamerica-northeast2northamerica-south1southamerica-east1southamerica-west1us-central1us-central2us-east1us-east4us-east5us-east7us-south1us-west1us-west2us-west3us-west4us-west8
הגדרת DNS לפענוח שמות מארח פרטיים של שער גישה מאובטח
כדי ששער הגישה המאובטח יוכל לפתור את שמות המארחים של האפליקציות הפרטיות, רשת ה-VPCGoogle Cloud צריכה להיות מסוגלת לפתור את שמות המארחים באמצעות Cloud DNS. ההגדרה הספציפית של Cloud DNS תלויה במיקום שבו רשומות ה-DNS הפרטיות שלכם מתארחות באופן סמכותי:
אפליקציות ב- Google Cloud שמשתמשות בתחומים פרטיים של Cloud DNS: אם האפליקציות הפרטיות שלכם מתארחות ב- Google Cloud ורשומות ה-DNS שלהן מנוהלות בתחומים פרטיים של Cloud DNS שמשויכים לרשת ה-VPC שלכם, צריך לוודא שהתחומים מוגדרים בצורה נכונה ושיש אליהם גישה. השער המאובטח משתמש ביכולות הקיימות של Cloud DNS לפתרון בעיות ב-VPC.
אפליקציות בסביבות שאינןGoogle Cloud או שמשתמשות בשרתי DNS חיצוניים: אם האפליקציות הפרטיות שלכם נמצאות בסביבות שאינןGoogle Cloud(במערכות מקומיות או בעננים אחרים) או אם רשומות ה-DNS שלהן מנוהלות על ידי שרתי DNS חיצוניים לאזורים הפרטיים של Cloud DNS ב-VPC, אתם צריכים להגדיר את Cloud DNS להעברת שאילתות לדומיינים הפרטיים האלה. בדרך כלל זה כולל יצירה של אזורי העברה ב-Cloud DNS בתוך ה-VPC. האזורים האלה יפנו שאילתות DNS עבור הדומיינים הפרטיים שציינתם לשרתי ה-DNS הפרטיים הסמכותיים שלכם, כמו שרתי DNS מקומיים או שרתי DNS בענן אחר.
הוראות מפורטות להגדרת DNS זמינות במאמר יצירת אזור העברה.
יצירה של משאב אפליקציה
כדי לספק גישה לאפליקציית אינטרנט פרטית, צריך ליצור משאב אפליקציה כדי להגדיר את האפליקציה במסגרת של שער גישה מאובטח. במשאב הזה מוגדר איך שער גישה מאובטח מזהה תעבורת נתונים עבור האפליקציה שלכם (על סמך שם המארח) ולאן לנתב את תעבורת הנתונים הזו.
-
מגדירים את משתני הסביבה הנדרשים על ידי הרצת הפקודה הבאה:
מחליפים את מה שכתוב בשדות הבאים:APPLICATION_ID=
APPLICATION_IDAPP_DISPLAY_NAME="APP_DISPLAY_NAME" HOST_NAME=HOST_NAMEPRIVATE_NETWORK_RESOURCE_NAME=PRIVATE_NETWORK_RESOURCE_NAME-
APPLICATION_ID: מזהה ייחודי של משאב האפליקציה. -
APP_DISPLAY_NAME: השם שיוצג, שקריא לאנשים. -
HOST_NAME: שם המארח הראשי שהמשתמשים ניגשים אליו (לדוגמה,private.local). -
PRIVATE_NETWORK_RESOURCE_NAME: שם המשאב המלא של רשת ה-VPC (לדוגמה,projects/my-project/global/networks/my-network).
-
-
יוצרים את משאב האפליקציה.
console
כדי ליצור את משאב האפליקציה באמצעות מסוף Google Cloud :
- במסוף Google Cloud , נכנסים לדף שער הגישה המאובטח.
מעבר לשער מאובטח - כדי להוסיף אפליקציה, לוחצים על הוספת אפליקציה.
- בוחרים את סוג האפליקציה: אפליקציה פרטית.
- מזינים את פרטי האפליקציה:
- שם האפליקציה: מזינים שם, לדוגמה,
GitHub. - התאמה לדומיין: מזינים רשימה מופרדת בפסיקים של תבניות דומיין כדי להעביר את התנועה דרך שער גישה מאובטח. כוללים את היציאה בפורמט
domain:port. אפשר להשתמש בתווים כלליים לחיפוש (*). לדוגמה:github.com:443.
- שם האפליקציה: מזינים שם, לדוגמה,
- הגדרת רשת VPC:
- בפרויקט הנוכחי: אם רשת ה-VPC נמצאת בפרויקט הנוכחי, בוחרים את רשת ה-VPC מהתפריט הנפתח.
- בפרויקט אחר: אם רשת ה-VPC נמצאת בפרויקט אחר Google Cloud , מציינים את שם המשאב המלא של רשת ה-VPC, למשל
projects/my-project/global/networks/my-network.
- אופציונלי: הגדרת מדיניות יציאה: בוחרים אזור אחד או יותר Google Cloud מהתפריט הנפתח.
- אופציונלי: הגדרת מדיניות גישה: בוחרים מדיניות גישה של Access Context Manager. אפשר לדלג על השלב הזה במדריך הזה.
- כדי ליצור את משאב האפליקציה, לוחצים על Create.
gcloud
כדי ליצור את משאב האפליקציה באמצעות gcloud, מריצים את הפקודה הבאה:
gcloud beyondcorp security-gateways applications create APPLICATION_ID \ --project=PROJECT_ID \ --security-gateway=SECURITY_GATEWAY_ID \ --location=global \ --display-name="APP_DISPLAY_NAME" \ --endpoint-matchers="hostname=HOST_NAME,ports=[443]" \ --upstreams=network=name="PRIVATE_NETWORK_RESOURCE_NAME"
כדי לציין אזור יציאה (לדוגמה, כשמשתמשים בנתיבים סטטיים), מוסיפים את הדגל
--egress-regions:gcloud beyondcorp security-gateways applications create APPLICATION_ID \ --project=PROJECT_ID \ --security-gateway=SECURITY_GATEWAY_ID \ --location=global \ --display-name="APP_DISPLAY_NAME" \ --endpoint-matchers="hostname=HOST_NAME,ports=[443]" \ --upstreams=network=name="PRIVATE_NETWORK_RESOURCE_NAME",egressPolicy=regions=us-central1
מחליפים את
us-central1ב Google Cloud אזור (לדוגמה,europe-west1אוasia-northeast1) שתואם להגדרת הניתוב הסטטי האזורי. אם אין לכם דרישות ספציפיות לניתוב סטטי אזורי, אתם יכולים להשמיט את מדיניות היציאה מההגדרה.REST
כדי ליצור משאב אפליקציה באמצעות ה-API, מבצעים את השלבים הבאים:
יוצרים קובץ בשם
application.json.{ "display_name": "
APP_DISPLAY_NAME", "endpoint_matchers": [ {"hostname": "HOST_NAME", "ports": [443]} ], "upstreams": [{ "network": { "name": "PRIVATE_NETWORK_RESOURCE_NAME" } }] }כדי לציין אזור יציאה (לדוגמה, כשמשתמשים בניתוב סטטי), מוסיפים
egress_policyלהגדרת ה-upstream:{ "display_name": "
APP_DISPLAY_NAME", "endpoint_matchers": [ {"hostname": "HOST_NAME", "ports": [443]} ], "upstreams": [{ "network": { "name": "PRIVATE_NETWORK_RESOURCE_NAME" }, "egress_policy": { "regions": [ "us-central1" ] } }] }מחליפים את
us-central1ב Google Cloud אזור (לדוגמה,europe-west1אוasia-northeast1) שתואם להגדרת הניתוב הסטטי האזורי. אם אין לכם דרישות ספציפיות לניתוב סטטי אזורי, אתם יכולים להשמיט את מדיניות היציאה מההגדרה.מבצעים קריאה לשיטת ה-API
Create.curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d @application.json \ "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID/applications?application_id=APPLICATION_ID"
- במסוף Google Cloud , נכנסים לדף שער הגישה המאובטח.
הגדרת מדיניות גישה
אתם יכולים להחיל מדיניות גישה כדי לשלוט בגישה ברמת האפליקציה. אם לא מוגדרת מדיניות גישה, הגישה לאפליקציה נדחית כברירת מחדל.
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 של קובץ התצורה האוטומטית של שרת ה-proxy (PAC) או משנים את ההגדרה מתמיד להשתמש בתצורת proxy אוטומטית (PAC) המפורטת למטה למצב מתאים לרשת, כמו המשתמשים יכולים להגדיר.
- לוחצים על Save.
חוויית השימוש של משתמש הקצה
בסיום ההגדרה, משתמשי קצה שניגשים לאפליקציית ה-SaaS המוגנת מקבלים או נדחית הגישה שלהם בהתאם למדיניות הגישה שחלה על האפליקציה.
גישה לאפליקציה ב-Chrome
התוסף Chrome Enterprise Premium נדרש כדי להפנות את התנועה דרך השער המאובטח. התוסף מטפל באימות בין המשתמש לבין שער הגישה המאובטח. התוסף מותקן באופן אוטומטי דרך מדיניות הדומיין.
כשהמשתמשים ניגשים לאפליקציית ה-SaaS שהגדרתם, תעבורת הנתונים שלהם עוברת דרך שער הגישה המאובטח, שבודק אם הם עומדים במדיניות הגישה. אם המשתמשים עוברים את הבדיקות של מדיניות הגישה, הם מקבלים גישה לאפליקציה.
כשמדיניות ההרשאות דוחה את הגישה לאפליקציה דרך הדפדפן, המשתמשים מקבלים הודעה Access denied.