הגבלת הגישה באמצעות בקרת גישה ברמת העמודה
בדף הזה מוסבר איך להשתמש בבקרת גישה ברמת העמודה ב-BigQuery כדי להגביל את הגישה לנתוני BigQuery ברמת העמודה. מידע כללי על בקרת גישה ברמת העמודה זמין במאמר מבוא לבקרת גישה ברמת העמודה ב-BigQuery.
ההוראות בדף הזה מתייחסות לשימוש ב-BigQuery וב-Data Catalog.
כדי להגדיר תג מדיניות בעמודה, צריך לעדכן את סכימת הטבלה. אפשר להשתמש ב Google Cloud מסוף, בכלי שורת הפקודה של BigQuery וב-BigQuery API כדי להגדיר תג מדיניות בעמודה. בנוסף, אפשר ליצור טבלה, לציין את הסכימה ולציין תגי מדיניות בפעולה אחת, באמצעות הטכניקות הבאות:
- הפקודות
bq mkו-bq loadבכלי שורת הפקודה של bq. - ה-Method ב-API
tables.insert. - הדף Create table במסוף Google Cloud . אם משתמשים בGoogle Cloud מסוף, צריך לבחור באפשרות עריכה כטקסט כשמוסיפים או עורכים את הסכימה.
כדי לשפר את בקרת הגישה ברמת העמודה, אפשר להשתמש באנונימיזציה דינמית של נתונים. הסתרת נתונים מאפשרת לכם להסתיר מידע אישי רגיש על ידי החלפת הערך בפועל של העמודה בתוכן מסוג null, בערך ברירת מחדל או בערך מגובב.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Data Catalog and BigQuery Data Policy APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Data Catalog and BigQuery Data Policy APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.- BigQuery מופעל באופן אוטומטי בפרויקטים חדשים, אבל יכול להיות שתצטרכו להפעיל אותו בפרויקט קיים.
מפעילים את BigQuery API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידים
תפקידים והרשאות
יש כמה תפקידים שקשורים לתגי מדיניות למשתמשים ולחשבונות שירות.
- משתמשים או חשבונות שירות שמנהלים תגי מדיניות צריכים לקבל את התפקיד 'אדמין של תגי מדיניות' ב-Data Catalog. בעלי התפקיד Policy Tag Admin (אדמין של תגי מדיניות) יכולים לנהל טקסונומיות ותגי מדיניות, ויכולים להעניק או להסיר תפקידי IAM שמשויכים לתגי מדיניות.
- משתמשים או חשבונות שירות שמחילים בקרת גישה לבקרת גישה ברמת העמודה צריכים לקבל את התפקיד 'אדמין של BigQuery' או 'הבעלים של נתוני BigQuery'. התפקידים ב-BigQuery יכולים לנהל מדיניות נתונים, שמשמשת לאכיפת בקרת גישה בטקסונומיה.
- כדי לראות את הטקסונומיות ותגי המדיניות של כל הפרויקטים בארגון במסוףGoogle Cloud , המשתמשים צריכים לקבל את התפקיד 'צפייה בארגון'. אחרת, במסוף מוצגים רק טקסונומיות ותגי מדיניות שמשויכים לפרויקט שנבחר.
- משתמשים או חשבונות שירות שמבצעים שאילתות על נתונים שמוגנים על ידי בקרת גישה ברמת העמודה צריכים לקבל את התפקיד Data Catalog Fine-Grained Reader כדי לגשת לנתונים האלה.
מידע נוסף על כל התפקידים שקשורים לתגי מדיניות זמין במאמר תפקידים שמשמשים לבקרת גישה ברמת העמודה.
תפקיד האדמין של תגי מדיניות ב-Data Catalog
התפקיד 'אדמין של תגי מדיניות ב-Data Catalog' מאפשר ליצור ולנהל תגי מדיניות לנתונים.
כדי להעניק את התפקיד 'אדמין של תגי מדיניות', צריך לקבל את ההרשאה resourcemanager.projects.setIamPolicy בפרויקט שבו רוצים להעניק את התפקיד. אם אין לכם את ההרשאה resourcemanager.projects.setIamPolicy, בקשו מ-Project Owner להעניק לכם את ההרשאה או לבצע בשבילכם את השלבים הבאים.
נכנסים לדף IAM במסוף Google Cloud .
אם כתובת האימייל של המשתמש שרוצים להעניק לו את התפקיד מופיעה ברשימה, בוחרים את כתובת האימייל ולוחצים על עריכה. נפתחת החלונית עריכת הגישה. לוחצים על הוספת תפקיד נוסף.
אם כתובת האימייל של המשתמש לא מופיעה ברשימה, לוחצים על הוספה ומזינים את כתובת האימייל בתיבה New principals.
לוחצים על הרשימה הנפתחת Select a role (בחירת תפקיד).
בקטע By product or service (לפי מוצר או שירות), לוחצים על Data Catalog (קטלוג נתונים). בקטע Roles (תפקידים), לוחצים על Policy Tag Admin (אדמין של תגי מדיניות).
לוחצים על Save.
התפקידים BigQuery Data Policy Admin, BigQuery Admin ו-BigQuery Data Owner
התפקידים BigQuery Data Policy Admin, BigQuery Admin ו-BigQuery Data Owner יכולים לנהל מדיניות נתונים.
כדי להקצות אחד מהתפקידים האלה, צריך את ההרשאה resourcemanager.projects.setIamPolicy בפרויקט שבו רוצים להקצות את התפקיד. אם אין לכם את ההרשאה resourcemanager.projects.setIamPolicy, בקשו מ-Project Owner להעניק לכם את ההרשאה או לבצע בשבילכם את השלבים הבאים.
נכנסים לדף IAM במסוף Google Cloud .
אם כתובת האימייל של המשתמש שרוצים להעניק לו את התפקיד מופיעה ברשימה, בוחרים את כתובת האימייל ולוחצים על עריכה. אחר כך לוחצים על הוספת תפקיד נוסף.
אם כתובת האימייל של המשתמש לא מופיעה ברשימה, לוחצים על הוספה ומזינים את כתובת האימייל בתיבה New principals.
לוחצים על הרשימה הנפתחת Select a role (בחירת תפקיד).
לוחצים על BigQuery ואז על BigQuery Data Policy Admin (אדמין של מדיניות נתונים ב-BigQuery), על BigQuery Admin (אדמין של BigQuery) או על BigQuery Data Owner (הבעלים של נתוני BigQuery).
לוחצים על Save.
התפקיד 'צפייה בארגון'
התפקיד 'צפייה בארגון' מאפשר למשתמשים לצפות בפרטים על משאב הארגון שלהם. כדי להקצות את התפקיד הזה, צריכה להיות לכם ההרשאה resourcemanager.organizations.setIamPolicy בארגון.
תפקיד הקורא עם הרשאות גישה ברמת גרנולריות גבוהה ב-Data Catalog
משתמשים שזקוקים לגישה לנתונים שמוגנים באמצעות בקרת גישה ברמת העמודה צריכים את התפקיד Data Catalog Fine-Grained Reader או כל תפקיד אחר עם ההרשאה datacatalog.categories.fineGrainedGet.
התפקיד הזה מוקצה לחשבונות משתמשים כחלק מהגדרת תג מדיניות.
כדי להעניק למשתמש את התפקיד Fine-Grained Reader (קורא עם הרשאות גישה מפורטות) בתג מדיניות, צריכה להיות לכם ההרשאה datacatalog.taxonomies.setIamPolicy בפרויקט שמכיל את הטקסונומיה של תג המדיניות הזה. אם אין לכם datacatalog.taxonomies.setIamPolicy הרשאה, בקשו מ-Project Owner להעניק לכם את ההרשאה, או לבצע את הפעולה בשבילכם.
הוראות מפורטות זמינות במאמר בנושא הגדרת הרשאות לתגי מדיניות.
הגדרה של בקרת גישה ברמת העמודה
כדי להגדיר בקרת גישה ברמת העמודה, צריך לבצע את המשימות הבאות:
- יוצרים טקסונומיה של תגי מדיניות.
- משייכים חשבונות משתמשים לתגי המדיניות ומעניקים להם את התפקיד 'קריאה עם הרשאות גישה מדויקות' ב-Data Catalog.
- משייכים את תגי המדיניות לעמודות בטבלת BigQuery.
- אכיפת בקרת גישה בטקסונומיה שמכילה את תגי המדיניות.
יצירת טקסונומיות
למשתמש או לחשבון השירות שיוצרים טקסונומיה צריך להקצות את התפקיד Data Catalog Policy Tag Admin.
המסוף
- פותחים את הדף Policy tag taxonomies במסוףGoogle Cloud .
- לוחצים על יצירת טקסונומיה.
בדף New taxonomy:
- בשדה שם הטקסונומיה, מזינים את השם של הטקסונומיה שרוצים ליצור.
- בקטע תיאור, מזינים תיאור.
- אם צריך, משנים את הפרויקט שמופיע בקטע Project.
- אם צריך, משנים את המיקום שמופיע בקטע מיקום.
- בקטע תגי מדיניות, מזינים שם ותיאור של תג מדיניות.
- כדי להוסיף תג מדיניות משני לתג מדיניות, לוחצים על הוספת תג משני.
- כדי להוסיף תג מדיניות חדש באותה רמה של תג מדיניות אחר, לוחצים על + הוספת תג מדיניות.
- ממשיכים להוסיף תגי מדיניות ותגי מדיניות לילדים לפי הצורך לטקסונומיה.
- כשמסיימים ליצור תגי מדיניות להיררכיה, לוחצים על יצירה.
API
כדי להשתמש בטקסונומיות קיימות, קוראים ל-taxonomies.import במקום שני השלבים הראשונים בתהליך הבא.
- מתקשרים אל
taxonomies.createכדי ליצור טקסונומיה. - מתקשרים אל
taxonomies.policytag.createכדי ליצור תג מדיניות.
הגדרת הרשאות לתגי מדיניות
למשתמש או לחשבון השירות שיוצרים טקסונומיה צריך להקצות את התפקיד Data Catalog Policy Tag Admin.
המסוף
פותחים את הדף Policy tag taxonomies במסוףGoogle Cloud .
לוחצים על שם הטקסונומיה שמכילה את תגי המדיניות הרלוונטיים.
בוחרים תג מדיניות אחד או יותר.
אם חלונית המידע מוסתרת, לוחצים על הצגת חלונית המידע.
בחלונית המידע אפשר לראות את התפקידים וה-principals של תגי המדיניות שבחרתם. מוסיפים את התפקיד Policy Tags Admin לחשבונות שיוצרים ומנהלים תגי מדיניות. מוסיפים את התפקיד Fine-Grained Reader לחשבונות שאמורה להיות להם גישה לנתונים שמוגנים על ידי בקרת גישה ברמת העמודה. אפשר גם להשתמש בחלונית הזו כדי להסיר תפקידים מחשבונות או לשנות הרשאות אחרות.
לוחצים על Save.
API
קוראים ל-taxonomies.policytag.setIamPolicy כדי להעניק גישה לתג מדיניות על ידי הקצאת חשבונות משתמשים לתפקידים המתאימים.
הגדרת תגי מדיניות בעמודות
למשתמש או לחשבון השירות שמגדירים תג מדיניות צריכות להיות ההרשאות datacatalog.taxonomies.get ו-bigquery.tables.setCategory.
datacatalog.taxonomies.get כלולה בתפקידים 'אדמין של תגי מדיניות ב-Data Catalog' ו'צפייה בפרויקט'.
bigquery.tables.setCategory נכלל בתפקידים BigQuery Admin (roles/bigquery.admin) ו-BigQuery Data Owner (roles/bigquery.dataOwner).
כדי להציג טקסונומיות ותגי מדיניות בכל הפרויקטים בארגון ב-Google Cloud console, המשתמשים צריכים את ההרשאה resourcemanager.organizations.get, שנכללת בתפקיד 'צפייה בארגון'. לא נדרשת הרשאה כזו כשמשתמשים ב-API או בכלי bq של שורת הפקודה.
המסוף
מגדירים את תג המדיניות על ידי שינוי סכימה באמצעות מסוףGoogle Cloud .
פותחים את הדף BigQuery במסוף Google Cloud .
ב-BigQuery Explorer, מאתרים את הטבלה שרוצים לעדכן ובוחרים אותה. תיפתח סכימת הטבלה של הטבלה הזו.
לוחצים על עריכת סכימה.
במסך הסכימה הנוכחית, בוחרים את עמודת היעד ולוחצים על הוספת תג מדיניות.
במסך הוספת תג מדיניות, מאתרים את תג המדיניות שרוצים להחיל על העמודה ובוחרים אותו.
לוחצים על בחירה. המסך שלכם אמור להיראות כמו בדוגמה הבאה:
לוחצים על Save.
BQ
כותבים את הסכימה לקובץ מקומי.
bq show --schema --format=prettyjson \ project-id:dataset.table > schema.json
where:
- project-id הוא מזהה הפרויקט.
- dataset הוא שם מערך הנתונים שמכיל את הטבלה שאתם מעדכנים.
- table הוא השם של הטבלה שאתם מעדכנים.
משנים את schema.json כדי להגדיר תג מדיניות בעמודה. כדי להגדיר את הערך של השדה
namesשלpolicyTags, משתמשים בשם המשאב של תג המדיניות.[ ... { "name": "ssn", "type": "STRING", "mode": "REQUIRED", "policyTags": { "names": ["projects/project-id/locations/location/taxonomies/taxonomy-id/policyTags/policytag-id"] } }, ... ]
מעדכנים את הסכימה.
bq update \ project-id:dataset.table schema.json
API
אם יש לכם טבלאות קיימות, התקשרו למספר tables.patch. אם אתם רוצים ליצור טבלאות חדשות, התקשרו למספר tables.insert. משתמשים במאפיין schema של האובייקט Table שמעבירים כדי להגדיר תג מדיניות בהגדרת הסכימה. כדי לראות איך מגדירים תג מדיניות, אפשר לעיין בסכימה של דוגמה לשורת פקודה.
כשעובדים עם טבלה קיימת, עדיף להשתמש ב-method tables.patch, כי ה-method tables.update מחליף את כל משאב הטבלה.
דרכים אחרות להגדיר תגי מדיניות בעמודות
אפשר גם להגדיר תגי מדיניות כשמבצעים את הפעולות הבאות:
- אפשר להשתמש ב-
bq mkכדי ליצור טבלה. מעבירים סכימה לשימוש ביצירת הטבלה. - משתמשים ב-
bq loadכדי לטעון נתונים לטבלה. מעבירים סכימה לשימוש כשמעלים את הטבלה.
מידע כללי על סכימות זמין במאמר ציון סכימה.
אכיפת בקרת גישה
כדי להפעיל או להשבית את האכיפה של בקרת הגישה, פועלים לפי ההוראות הבאות.
כדי לאכוף את בקרת הגישה, צריך ליצור מדיניות נתונים. אם אתם אוכפים בקרת גישה באמצעותGoogle Cloud המסוף, הפעולה הזו מתבצעת בשבילכם. אם רוצים לאכוף בקרת גישה באמצעות BigQuery Data Policy API, צריך ליצור במפורש את מדיניות הנתונים.
למשתמש הראשי שמחיל את בקרת הגישה צריך להיות תפקיד אדמין של BigQuery או תפקיד בעלים של נתונים ב-BigQuery. לחשבון המשתמש צריך להיות גם התפקיד Data Catalog Admin או התפקיד Data Catalog Viewer.
כדי להפסיק את האכיפה של בקרת הגישה אם היא מופעלת, לוחצים על Enforce access control כדי להחליף את מצב הבקרה.
אם יש לכם מדיניות נתונים שמשויכת לתגי מדיניות כלשהם בטקסונומיה, אתם צריכים למחוק את כל מדיניות הנתונים בטקסונומיה לפני שתפסיקו את האכיפה של בקרת הגישה. אם מוחקים את מדיניות הנתונים באמצעות BigQuery Data Policy API, צריך למחוק את כל מדיניות הנתונים עם dataPolicyType של DATA_MASKING_POLICY. מידע נוסף מופיע במאמר בנושא מדיניות למחיקת נתונים.
יצירת מדיניות נתונים
כדי ליצור מדיניות בנושא נתונים:
המסוף
כדי לאכוף את בקרת הגישה, פועלים לפי השלבים הבאים:
פותחים את הדף Policy tag taxonomies במסוףGoogle Cloud .
לוחצים על הטקסונומיה שרוצים לאכוף את בקרת הגישה ברמת העמודה שלה.
אם האפשרות החלת בקרת גישה לא מופעלת, לוחצים על החלת בקרת גישה כדי להפעיל אותה.
API
משתמשים בשיטה create ומעבירים משאב DataPolicy שבו השדה dataPolicyType מוגדר לערך COLUMN_LEVEL_SECURITY_POLICY.
קבלת מדיניות בנושא נתונים
כדי לקבל מידע על מדיניות בנושא נתונים:
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
קבלת המדיניות של ניהול הזהויות והרשאות הגישה (IAM) עבור מדיניות נתונים
כדי לקבל את מדיניות IAM למדיניות נתונים:
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
הצגת רשימה של כללי מדיניות בנושא נתונים
כדי לפרט את כללי המדיניות בנושא נתונים:
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
מחיקת מדיניות בנושא נתונים
כדי למחוק מדיניות נתונים:
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
עבודה עם תגי מדיניות
בקטע הזה מוסבר איך להציג, לשנות ולמחוק תגי מדיניות.
צפייה בתגי מדיניות
כדי לראות את תגי המדיניות שיצרתם עבור טקסונומיה:
פותחים את הדף Policy tag taxonomies במסוףGoogle Cloud .
לוחצים על הטקסונומיה שרוצים לראות את תגי המדיניות שלה. בדף Taxonomies מוצגים תגי המדיניות בטקסונומיה.
הצגת תגי מדיניות בסכימה
כשבודקים את סכימת הטבלה, אפשר לראות את תגי המדיניות שחלים על הטבלה. אפשר לראות את הסכימה באמצעות Google Cloud המסוף, כלי שורת הפקודה של BigQuery, BigQuery API וספריות הלקוח. לפרטים על הצגת הסכימה, אפשר לעיין במאמר קבלת מידע על טבלה.
צפייה בהרשאות בתגי מדיניות
פותחים את הדף Policy tag taxonomies במסוףGoogle Cloud .
לוחצים על שם הטקסונומיה שמכילה את תגי המדיניות הרלוונטיים.
בוחרים תג מדיניות אחד או יותר.
אם חלונית המידע מוסתרת, לוחצים על הצגת חלונית המידע.
בחלונית המידע אפשר לראות את התפקידים וה-principals של תגי המדיניות שבחרתם.
עדכון הרשאות בתגי מדיניות
למשתמש או לחשבון השירות שיוצרים טקסונומיה צריך להקצות את התפקיד Data Catalog Policy Tag Admin.
המסוף
פותחים את הדף Policy tag taxonomies במסוףGoogle Cloud .
לוחצים על שם הטקסונומיה שמכילה את תגי המדיניות הרלוונטיים.
בוחרים תג מדיניות אחד או יותר.
אם חלונית המידע מוסתרת, לוחצים על הצגת חלונית המידע.
בחלונית המידע אפשר לראות את התפקידים וה-principals של תגי המדיניות שבחרתם. מוסיפים את התפקיד Policy Tags Admin לחשבונות שיוצרים ומנהלים תגי מדיניות. מוסיפים את התפקיד Fine-Grained Reader לחשבונות שאמורה להיות להם גישה לנתונים שמוגנים על ידי בקרת גישה ברמת העמודה. אפשר גם להשתמש בחלונית הזו כדי להסיר תפקידים מחשבונות או לשנות הרשאות אחרות.
לוחצים על Save.
API
קוראים ל-taxonomies.policytag.setIamPolicy כדי להעניק גישה לתג מדיניות על ידי הקצאת חשבונות משתמשים לתפקידים המתאימים.
אחזור שמות משאבים של תגי מדיניות
כדי להחיל את תג המדיניות על עמודה, צריך את שם המשאב של תג המדיניות.
כדי לאחזר את שם המשאב של תג המדיניות:
צפייה בתגי המדיניות של הטקסונומיה שמכילה את תג המדיניות.
מאתרים את תג המדיניות שרוצים להעתיק את שם המשאב שלו.
לוחצים על סמל העתקת שם המשאב של תג המדיניות.
מחיקת תגי מדיניות
מעדכנים את סכימת הטבלה כדי לנקות תג מדיניות מעמודה. אפשר להשתמש במסוףGoogle Cloud , בכלי שורת הפקודה של BigQuery, ובשיטת BigQuery API כדי לנקות תג מדיניות מעמודה.
המסוף
בדף Current schema (סכימה נוכחית), בקטע Policy tags (תגי מדיניות), לוחצים על X.
BQ
מאחזרים את הסכימה ושומרים אותה בקובץ מקומי.
bq show --schema --format=prettyjson \ project-id:dataset.table > schema.json
where:
- project-id הוא מזהה הפרויקט.
- dataset הוא שם מערך הנתונים שמכיל את הטבלה שאתם מעדכנים.
- table הוא השם של הטבלה שאתם מעדכנים.
משנים את schema.json כדי להסיר תג מדיניות מעמודה.
[ ... { "name": "ssn", "type": "STRING", "mode": "REQUIRED", "policyTags": { "names": [] } }, ... ]
מעדכנים את הסכימה.
bq update \ project-id:dataset.table schema.json
API
מתקשרים אל tables.patch ומשתמשים במאפיין schema כדי להסיר תג מדיניות בהגדרת הסכימה. כדי לראות איך מוחקים תג מדיניות, אפשר לעיין בסכימה של דוגמה לשורת פקודה.
השיטה המועדפת היא tables.patch, כי השיטה tables.update מחליפה את כל משאב הטבלה.
מחיקת תגי מדיניות
אפשר למחוק תג מדיניות אחד או יותר בטקסונומיה, או למחוק את הטקסונומיה ואת כל תגי המדיניות שהיא מכילה. מחיקה של תג מדיניות מסירה באופן אוטומטי את השיוך בין תג המדיניות לבין כל העמודות שהוא הוחל עליהן.
כשמוחקים תג מדיניות שמשויכת אליו מדיניות נתונים, יכול להיות שיחלפו עד 30 דקות עד שמדיניות הנתונים תימחק גם היא. אם רוצים למחוק את מדיניות הנתונים באופן מיידי, אפשר למחוק אותה ישירות.
כדי למחוק תג מדיניות אחד או יותר בטקסונומיה:
- פותחים את הדף Policy tag taxonomies במסוףGoogle Cloud .
- לוחצים על השם של הטקסונומיה שמכילה את התגים שרוצים למחוק.
- לוחצים על Edit.
- לוחצים על לצד תגי המדיניות שרוצים למחוק.
- לוחצים על Save.
- לוחצים על אישור.
כדי למחוק טקסונומיה שלמה:
- פותחים את הדף Policy tag taxonomies במסוףGoogle Cloud .
- לוחצים על השם של הטקסונומיה שמכילה את התגים שרוצים למחוק.
- לוחצים על מחיקת הטקסונומיה של תגי מדיניות.
- מקלידים את שם הטקסונומיה ולוחצים על מחיקה.
שאילתת נתונים עם בקרת גישה ברמת העמודה
אם למשתמש יש גישה למערך הנתונים והוא קיבל את התפקיד Fine-Grained Reader (קריאה עם הרשאות גישה מפורטות) בקטלוג הנתונים, נתוני העמודות זמינים למשתמש. המשתמש מריץ שאילתה כרגיל.
אם למשתמש יש גישה למערך נתונים אבל אין לו את התפקיד Fine-Grained Reader (קריאה עם הרשאות גישה מדויקות) ב-Data Catalog, נתוני העמודה לא יהיו זמינים למשתמש. אם משתמש כזה מפעיל את SELECT *, הוא מקבל שגיאה שמפרטת את העמודות שאין לו גישה אליהן. כדי לפתור את השגיאה, אפשר:
משנים את השאילתה כדי להחריג את העמודות שהמשתמש לא יכול לגשת אליהן. לדוגמה, אם למשתמש אין גישה לעמודה
ssn, אבל יש לו גישה לשאר העמודות, הוא יכול להריץ את השאילתה הבאה:SELECT * EXCEPT (ssn) FROM ...
בדוגמה שלמעלה, התנאי
EXCEPTמחריג את העמודהssn.צריך לבקש מאדמין של Data Catalog להוסיף את המשתמש כקורא עם הרשאות גישה ברמת הגרנולריות לנתונים בסיווג הנתונים הרלוונטי. בהודעת השגיאה מופיע השם המלא של תג המדיניות שהמשתמש צריך לקבל גישה אליו.
שאלות נפוצות
האם אבטחה ברמת העמודה ב-BigQuery פועלת בתצוגות?
כן. התצוגות נגזרות מטבלה בסיסית. אותו בקרת גישה ברמת העמודה בטבלה חלה כשניגשים לעמודות המוגנות דרך תצוגה.
יש שני סוגים של תצוגות ב-BigQuery: תצוגות לוגיות ותצוגות מורשות. שני סוגי התצוגות נגזרים מטבלת מקור, ושניהם עקביים עם בקרת הגישה ברמת העמודה של הטבלה.
מידע נוסף זמין במאמר בנושא תצוגות מורשות.
האם בקרת הגישה ברמת העמודה פועלת בעמודות STRUCT או RECORD?
כן. אפשר להחיל תגי מדיניות רק על שדות עלים, ורק השדות האלה מוגנים.
האם אפשר להשתמש גם ב-SQL מדור קודם וגם ב-GoogleSQL?
אתם יכולים להשתמש ב-GoogleSQL כדי לשלוח שאילתות לטבלאות שמוגנות על ידי בקרת גישה ברמת העמודה.
אם יש תגי מדיניות בטבלאות היעד, כל שאילתות SQL מדור קודם נדחות.
האם השאילתות נרשמות ביומן ב-Cloud Logging?
הבדיקה של תגי המדיניות מתועדת ביומן. מידע נוסף על בקרת גישה ברמת העמודה זמין במאמר בנושא יומני ביקורת.
האם העתקה של טבלה מושפעת מבקרת גישה ברמת העמודה?
כן. אי אפשר להעתיק עמודות אם אין לכם גישה אליהן.
הפעולות הבאות מאמתות הרשאות ברמת העמודה.
-
SELECTשאילתות עם טבלאות יעד - משימות של העתקת טבלאות
- משימות חילוץ נתונים (למשל, אל Cloud Storage)
כשמעתיקים נתונים לטבלה חדשה, האם תגי המדיניות מועברים אוטומטית?
ברוב המקרים, לא. אם מעתיקים את התוצאות של שאילתה לטבלה חדשה, לא מוקצים לטבלה החדשה באופן אוטומטי תגי מדיניות. לכן בטבלה החדשה אין בקרת גישה ברמת העמודה. הדבר נכון גם אם מייצאים נתונים ל-Cloud Storage.
יוצא מן הכלל הוא אם משתמשים בפעולת העתקה של טבלה. מכיוון שעבודות העתקה של טבלאות לא מבצעות טרנספורמציה של נתונים, תגי המדיניות מועברים אוטומטית לטבלאות היעד. החריג הזה לא חל על עבודות של העתקת טבלאות בין אזורים, כי עבודות כאלה לא תומכות בהעתקה של תגי מדיניות.
האם בקרת גישה ברמת העמודה תואמת לענן וירטואלי פרטי?
כן, בקרת גישה ברמת העמודה ו-VPC תואמים ומשלימים זה את זה.
ב-VPC נעשה שימוש ב-IAM כדי לשלוט בגישה לשירותים, כמו BigQuery ו-Cloud Storage. בקרת גישה ברמת העמודה מספקת אבטחה מפורטת של עמודות ספציפיות ב-BigQuery עצמו.
כדי לאכוף את השימוש ב-VPC בתגי מדיניות ובמדיניות נתונים לצורך בקרת גישה ברמת העמודה והסתרה דינמית של נתונים, צריך להגביל את ממשקי ה-API הבאים בפרימטר:
פתרון בעיות
אני לא רואה את התפקידים בקטלוג הנתונים
אם אתם לא רואים תפקידים כמו Data Catalog Fine-Grained Reader, יכול להיות שלא הפעלתם את Data Catalog API בפרויקט. במאמר לפני שמתחילים מוסבר איך להפעיל את Data Catalog API. התפקידים של Data Catalog אמורים להופיע כמה דקות אחרי שמפעילים את Data Catalog API.
אין לי אפשרות לראות את הדף Taxonomies
כדי לצפות בדף Taxonomies נדרשות הרשאות נוספות. לדוגמה, לתפקיד אדמין של תגי מדיניות ב-Data Catalog יש גישה לדף Taxonomies.
הפעלתי תגי מדיניות, אבל נראה שהם לא פועלים
אם אתם עדיין מקבלים תוצאות של שאילתות לגבי חשבון שלא אמורה להיות לו גישה, יכול להיות שהחשבון מקבל תוצאות ששמורות במטמון. במילים אחרות, אם הרצתם בעבר את השאילתה בהצלחה ואז הפעלתם תגי מדיניות, יכול להיות שאתם מקבלים תוצאות ממטמון תוצאות השאילתה. כברירת מחדל, תוצאות השאילתות נשמרות במטמון למשך 24 שעות. השאילתה אמורה להיכשל באופן מיידי אם משביתים את מטמון התוצאות. פרטים נוספים על שמירת נתונים במטמון זמינים במאמר ההשפעה של בקרת גישה ברמת העמודה.
בדרך כלל, העדכונים ב-IAM מופצים תוך כ-30 שניות. יכולות לחלוף עד 30 דקות עד שהשינויים בהיררכיית תגי המדיניות יתעדכנו.
אין לי הרשאה לקרוא מטבלה עם אבטחה ברמת העמודה
צריך תפקיד קריאה עם הרשאות גישה מדויקות או תפקיד קריאה עם הרשאות גישה מוגבלות ברמות שונות, כמו ארגון, תיקייה, פרויקט ותג מדיניות. התפקיד Fine-Grained Reader (קורא עם גישה פרטנית) מעניק גישה לנתונים גולמיים, והתפקיד Masked Reader (קורא עם גישה לנתונים מוסווים) מעניק גישה לנתונים מוסווים. אפשר להשתמש בכלי לפתרון בעיות ב-IAM כדי לבדוק את ההרשאה הזו ברמת הפרויקט.
הגדרתי בקרת גישה פרטנית בטקסונומיה של תגי מדיניות, אבל המשתמשים רואים נתונים מוגנים
כדי לפתור את הבעיה, צריך לוודא את הפרטים הבאים:
- בדף Policy tag taxonomy, מוודאים שהמתג Enforce access control (אכיפת בקרת גישה) נמצא במצב On (מופעל).
מוודאים שהשאילתות לא משתמשות בתוצאות של שאילתות שנשמרו במטמון. אם אתם משתמשים בכלי
bqשל ממשק שורת הפקודה כדי לבדוק את השאילתות, אתם צריכים להשתמש בפקודה--nouse_cache flagכדי להשבית את השמירה של שאילתות במטמון. לדוגמה:bq query --nouse_cache --use_legacy_sql=false "SELECT * EXCEPT (customer_pii) FROM my_table;"
שיקולים לגבי העברת פרויקטים
תגי מדיניות וטקסונומיות נמצאים בתוך Google Cloud ארגון מסוים ולא משויכים מחדש באופן אוטומטי כשמעבירים פרויקט לארגון חדש. אם מעבירים פרויקט שמשתמש בתגי מדיניות לצורך בקרת גישה ברמת העמודה לארגון אחר, יתרחשו הבעיות הבאות:
- אי אפשר יהיה יותר לנהל את תגי המדיניות בממשק המשתמש של מסוף Google Cloud בפרויקט שהועבר.
- לא תוכלו להחיל את תגי המדיניות האלה על עמודות חדשות בפרויקט שהועבר.
- יכול להיות שעדיין יופיעו אמצעי בקרה קיימים לגישה ברמת העמודה, אבל הקישור לטקסונומיה של המקור בארגון המקורי יישבר למטרות ניהול.
כדי לפתור את הבעיה, צוות התמיכה של Google Cloud צריך להתערב באופן ידני ולשייך מחדש את הטקסונומיה לארגון החדש. אם העברתם פרויקט עם תגי מדיניות ונתקלתם בבעיות האלה, אתם יכולים לפנות ל-Cloud Customer Care.