VPC Service Controls ל-BigQuery
בדף הזה מוסבר איך לשפר את האבטחה של משאבי BigQuery באמצעות יצירת היקפים עם VPC Service Controls. ההיקפים האלה מגבילים את הגישה אל BigQuery וממנו, והם לא תלויים באמצעי הבקרה של ניהול הזהויות והרשאות הגישה (IAM). הם שימושיים בתרחישי השימוש הבאים:
- מניעת דליפת נתונים על ידי הגבלת הגישה למשאבים, למעט משאבים שהגישה אליהם מותרת במפורש בכללי תעבורת נתונים נכנסת (ingress) ותעבורת נתונים יוצאת (egress).
- טעינת נתונים בבטחה ל-BigQuery ממקורות או משירותים של צד שלישי, כמו Cloud Storage. Google Cloud
- שליטה בייצוא נתונים מ-BigQuery ל-Cloud Storage או ליעדים אחרים.
מידע נוסף זמין בסקירה כללית על VPC Service Controls.
לפני שמתחילים
- כדי לקבל את ההרשאות שנדרשות להגדרת גבולות גזרה לשירות, אפשר לעיין במאמר בנושא בקרת גישה באמצעות IAM ל-VPC Service Controls.
- צריכה להיות לכם מדיניות גישה לארגון. מידע נוסף זמין במאמר בנושא יצירת מדיניות גישה.
יצירת היקף האבטחה של VPC Service Controls
בדוגמה הבאה מוצג איך ליצור היקף של VPC Service Controls שמגביל את טווח כתובות ה-IP החיצוניות שיכולות לגשת לפרויקט BigQuery.
יוצרים רמת גישה שמאפשרת גישה רק לטווח מסוים של כתובות IP – למשל, כתובות שנמצאות ברשת ארגונית. כדי ליצור אותו, משתמשים בפקודה
gcloud access-context-manager levels create:echo """ - ipSubnetworks: - 162.222.181.0/24 - 2001:db8::/48 """ > level.yaml gcloud access-context-manager levels create ACCESS_LEVEL_NAME \ --title="TITLE" --basic-level-spec=level.yamlמחליפים את מה שכתוב בשדות הבאים:
-
ACCESS_LEVEL_NAME: המזהה של רמת הגישה TITLE: שם קריא לאנשים של גבולות גזרה לשירות
מידע נוסף על יצירת רמות גישה זמין בדוגמאות להטמעה.
-
מגנים על המשאב ב-BigQuery על ידי יצירה או עדכון של גבולות גזרה. בדוגמאות הבאות מוסבר איך להגן על פרויקט. לתרחישים אחרים לדוגמה, כמו הגנה על העברת נתונים מקטגוריית Cloud Storage בפרויקט אחר, אפשר לעיין בתרחישים לדוגמה.
יצירת היקף
כדי ליצור גבולות גזרה חדשים להגנה על פרויקט BigQuery, משתמשים בפקודה
gcloud access-context-manager perimeters create:echo """ - ingressFrom: identityType: ANY_IDENTITY sources: - accessLevel: accessPolicies/POLICY_NAME/accessLevels/ACCESS_LEVEL_NAME ingressTo: operations: - methodSelectors: - method: '*' serviceName: bigquery.googleapis.com resources: - '*' """ > ingress.yaml gcloud access-context-manager perimeters create BIGQUERY_PERIMETER --title="TITLE" \ --resources=BIGQUERY_PROJECT_NUMBER \ --restricted-services=bigquery.googleapis.com \ --ingress-policies=ingress.yaml --policy=POLICY_NAMEמחליפים את מה שכתוב בשדות הבאים:
-
POLICY_NAME: המזהה של מדיניות הגישה -
ACCESS_LEVEL_NAME: המזהה של רמת הגישה -
PERIMETER: המזהה של ההיקף TITLE: הכותרת הקצרה, שקריאה לאנשים, של גבולות הגזרה לשירות-
BIGQUERY_PROJECT_NUMBER: המזהה של פרויקט BigQuery -
POLICY_NAME: המזהה של מדיניות הגישה
עדכון של service perimeter
כדי לעדכן גבולות גזרה קיימים, משתמשים בפקודה
gcloud access-context-manager perimeters update:gcloud access-context-manager perimeters update BIGQUERY_PERIMETER --set-ingress-policies=ingress.yamlמחליפים את
BIGQUERY_PERIMETERבמזהה של ההיקף שמגן על משאב BigQuery.-
בדיקת ההיקף
לפני שאוכפים את גבולות הגזרה של VPC Service Controls, מומלץ לבדוק אותם. מידע נוסף זמין במאמרים בנושא מצב פרימטר לבדיקות של גבולות גזרה לשירות ושימוש במצב פרימטר לבדיקות לבדיקת מדיניות של תעבורת נתונים נכנסת (ingress) או תעבורת נתונים יוצאת (egress).
תרחישים לדוגמה
בדוגמאות הבאות לתרחישי שימוש מוסבר איך להגן על נתונים שנכנסים ל-BigQuery ויוצאים ממנו באמצעות VPC Service Controls.
שליחת שאילתות לנתונים בטבלה חיצונית מקטגוריה של Cloud Storage בפרויקט אחר
בדוגמאות הבאות מוצגות דרכים לאפשר תקשורת באופן סלקטיבי בין פרויקטים של BigQuery ו-Cloud Storage כשהם מופרדים על ידי גבולות.
כדי לאפשר לפרויקט BigQuery לגשת לפרויקט Cloud Storage, צריך לעדכן את כללי היציאה (egress) של גבולות הגזרה סביב פרויקט Cloud Storage:
echo """ - egressFrom: identityType: ANY_IDENTITY egressTo: operations: - methodSelectors: - method: '*' serviceName: storage.googleapis.com resources: - projects/BIGQUERY_PROJECT_NUMBER """ > egress.yaml gcloud access-context-manager perimeters update CLOUD_STORAGE_PERIMETER --policy=POLICY_NAME --set-egress-policies=egress.yamlמחליפים את מה שכתוב בשדות הבאים:
-
BIGQUERY_PROJECT_NUMBER: המזהה של פרויקט BigQuery -
CLOUD_STORAGE_PERIMETER: המזהה של ההיקף שמגן על משאבי Cloud Storage -
POLICY_NAME: המזהה של מדיניות הגישה
-
כדי לאפשר לפרויקט Cloud Storage לגשת לפרויקט BigQuery, צריך לעדכן את כללי היציאה (egress) של גבולות הגזרה סביב פרויקט BigQuery:
echo """ - egressFrom: identityType: ANY_IDENTITY egressTo: operations: - methodSelectors: - method: '*' serviceName: storage.googleapis.com resources: - projects/CLOUD_STORAGE_PROJECT_NUMBER """ > egress1.yaml gcloud access-context-manager perimeters update BIGQUERY_PERIMETER --policy=POLICY_NAME --set-egress-policies=egress1.yamlמחליפים את מה שכתוב בשדות הבאים:
-
CLOUD_STORAGE_PROJECT_NUMBER: המזהה של פרויקט Cloud Storage -
PERIMETER: המזהה של ההיקף -
POLICY_NAME: המזהה של מדיניות הגישה
-
אופציונלי: אם גבולות הגזרה שמגנים על פרויקט BigQuery כוללים את
storage.googleapis.comכשירות מוגבל, צריך לעדכן את כלל תעבורת הנתונים הנכנסת (ingress):echo """ - ingressFrom: identityType: ANY_IDENTITY sources: - accessLevel: accessPolicies/POLICY_NAME/accessLevels/ACCESS_LEVEL_NAME ingressTo: operations: - methodSelectors: - method: '*' serviceName: bigquery.googleapis.com - methodSelectors: - method: '*' serviceName: storage.googleapis.com resources: - '*' """ > ingress.yaml gcloud access-context-manager perimeters create BIGQUERY_PERIMETER --title="TITLE" \ --resources=BIGQUERY_PROJECT_NUMBER \ --restricted-services=bigquery.googleapis.com \ --ingress-policies=ingress.yaml --policy=POLICY_NAME
ייבוא וייצוא נתונים מ-BigQuery Omni
כדי להוסיף עוד שכבת הגנה, אתם יכולים להשתמש בגבולות גזרה של VPC Service Controls כדי להגביל את הגישה בין BigQuery Omni לבין שירות ענן חיצוני. מידע נוסף ודוגמאות זמינים במאמר בנושא הגדרת VPC Service Controls כשיוצרים טבלת BigLake ב-Azure Blob Storage.
המאמרים הבאים
- מידע נוסף על VPC Service Controls בשיתוף ב-BigQuery
- איך מגבילים את הגישה ל-BigQuery Omni באמצעות שירות ענן חיצוני
- הסבר על סיכונים ודרכי צמצום שלהם באמצעות VPC Service Controls
- מידע נוסף על תמיכה ב-VPC Service Controls ומגבלות ב-BigQuery
- פתרון בעיות נפוצות ב-BigQuery וב-VPC Service Controls.