הסתרת נתונים בעמודה
במסמך הזה מוסבר איך להטמיע הסתרת נתונים כדי להסתיר באופן סלקטיבי נתונים רגישים. הטמעה של הסתרת נתונים מאפשרת לכם לספק רמות שונות של הרשאות גישה לקבוצות שונות של משתמשים. למידע כללי, קראו את המאמר מבוא להסתרת נתונים.
כדי להטמיע הסתרת מידע, מוסיפים מדיניות נתונים לעמודה. כדי להוסיף לעמודה מדיניות הסתרת נתונים, צריך לבצע את השלבים הבאים :
- יוצרים טקסונומיה עם תג מדיניות אחד לפחות.
- אופציונלי: מקצים את התפקיד "קורא ברמת פירוט גבוהה של Data Catalog" לחשבון משתמש אחד או יותר, באחד או יותר מתגי המדיניות שיצרתם.
- אפשר ליצור עד שמונה כללי מדיניות נתונים לתג המדיניות, כדי למפות את כללי המיסוך ואת חשבונות המשתמשים (שמייצגים משתמשים או קבוצות) לתג הזה.
- הגדרת תג המדיניות בעמודה. כך מדיניות הנתונים שמשויכת לתג המדיניות ממופה לעמודה שנבחרה.
- מקצים את התפקיד "קורא נתונים מוסתרים ב-BigQuery" למשתמשים שצריכים גישה לנתונים מוסתרים. מומלץ להקצות את התפקיד "קורא נתונים מוסתרים ב-BigQuery" ברמת מדיניות הנתונים. אם מקצים את התפקיד ברמת הפרויקט או ברמה גבוהה יותר, המשתמשים מקבלים הרשאות לכל מדיניות הנתונים בפרויקט, מה שעלול לגרום לבעיות בגלל הרשאות עודפות.
כדי לעבוד עם מדיניות נתונים, אתם יכולים להשתמש במסוף Google Cloud או ב-BigQuery Data Policy API.
אחרי שתסיימו את השלבים האלה, משתמשים שיריצו שאילתות על העמודה יקבלו נתונים ללא אנונימיזציה, נתונים עם אנונימיזציה או שגיאת גישה שנדחתה, בהתאם לקבוצות שאליהן הם שייכים ולתפקידים שהוקצו להם. למידע נוסף, קראו את המאמר איך התפקידים "צפייה בנתונים מוסתרים" ו"צפייה בנתונים ברזולוציה גבוהה" פועלים יחד.
אפשר גם להחיל מדיניות נתונים ישירות על עמודה. מידע נוסף זמין במאמר הסתרת נתונים באמצעות כללי מדיניות נתונים ישירות בעמודה.
הסתרת נתונים באמצעות תגי מדיניות
להשתמש בתגי מדיניות כדי להסתיר באופן סלקטיבי מידע רגיש.
לפני שמתחילים
-
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, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.- BigQuery מופעל באופן אוטומטי בפרויקטים חדשים, אבל יכול להיות שתצטרכו להפעיל אותו בפרויקט קיים.
מפעילים את BigQuery API, אם הוא עדיין לא מופעל.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם אתם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, אתם יכולים לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים? - אם אתם יוצרים מדיניות נתונים שמפנה לשגרת הסתרה בהתאמה אישית, צרו את ה-UDF המשויך להסתרה כדי שיהיה זמין בשלבים הבאים.
יצירת טקסונומיות
למשתמש או לחשבון השירות שיוצרים טקסונומיה צריך להיות התפקיד "אדמין של תגי מדיניות ב-Data Catalog".
המסוף
- נכנסים לדף Policy tag taxonomies במסוף Google Cloud .
- לוחצים על Create taxonomy.
בדף New taxonomy:
- בשדה Taxonomy name, מזינים את שם הטקסונומיה שרוצים ליצור.
- בשדה Description, מזינים תיאור.
- אם צריך, משנים את הפרויקט שמופיע בקטע Project.
- אם צריך, משנים את המיקום שמופיע בקטע מיקום.
- בקטע Policy Tags, מזינים שם ותיאור לתג המדיניות.
- כדי להוסיף תג מדיניות צאצא לתג מדיניות, לוחצים על Add subtag.
- כדי להוסיף תג מדיניות חדש באותה רמה של תג מדיניות אחר, לוחצים על + Add policy tag.
- ממשיכים להוסיף תגי מדיניות ותגי מדיניות צאצאים לפי הצורך בטקסונומיה.
- כשמסיימים ליצור את תגי המדיניות להיררכיה, לוחצים על Create.
API
כדי להשתמש בטקסונומיות קיימות, צריך להפעיל את taxonomies.import במקום שני השלבים הראשונים בתהליך הבא.
- מפעילים את
taxonomies.createכדי ליצור טקסונומיה. - מפעילים את
taxonomies.policyTags.createכדי ליצור תג מדיניות.
עבודה עם תגי מדיניות
במאמר עבודה עם תגי מדיניות מוסבר איך לעבוד עם תגי מדיניות, למשל איך להציג או לעדכן אותם. שיטות מומלצות לשימוש בתגי מדיניות ב-BigQuery
יצירת מדיניות נתונים
לחשבון המשתמש או לחשבון השירות שיוצר את מדיניות הנתונים צריכות להיות ההרשאות bigquery.dataPolicies.create, bigquery.dataPolicies.setIamPolicy ו-datacatalog.taxonomies.get.
ההרשאות bigquery.dataPolicies.create ו-bigquery.dataPolicies.setIamPolicy כלולות בתפקידים "אדמין של מדיניות נתונים ב-BigQuery", "אדמין של BigQuery" ו"בעלים של נתונים ב-BigQuery".
ההרשאה datacatalog.taxonomies.get כלולה בתפקידים "אדמין ב-Data Catalog" ו"צפייה ב-Data Catalog".
אם אתם יוצרים מדיניות נתונים שמפנה לשגרת הסתרה בהתאמה אישית, אתם צריכים גם הרשאות לשגרה.
במקרה של הסתרה בהתאמה אישית, צריך להקצות למשתמשים את התפקיד "אדמין ב-BigQuery" או "הבעלים של נתוני BigQuery" כדי לוודא שיש להם את ההרשאות הנדרשות גם לשגרות וגם למדיניות הנתונים.
אפשר ליצור עד תשע מדיניות נתונים לתג מדיניות. אחת מהמדיניות האלה שמורה להגדרות של בקרת גישה ברמת העמודה.
המסוף
- נכנסים לדף Policy tag taxonomies במסוף Google Cloud .
- לוחצים על שם הטקסונומיה כדי לפתוח אותה.
- בוחרים תג מדיניות.
- לוחצים על ניהול מדיניות הנתונים.
- ב-Data Policy Name, מקלידים שם למדיניות הנתונים. שם מדיניות הנתונים חייב להיות ייחודי בפרויקט שבו נמצאת מדיניות הנתונים.
- בשדה Masking Rule, בוחרים כלל מיסוך מוגדר מראש או שגרת מיסוך בהתאמה אישית. אם אתם בוחרים שגרת הסתרה בהתאמה אישית, ודאו שיש לכם את ההרשאות
bigquery.routines.getו-bigquery.routines.listברמת הפרויקט. - בשדה Principal, מקלידים את השם של משתמש אחד או יותר, או קבוצה אחת או יותר, שרוצים לתת להם גישה מוסתרת לעמודה. חשוב לזכור שלכל המשתמשים והקבוצות שמזינים כאן מוקצה התפקיד "קורא נתונים מוסתרים ב-BigQuery".
- לוחצים על שליחה.
API
מבצעים קריאה ל-method
create. מעבירים משאבDataPolicyשעומד בדרישות הבאות:- השדה
dataPolicyTypeמוגדר ל-DATA_MASKING_POLICY. - השדה
dataMaskingPolicyמזהה את הכלל או השגרה של הסתרת המידע שבהם צריך להשתמש. - השדה
dataPolicyIdמספק שם למדיניות הנתונים, שהוא ייחודי לפרויקט שבו נמצאת מדיניות הנתונים.
- השדה
מפעילים את השיטה
setIamPolicyומעביריםPolicy. ה-Policyצריך לזהות את חשבונות המשתמשים שקיבלו גישה לנתונים המוסתרים, ולציין אתroles/bigquerydatapolicy.maskedReaderבשדהrole.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
הגדרת תגי מדיניות בעמודות
כדי להגדיר מדיניות נתונים בעמודה, צריך לצרף לעמודה את תג המדיניות שמשויך למדיניות הנתונים.
לחשבון המשתמש או לחשבון השירות שמגדיר תג מדיניות צריכות להיות ההרשאות 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 , המשתמשים צריכים את ההרשאה resourcemanager.organizations.get, שנכללת בתפקיד Organization Viewer. ההרשאה הזו לא נדרשת כשמשתמשים ב-API או בכלי שורת הפקודה bq.
המסוף
מגדירים את תג המדיניות על ידי שינוי הסכימה באמצעות מסוףGoogle Cloud .
פותחים את הדף BigQuery במסוף Google Cloud .
בחלונית Explorer ב-BigQuery, מאתרים את הטבלה שרוצים לעדכן ובוחרים אותה.
בחלונית הפרטים, לוחצים על Edit > Edit schema.
במסך Current schema, בוחרים את עמודת היעד ולוחצים על הוספת תג מדיניות.
במסך Add a policy tag, מאתרים ובוחרים את תג המדיניות שרוצים להחיל על העמודה.
לוחצים על בחירה. המסך אמור להיראות כך:
לוחצים על Save.
BQ
כותבים את הסכימה בקובץ מקומי.
bq show --schema --format=prettyjson \ project-id:dataset.table > schema.json
כאשר:
- 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 מחליפה את כל משאב הטבלה.
אכיפת בקרת גישה
כשיוצרים מדיניות נתונים לתג מדיניות, בקרת הגישה נאכפת באופן אוטומטי. כל העמודות שתג המדיניות הזה הוחל עליהן מחזירות נתונים מוסתרים בתגובה לשאילתות ממשתמשים עם התפקיד "קורא נתונים מוסתרים".
כדי להפסיק את האכיפה של בקרת הגישה, צריך קודם למחוק את כל כללי מדיניות הנתונים שמשויכים לתגי המדיניות בטקסונומיה. מידע נוסף על אכיפה של בקרת גישה
קבלת מדיניות נתונים
כדי לקבל מידע על מדיניות נתונים:
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
בדיקת הרשאות IAM במדיניות נתונים
כדי לקבל את מדיניות ה-IAM של מדיניות נתונים:
API
מפעילים את ה-method testIamPermissions.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Java 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. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
עדכון מדיניות הנתונים
למשתמש או לחשבון השירות שמעדכנים את מדיניות הנתונים צריכה להיות ההרשאה bigquery.dataPolicies.update.
אם אתם מעדכנים את תג המדיניות שמדיניות הנתונים משויכת אליו, אתם צריכים גם את ההרשאה datacatalog.taxonomies.get.
אם אתם מעדכנים את חשבונות המשתמשים שמשויכים למדיניות הנתונים, אתם צריכים את ההרשאה bigquery.dataPolicies.setIamPolicy.
ההרשאות bigquery.dataPolicies.update ו-bigquery.dataPolicies.setIamPolicy כלולות בתפקידים "אדמין של מדיניות נתונים ב-BigQuery", "אדמין של BigQuery" ו"בעלים של נתונים ב-BigQuery".
ההרשאה datacatalog.taxonomies.get כלולה בתפקידים "אדמין ב-Data Catalog" ו"צפייה ב-Data Catalog".
המסוף
- נכנסים לדף Policy tag taxonomies במסוף Google Cloud .
- לוחצים על שם הטקסונומיה כדי לפתוח אותה.
- בוחרים תג מדיניות.
- לוחצים על ניהול מדיניות הנתונים.
- אם רוצים, משנים את כלל המיסוך.
- אופציונלי: מוסיפים או מסירים חשבונות משתמשים.
- לוחצים על שליחה.
API
כדי לשנות את הכלל של הסתרת המידע, צריך להפעיל את ה-method patch ולהעביר משאב DataPolicy עם שדה dataMaskingPolicy מעודכן.
כדי לשנות את חשבונות המשתמשים שמשויכים למדיניות נתונים, מפעילים את ה-method setIamPolicy ומעבירים Policy שמעדכן את חשבונות המשתמשים שקיבלו גישה לנתונים מוסתרים.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
מחיקת מדיניות נתונים
לחשבון המשתמש או לחשבון השירות שיוצר את מדיניות הנתונים צריכה להיות ההרשאה bigquery.dataPolicies.delete. ההרשאה הזו כלולה בתפקידים "אדמין של מדיניות נתונים ב-BigQuery", "אדמין של BigQuery" ו"הבעלים של נתוני BigQuery".
המסוף
- נכנסים לדף Policy tag taxonomies במסוף Google Cloud .
- לוחצים על שם הטקסונומיה כדי לפתוח אותה.
- בוחרים תג מדיניות.
- לוחצים על ניהול מדיניות הנתונים.
- לוחצים על לצד מדיניות הנתונים שרוצים למחוק.
- לוחצים על שליחה.
- לוחצים על אישור.
API
כדי למחוק מדיניות נתונים, צריך להפעיל את ה-method delete.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
הסתרת נתונים באמצעות החלת מדיניות נתונים על עמודה
במקום ליצור תגי מדיניות, אתם יכולים ליצור מדיניות נתונים ולהחיל אותה ישירות על עמודה.
אפשר גם להטמיע הסתרת נתונים באמצעות תגי משילות מידע (data governance). מידע נוסף מופיע במאמר שליטה בגישה באמצעות תגי משילות מידע (data governance).
עבודה עם מדיניות נתונים
אפשר ליצור, לעדכן ולמחוק כללי מדיניות של נתונים באמצעות BigQuery Data Policy API. כדי להחיל מדיניות נתונים ישירות על עמודה, אי אפשר להשתמש בדף Policy tag taxonomies במסוף Google Cloud .
כדי לעבוד עם מדיניות נתונים, משתמשים במשאב v2.projects.locations.datapolicies.
יצירת מדיניות נתונים
לחשבון המשתמש או לחשבון השירות שיוצר את מדיניות הנתונים צריכה להיות ההרשאה bigquery.dataPolicies.create.
ההרשאה bigquery.dataPolicies.create כלולה בתפקידים "אדמין של מדיניות נתונים ב-BigQuery", "אדמין ב-BigQuery" ו"בעלי נתונים ב-BigQuery".
ההרשאה datacatalog.taxonomies.get כלולה בתפקידים "אדמין ב-Data Catalog" ו"צפייה ב-Data Catalog".
אם אתם יוצרים מדיניות נתונים שמפנה לשגרת הסתרה בהתאמה אישית, אתם צריכים גם הרשאות לשגרה.
אם אתם משתמשים בהסתרת מידע בהתאמה אישית, תנו למשתמשים את התפקיד "בעלי נתונים ב-BigQuery" כדי לוודא שיש להם את ההרשאות הנדרשות גם לשגרות וגם למדיניות הנתונים.
API
כדי ליצור מדיניות נתונים, צריך להפעיל את ה-method create. מעבירים משאב DataPolicy שעומד בדרישות הבאות:
- השדה
dataPolicyTypeמוגדר ל-DATA_MASKING_POLICYאו ל-RAW_DATA_ACCESS_POLICY. - השדה
dataMaskingPolicyמזהה את הכלל או השגרה של הסתרת המידע שבהם צריך להשתמש. - השדה
dataPolicyIdמספק שם למדיניות הנתונים, שהוא ייחודי בפרויקט שבו נמצאת מדיניות הנתונים.
SQL
כדי ליצור מדיניות נתונים עם גישה מוסתרת, משתמשים בהצהרה CREATE DATA_POLICY ומגדירים את הערך של data_policy_type ל-DATA_MASKING_POLICY:
CREATE[ OR REPLACE] DATA_POLICY [IF NOT EXISTS] `myproject.region-us.data_policy_name` OPTIONS ( data_policy_type="DATA_MASKING_POLICY", masking_expression="ALWAYS_NULL" );
כדי ליצור מדיניות נתונים עם גישה לנתונים גולמיים, משתמשים בהצהרה CREATE DATA_POLICY ומגדירים את הערך של data_policy_type ל-RAW_DATA_ACCESS_POLICY:
CREATE[ OR REPLACE] DATA_POLICY [IF NOT EXISTS] `myproject.region-us.data_policy_name` OPTIONS (data_policy_type="RAW_DATA_ACCESS_POLICY");
אם לא מציינים את הערך של data_policy_type, ערך ברירת המחדל הוא RAW_DATA_ACCESS_POLICY.
CREATE[ OR REPLACE] DATA_POLICY [IF NOT EXISTS] myproject.region-us.data_policy_name;- השדה
data_policy_typeמוגדר ל-DATA_MASKING_POLICYאו ל-RAW_DATA_ACCESS_POLICY. אי אפשר לעדכן את השדה הזה אחרי שיוצרים את מדיניות הנתונים. - השדה
masking_expressionמזהה את הכלל או השגרה של הסתרת המידע שבהם צריך להשתמש.
עדכון מדיניות הנתונים
למשתמש או לחשבון השירות שמעדכנים את מדיניות הנתונים צריכה להיות ההרשאה bigquery.dataPolicies.update.
ההרשאה bigquery.dataPolicies.update כלולה בתפקידים "אדמין של מדיניות נתונים ב-BigQuery", "אדמין ב-BigQuery" ו"בעלי נתונים ב-BigQuery".
API
כדי לשנות את הכלל של הסתרת המידע, צריך להפעיל את ה-method patch ולהעביר משאב DataPolicy עם שדה dataMaskingPolicy מעודכן.
SQL
משתמשים בהצהרה ALTER DATA_POLICY כדי לעדכן את הכללים של הסתרת המידע. לדוגמה:
ALTER DATA_POLICY `myproject.region-us.data_policy_name` SET OPTIONS ( data_policy_type="DATA_MASKING_POLICY", masking_expression="SHA256" );
אתם יכולים גם להעניק גישה לבקרת גישה פרטנית למדיניות הנתונים.
ההרשאות שצריך לתת כדי להעניק גישה למדיניות הנתונים באמצעות בקרת גישה מפורטת שונות מההרשאות שצריך לתת כדי לנהל את מדיניות הנתונים. כדי לשלוט בהרשאות של בקרת גישה מפורטת (FGAC), צריך לעדכן את השדה grantees של מדיניות הנתונים. כדי לשלוט בגישה למדיניות הנתונים, מגדירים את התפקידים ב-IAM באמצעות השיטה setIamPolicy.
כדי להגדיר מקבלי מענקים במדיניות נתונים, משתמשים ב-method v2 patch. כדי לנהל את ההרשאות של מדיניות הנתונים, משתמשים ב-method v1
setIamPolicy.
API
כדי להעניק גישה לבקרת גישה מפורטת (FGAC) למדיניות הנתונים, צריך להפעיל את ה-method patch ולהעביר משאב DataPolicy עם שדה grantees מעודכן.
SQL
כדי להעניק גישה לבקרת גישה מפורטת (FGAC) למדיניות הנתונים, משתמשים בהצהרה GRANT FINE_GRAINED_READ כדי להוסיף את grantees.
לדוגמה:
GRANT FINE_GRAINED_READ ON DATA_POLICY `myproject.region-us.data_policy_name` TO "principal://goog/subject/user1@example.com","principal://goog/subject/user2@example.com"
כדי לבטל את בקרת הגישה הפרטנית ממדיניות הנתונים, משתמשים בהצהרה REVOKE FINE_GRAINED_READ כדי להסיר את grantees.
לדוגמה:
REVOKE FINE_GRAINED_READ ON DATA_POLICY `myproject.region-us.data_policy_name` FROM "principal://goog/subject/user1@example.com","principal://goog/subject/user2@example.com"
מחיקת מדיניות נתונים
לחשבון המשתמש או לחשבון השירות שיוצר את מדיניות הנתונים צריכה להיות ההרשאה bigquery.dataPolicies.delete. ההרשאה הזו כלולה בתפקידים "אדמין של מדיניות נתונים ב-BigQuery", "אדמין של BigQuery" ו"הבעלים של נתוני BigQuery".
API
כדי למחוק מדיניות נתונים, צריך להפעיל את ה-method delete.
SQL
כדי למחוק מדיניות נתונים, משתמשים בהצהרה DROP DATA_POLICY:
DROP DATA_POLICY `myproject.region-us.data_policy_name`;
הקצאת מדיניות נתונים ישירות לעמודה
אתם יכולים להקצות מדיניות נתונים ישירות לעמודה בלי להשתמש בתגי מדיניות.
לפני שמתחילים
כדי לקבל את ההרשאות שנדרשות להקצאת מדיניות נתונים ישירות לעמודה, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM אדמין של מדיניות הנתונים ב-BigQuery (roles/bigquerydatapolicy.admin) בטבלה.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאות שנדרשות כדי להקצות מדיניות נתונים ישירות לעמודה. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי להקצות מדיניות נתונים ישירות לעמודה, נדרשות ההרשאות הבאות:
-
bigquery.tables.update -
bigquery.tables.setColumnDataPolicy -
bigquery.dataPolicies.attach
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
הקצאת מדיניות נתונים
כדי להקצות מדיניות נתונים ישירות לעמודה, מבצעים אחת מהפעולות הבאות:
SQL
כדי לצרף מדיניות נתונים לעמודה, משתמשים בהצהרות ה-DDL CREATE
TABLE, ALTER TABLE ADD
COLUMN או ALTER COLUMN SET
OPTIONS.
בדוגמה הבאה משתמשים בהצהרה CREATE TABLE ומגדירים מדיניות נתונים בעמודה:
CREATE TABLE myproject.table1 ( name INT64 OPTIONS (data_policies=["{'name':'myproject.region-us.data_policy_name1'}", "{'name':'myproject.region-us.data_policy_name2'}"]) );
בדוגמה הבאה משתמשים ב-ALTER COLUMN SET OPTIONS כדי להוסיף מדיניות נתונים לעמודה קיימת בטבלה:
ALTER TABLE myproject.table1 ALTER COLUMN column_name SET OPTIONS ( data_policies += ["{'name':'myproject.region-us.data_policy_name1'}", "{'name':'myproject.region-us.data_policy_name2'}"]);
API
כדי להקצות מדיניות נתונים לעמודה, מפעילים את ה-method patch בטבלה ומעדכנים את סכימת הטבלה באמצעות מדיניות הנתונים הרלוונטית.
ביטול ההקצאה של מדיניות נתונים
כדי לבטל את ההקצאה של מדיניות נתונים ישירות בעמודה, מבצעים אחת מהפעולות הבאות:
SQL
כדי להסיר מדיניות נתונים מעמודה, משתמשים בהצהרת ה-DDL ALTER COLUMN SET
OPTIONS.
בדוגמה הבאה נעשה שימוש ב-ALTER COLUMN SET OPTIONS כדי להסיר את כל כללי מדיניות הנתונים מעמודה קיימת בטבלה:
ALTER TABLE myproject.table1 ALTER COLUMN column_name SET OPTIONS ( data_policies = []);
בדוגמה הבאה משתמשים ב-ALTER COLUMN SET OPTIONS כדי להחליף את מדיניות הנתונים מעמודה קיימת בטבלה:
ALTER TABLE myproject.table1 ALTER COLUMN column_name SET OPTIONS ( data_policies = ["{'name':'myproject.region-us.new_data_policy_name'}"]);
API
כדי לבטל את ההקצאה של מדיניות נתונים לעמודה, מפעילים את השיטה patch בטבלה ומעדכנים את סכימת הטבלה כך שתהיה ריקה או שתכלול את מדיניות הנתונים המעודכנת.
מגבלות
הקצאה של מדיניות נתונים ישירות לעמודה כפופה למגבלות הבאות:
- צריך להשתמש במשאב
v2.projects.locations.datapolicies. - אי אפשר להחיל גם תגי מדיניות וגם מדיניות נתונים על אותה עמודה.
- אפשר לצרף לעמודה עד שמונה כללי מדיניות נתונים.
- טבלה יכולה להפנות ל-1,000 כללי מדיניות נתונים ייחודיים לכל היותר דרך העמודות שלה.
- שאילתה יכולה להפנות ל-2,000 כללי מדיניות נתונים לכל היותר.
- אפשר למחוק מדיניות נתונים רק אם אין עמודה בטבלה שמפנה אליה.
- אם למשתמש יש רק את התפקיד
maskedAccess, הקריאה ל-API שלtabledata.listתיכשל. - פעולות העתקה של טבלאות נכשלות בטבלאות שמוגנות על ידי מדיניות נתונים ברמת העמודה, אם למשתמש אין גישה לנתונים גולמיים.
- פעולות העתקה של טבלאות בין אזורים לא תומכות בטבלאות שמוגנות על ידי מדיניות נתונים של עמודות.
- מדיניות הנתונים של עמודות לא זמינה באזורים של BigQuery Omni.
- השאילתה ב-SQL מדור קודם נכשלת אם בטבלת היעד יש כללי מדיניות בנושא נתונים בעמודות.
- משימות טעינה לא תומכות בסכימות שצוינו על ידי המשתמש עם מדיניות נתונים של עמודות.
- אם אתם מחליפים טבלת יעד, המערכת מסירה מהטבלה את כל תגי המדיניות הקיימים, אלא אם אתם משתמשים בדגל
--destination_schemaכדי לציין סכימה עם מדיניות נתונים ברמת העמודה. - כברירת מחדל, הסתרת מידע לא תומכת בעמודות מחולקות למחיצות או באשכולות. זו מגבלה כללית של הסתרת נתונים, והיא לא ספציפית למדיניות נתונים של עמודות. הסתרת נתונים בעמודות מחולקות למחיצות או באשכולות יכולה להגדיל משמעותית את עלויות השאילתות.
- אי אפשר להקצות מדיניות נתונים ישירות לעמודה בטבלאות אובייקטים, בטבלאות חיצוניות שאינן של BigLake, בטבלאות חיצוניות של Apache Iceberg וב-Delta Lake.
- אפשר להעניק גישה פרטנית רק ברמת מדיניות הנתונים. מידע נוסף זמין במאמר עדכון מדיניות הנתונים.
- אי אפשר לבטל את ההקצאה של מדיניות הנתונים האחרונה שנותרה בעמודה באמצעות BigQuery Data Policy API. כדי לבטל את ההקצאה של מדיניות הנתונים האחרונה שנותרה בעמודה, אפשר להשתמש בהצהרת ה-DDL
ALTER COLUMN SET OPTIONS.