הגדרות של כללי כניסה לבקרת גישה מבוססת-הקשר מאפשרות גישה למשאבים על סמך מאפייני לקוח כמו מקור הרשת (כתובת IP או רשת VPC), סוג הזהות (חשבון שירות או משתמש), זהות ונתוני מכשיר. הגישה מוגדרת על ידי כללים לתעבורת נתונים נכנסת (ingress).
סקירה כללית על כללים לתעבורת נתונים נכנסת ויוצאת מופיעה במאמר כללים לתעבורת נתונים נכנסת ויוצאת.
הוראות להחלת מדיניות של כללים לתעבורת נתונים נכנסת (ingress) ויוצאת (egress) מפורטות במאמר הגדרת מדיניות לתעבורת נתונים נכנסת ויוצאת.
דוגמאות להגדרות של תרחישי שימוש בבקרת גישה מבוססת-הקשר
בקטע הזה מופיעות דוגמאות לבקרת גישה מבוססת-הקשר:
- מתן אפשרות למשתמשים אנושיים לגשת ל-BigQuery מהאינטרנט, ורק לחשבונות שירות ספציפיים לגשת מטווח IP מוגדר
- מתן אפשרות לעובדים להריץ שאילתות ב-BigQuery ממכשירים מהימנים דרך האינטרנט, ולחשבון שירות ספציפי לטעון נתונים באופן פרטי לקטגוריה של Cloud Storage (נתוני מקור)
מתן אפשרות למשתמשים אנושיים לגשת ל-BigQuery מהאינטרנט, ורק לחשבונות שירות ספציפיים לגשת מטווח IP מוגדר

נניח שהגדרתם את ההיקף הבא, שמופיע ברשימת ההיקפים באמצעות gcloud:
name: accessPolicies/222/servicePerimeters/Example
status:
resources:
- projects/111
restrictedServices:
- bigquery.googleapis.com
- storage.googleapis.com
vpcAccessibleServices:
enableRestriction: true
allowedServices:
- RESTRICTED_SERVICES
title: Example
אנחנו גם מניחים שרמת גישה בשם CorpDatacenters הוגדרה. בדוגמה הזו, CorpDatacenters היא רשימת היתרים של טווח כתובות IP של מרכזי נתונים ארגוניים, שחשבונות שירות יכולים לגשת אליהם.
זוהי מדיניות כיוונית שמאפשרת גישה לכל בני האדם ולסט ספציפי של חשבונות שירות, ומוגבלת לסט מסוים של כתובות IP (מוגדרת לפי רמת גישה):
echo """
- ingressFrom:
identities:
- serviceAccount:my-sa@my-project.iam.gserviceaccount.com
sources:
- accessLevel: accessPolicies/222/accessLevels/CorpDatacenters
ingressTo:
operations:
- serviceName: bigquery.googleapis.com
methodSelectors:
- method: \"*\"
resources:
- \"*\"
- ingressFrom:
identityType: ANY_USER_ACCOUNT
sources:
- accessLevel: \"*\"
ingressTo:
operations:
- serviceName: bigquery.googleapis.com
methodSelectors:
- method: \"*\"
resources:
- \"*\"
""" > ingress.yaml
מריצים את הפקודה הבאה כדי להחיל את כללי הכניסה:
gcloud access-context-manager perimeters update Example --set-ingress-policies=ingress.yaml
איך מאפשרים לעובדים להריץ שאילתות ב-BigQuery ולטעון נתונים באופן פרטי לקטגוריה של Cloud Storage

נניח שהגדרתם את ההיקף הבא, שמופיע ברשימת ההיקפים באמצעות gcloud:
name: accessPolicies/222/servicePerimeters/Example
status:
resources:
- projects/111
restrictedServices:
- bigquery.googleapis.com
- storage.googleapis.com
vpcAccessibleServices:
enableRestriction: true
allowedServices:
- RESTRICTED_SERVICES
title: Example
זוהי מדיניות חד-כיוונית שמאפשרת לאנשים לגשת לתצוגות של BigQuery ממכשירים מהימנים (באמצעות רמת גישה) ולחשבון שירות ספציפי פרטי לגשת ל-Cloud Storage מרשת VPC מורשית:
echo """
- ingressFrom:
identities:
- serviceAccount:my-sa@my-project.iam.gserviceaccount.com
sources:
- resource: projects/111
ingressTo:
operations:
- serviceName: storage.googleapis.com
methodSelectors:
- method: google.storage.Write
- method: google.storage.objects.create
resources:
- \"*\"
- ingressFrom:
identityType: ANY_SERVICE_ACCOUNT
sources:
- resource: //compute.googleapis.com/projects/my-network-project/global/networks/top-tier-vpc-network
ingressTo:
operations:
- serviceName: storage.googleapis.com
methodSelectors:
- method: google.storage.Write
- method: google.storage.objects.create
resources:
- \"*\"
- ingressFrom:
identityType: ANY_USER_ACCOUNT
sources:
- accessLevel: accessPolicies/222/accessLevels/TrustedDevices
ingressTo:
operations:
- serviceName: bigquery.googleapis.com
methodSelectors:
- permission: bigquery.tables.getData
resources:
- \"*\"
""" > ingress.yaml
מריצים את הפקודה הבאה כדי להחיל את כללי הכניסה:
gcloud access-context-manager perimeters update Example --set-ingress-policies=ingress.yaml
מידע על מגבלות של רשתות VPC כשמשתמשים ברשתות VPC בגבולות גזרה לשירות זמין במאמר מגבלות של רשתות VPC.