הסתרת נתונים בעמודה
במאמר הזה מוסבר איך להטמיע הסתרת נתונים כדי להסתיר באופן סלקטיבי מידע אישי רגיש. הטמעה של הסתרת נתונים מאפשרת לכם לספק רמות שונות של הרשאות גישה לקבוצות שונות של משתמשים. למידע כללי, קראו את המאמר מבוא להסתרת נתונים.
כדי להטמיע הסתרת מידע, מוסיפים מדיניות נתונים לעמודה. כדי להוסיף לעמודה מדיניות הסתרת נתונים, צריך לבצע את השלבים הבאים :
- יוצרים טקסונומיה עם תג מדיניות אחד לפחות.
- אופציונלי: מקצים את התפקיד "קורא ברמת פירוט גבוהה ב-Data Catalog" לחשבון משתמש אחד או יותר באחד או יותר מתגי המדיניות שיצרתם.
- אפשר ליצור עד שלוש כללי מדיניות נתונים לתג המדיניות, כדי למפות כללי הסתרה וחשבונות משתמשים (שמייצגים משתמשים או קבוצות) לתג הזה.
- הגדרת תג המדיניות בעמודה. כך מדיניות הנתונים שמשויכת לתג המדיניות ממופה לעמודה שנבחרה.
- מקצים את התפקיד "קורא נתונים מוסתרים ב-BigQuery" למשתמשים שצריכים גישה לנתונים מוסתרים. מומלץ להקצות את התפקיד "קורא נתונים מוסתרים ב-BigQuery" ברמת מדיניות הנתונים. אם מקצים את התפקיד ברמת הפרויקט או ברמה גבוהה יותר, המשתמשים מקבלים הרשאות לכל מדיניות הנתונים בפרויקט, מה שעלול לגרום לבעיות בגלל הרשאות עודפות.
כדי לעבוד עם מדיניות נתונים, אתם יכולים להשתמש במסוף Google Cloud או ב-BigQuery Data Policy API.
אחרי שתסיימו את השלבים האלה, משתמשים שיריצו שאילתות על העמודה יקבלו נתונים לא מוסתרים, נתונים מוסתרים או שגיאת גישה שנדחתה, בהתאם לקבוצות שאליהן הם שייכים ולתפקידים שהוקצו להם. למידע נוסף, קראו את המאמר איך התפקידים "צפייה בנתונים מוסתרים" ו"צפייה בנתונים ברזולוציה גבוהה" פועלים יחד.
אפשר גם להחיל מדיניות נתונים ישירות על עמודה. מידע נוסף זמין במאמר הסתרת נתונים באמצעות מדיניות נתונים ישירות בעמודה.
הסתרת נתונים באמצעות תגי מדיניות
שימוש בתגי מדיניות כדי להסתיר באופן סלקטיבי מידע אישי רגיש.
לפני שמתחילים
- נכנסים לחשבון 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, 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.-
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 .
ב-BigQuery Explorer, מאתרים ובוחרים את הטבלה שרוצים לעדכן. סכימת הטבלה של אותה טבלה נפתחת.
לוחצים על Edit Schema.
במסך Current schema, בוחרים את עמודת היעד ולוחצים על Add policy tag.
במסך 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). מידע נוסף מופיע במאמר שליטה בגישה באמצעות תגי משילות מידע.
עבודה עם מדיניות נתונים
אפשר ליצור, לעדכן ולמחוק מדיניות נתונים באמצעות 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
כדי להעניק בקרת גישה פרטנית למדיניות הנתונים, משתמשים בהצהרה 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.