הגבלת הגישה באמצעות בקרת גישה ברמת העמודה
בדף הזה מוסבר איך להשתמש בבקרת גישה ברמת העמודה ב-BigQuery כדי להגביל את הגישה לנתונים ברמת העמודה. מידע כללי על בקרת גישה ברמת העמודה זמין במאמר מבוא לבקרת גישה ברמת העמודה ב-BigQuery.
ההוראות בדף הזה מתייחסות גם ל-BigQuery וגם ל-Data Catalog.
כדי להגדיר תג מדיניות בעמודה, צריך לעדכן את סכימת הטבלה. אפשר להגדיר תג מדיניות בעמודה באמצעות מסוף Google Cloud , כלי שורת הפקודה של BigQuery ו-BigQuery API. בנוסף, אתם יכולים ליצור טבלה, לציין את הסכימה ולציין תגי מדיניות בפעולה אחת, באמצעות השיטות הבאות:
- הפקודות
bq mkו-bq loadשל כלי שורת הפקודה של BigQuery. - ה-Method ב-API של
tables.insert. - הדף Create table במסוף Google Cloud . אם אתם משתמשים במסוףGoogle Cloud , אתם צריכים לבחור באפשרות Edit as text כשאתם מוסיפים או עורכים את הסכימה.
כדי לשפר את בקרת הגישה ברמת העמודה, אתם יכולים להשתמש בהסתרת מידע דינמית. הסתרת נתונים מאפשרת להסתיר נתונים רגישים על ידי החלפת הערך האמיתי של העמודה בערך null, בערך ברירת מחדל או בתוכן מגובב (hashed).
לפני שמתחילים
- נכנסים לחשבון 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). איך מקצים תפקידים
תפקידים והרשאות
יש כמה תפקידים שקשורים לתגי מדיניות של משתמשים וחשבונות שירות.
- למשתמשים או לחשבונות שירות שמנהלים תגי מדיניות צריך להיות התפקיד "אדמין של תגי מדיניות ב-Data Catalog". התפקיד "אדמין של תגי מדיניות" מאפשר לנהל טקסונומיות ותגי מדיניות, ולהקצות או להסיר תפקידי IAM שמשויכים לתגי מדיניות.
- משתמשים או חשבונות שירות שאוכפים בקרת גישה ברמת העמודה צריכים להיות עם התפקיד "אדמין ב-BigQuery" או "בעלים של נתונים ב-BigQuery". התפקידים ב-BigQuery יכולים לנהל את מדיניות הנתונים, שמשמשת לאכיפת בקרת הגישה בטקסונומיה.
- כדי לראות טקסונומיות ותגי מדיניות של כל הפרויקטים בארגון במסוףGoogle Cloud , המשתמשים צריכים את התפקיד Organization Viewer. אחרת, במסוף יוצגו רק טקסונומיות ותגי מדיניות שמשויכים לפרויקט שנבחר.
- כדי לגשת לנתונים שמוגנים באמצעות בקרת גישה ברמת העמודה, משתמשים או חשבונות שירות ששולחים שאילתות לנתונים האלה צריכים להיות בעלי התפקיד "קורא עם הרשאות גישה מפורטות" ב-Data Catalog.
למידע נוסף על כל התפקידים שקשורים לתגי מדיניות, קראו את המאמר תפקידים שמשמשים לבקרת גישה ברמת העמודה.
התפקיד "אדמין של תגי מדיניות ב-Data Catalog"
התפקיד "אדמין של תגי מדיניות ב-Data Catalog" יכול ליצור ולנהל תגי מדיניות של נתונים.
כדי להקצות את התפקיד "אדמין של תגי מדיניות", אתם צריכים את ההרשאה resourcemanager.projects.setIamPolicy בפרויקט שבו אתם רוצים להקצות את התפקיד. אם אין לכם את ההרשאה resourcemanager.projects.setIamPolicy, בקשו מ-Project Owner לתת לכם את ההרשאה או לבצע בשבילכם את השלבים הבאים.
נכנסים לדף IAM במסוף Google Cloud .
אם כתובת האימייל של המשתמש שרוצים לתת לו את התפקיד מופיעה ברשימה, בוחרים את כתובת האימייל ולוחצים על Edit. החלונית Edit access נפתחת. לוחצים על הוספת תפקיד.
אם כתובת האימייל של המשתמש לא מופיעה ברשימה, לוחצים על Add ומזינים את כתובת האימייל בתיבה New principals.
לוחצים על הרשימה הנפתחת Select a role.
בקטע By product or service, לוחצים על Data Catalog. ב-Roles, לוחצים על Policy Tag Admin.
לוחצים על Save.
התפקידים "אדמין של מדיניות נתונים ב-BigQuery", "אדמין של BigQuery" ו"בעלים של נתונים ב-BigQuery"
משתמשים עם התפקידים "אדמין של מדיניות הנתונים ב-BigQuery", "אדמין של BigQuery" ו"בעלים של נתונים ב-BigQuery" יכולים לנהל את מדיניות הנתונים.
כדי להקצות את אחד מהתפקידים האלה, אתם צריכים את ההרשאה resourcemanager.projects.setIamPolicy בפרויקט שבו אתם רוצים להקצות את התפקיד. אם אין לכם את ההרשאה resourcemanager.projects.setIamPolicy, בקשו מ-Project Owner לתת לכם את ההרשאה או לבצע בשבילכם את השלבים הבאים.
נכנסים לדף IAM במסוף Google Cloud .
אם כתובת האימייל של המשתמש שרוצים לתת לו את התפקיד מופיעה ברשימה, בוחרים את כתובת האימייל ולוחצים על Edit. ואז לוחצים על Add another role.
אם כתובת האימייל של המשתמש לא מופיעה ברשימה, לוחצים על Add ומזינים את כתובת האימייל בתיבה New principals.
לוחצים על הרשימה הנפתחת Select a role.
לוחצים על BigQuery ואז על BigQuery Data Policy Admin (אדמין של מדיניות הנתונים ב-BigQuery), על BigQuery Admin (אדמין של BigQuery) או על BigQuery Data Owner (הבעלים של נתוני BigQuery).
לוחצים על Save.
התפקיד "צפייה בארגון"
התפקיד Organization Viewer מאפשר למשתמשים לראות פרטים על משאב הארגון. כדי להקצות את התפקיד הזה, אתם צריכים את ההרשאה resourcemanager.organizations.setIamPolicy ברמת הארגון.
התפקיד "קורא ברמת פירוט גבוהה ב-Data Catalog"
משתמשים שצריכים גישה לנתונים שמוגנים באמצעות בקרת גישה ברמת העמודה, צריכים את התפקיד "קורא עם הרשאות גישה מפורטות" ב-Data Catalog או כל תפקיד אחר שכולל את ההרשאה datacatalog.categories.fineGrainedGet.
התפקיד הזה מוקצה לחשבונות משתמשים כחלק מההגדרה של תג מדיניות.
כדי להקצות למשתמש את התפקיד "קורא עם הרשאות גישה מפורטות" בתג מדיניות, צריכה להיות לכם ההרשאה datacatalog.taxonomies.setIamPolicy בפרויקט שמכיל את הטקסונומיה של תג המדיניות הזה. אם אין לכם את ההרשאה datacatalog.taxonomies.setIamPolicy, בקשו מבעלי הפרויקט לתת לכם את ההרשאה או לבצע את הפעולה בשבילכם.
להוראות, קראו את המאמר הגדרת הרשאות בתגי מדיניות.
הגדרת בקרת גישה ברמת העמודה
כדי להגדיר בקרת גישה ברמת העמודה, צריך לבצע את הפעולות הבאות:
- יוצרים טקסונומיה של תגי מדיניות.
- משייכים את חשבונות המשתמשים לתגי המדיניות ונותנים להם את התפקיד "קורא ברמת פירוט גבוהה ב-Data Catalog".
- משייכים את תגי המדיניות לעמודות בטבלה ב-BigQuery.
- אוכפים את בקרת הגישה בטקסונומיה שמכילה את תגי המדיניות.
יצירת טקסונומיות
למשתמש או לחשבון השירות שיוצרים טקסונומיה צריך להקצות את התפקיד "אדמין של תגי מדיניות ב-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כדי ליצור תג מדיניות.
הגדרת הרשאות לתגי מדיניות
למשתמש או לחשבון השירות שיוצרים טקסונומיה צריך להקצות את התפקיד "אדמין של תגי מדיניות ב-Data Catalog".
המסוף
נכנסים לדף Policy tag taxonomies במסוף Google Cloud .
לוחצים על השם של הטקסונומיה שמכילה את תגי המדיניות הרלוונטיים.
בוחרים תג מדיניות אחד או יותר.
אם חלונית המידע מוסתרת, לוחצים על הצגת חלונית המידע.
בחלונית המידע אפשר לראות את התפקידים ואת חשבונות המשתמשים של תגי המדיניות שנבחרו. מוסיפים את התפקיד אדמין של תגי מדיניות לחשבונות שיוצרים ומנהלים תגי מדיניות. מוסיפים את התפקיד קורא עם הרשאות גישה פרטניות לחשבונות שאמורים לקבל גישה לנתונים שמוגנים באמצעות בקרת גישה ברמת העמודה. בחלונית הזו אפשר גם להסיר תפקידים מחשבונות או לשנות הרשאות אחרות.
לוחצים על 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 , המשתמשים צריכים את ההרשאה resourcemanager.organizations.get, שנכללת בתפקיד Organization Viewer. ההרשאה הזו לא נדרשת כשמשתמשים ב-API או בכלי שורת הפקודה bq.
המסוף
מגדירים את תג המדיניות על ידי שינוי הסכימה באמצעות מסוףGoogle Cloud .
פותחים את הדף BigQuery במסוף Google Cloud .
ב-BigQuery Explorer, מאתרים ובוחרים את הטבלה שרוצים לעדכן. סכימת הטבלה של אותה טבלה נפתחת.
לוחצים על 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 מחליפה את כל משאב הטבלה.
דרכים נוספות להגדיר תגי מדיניות בעמודות
אפשר גם להגדיר תגי מדיניות כשמבצעים את הפעולות הבאות:
- משתמשים ב-
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
משתמשים ב-method 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. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Java 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. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
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. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
מחיקת מדיניות נתונים
כדי למחוק מדיניות נתונים:
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. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
עבודה עם תגי מדיניות
בקטע הזה מוסבר איך להציג, לשנות ולמחוק תגי מדיניות.
הצגת תגי מדיניות
כדי לראות את תגי המדיניות שיצרתם לטקסונומיה:
- נכנסים לדף Policy tag taxonomies במסוף Google Cloud .
- לוחצים על הטקסונומיה שרוצים לראות את תגי המדיניות שלה. בדף Taxonomies מוצגים תגי המדיניות בטקסונומיה.
הצגת תגי מדיניות בסכימה
אפשר לראות את תגי המדיניות שחלים על טבלה כשבודקים את הסכימה של הטבלה. אפשר לראות את הסכימה באמצעות מסוף Google Cloud , כלי שורת הפקודה של BigQuery, BigQuery API וספריות הלקוח. במאמר קבלת מידע על טבלאות מוסבר איך להציג את הסכימה.
הרשאות צפייה בתגי מדיניות
- נכנסים לדף Policy tag taxonomies במסוף Google Cloud .
- לוחצים על השם של הטקסונומיה שמכילה את תגי המדיניות הרלוונטיים.
- בוחרים תג מדיניות אחד או יותר.
- אם חלונית המידע מוסתרת, לוחצים על הצגת חלונית המידע.
- בחלונית המידע אפשר לראות את התפקידים ואת חשבונות המשתמשים של תגי המדיניות שנבחרו.
עדכון ההרשאות בתגי מדיניות
למשתמש או לחשבון השירות שיוצרים טקסונומיה צריך להקצות את התפקיד "אדמין של תגי מדיניות ב-Data Catalog".
המסוף
נכנסים לדף Policy tag taxonomies במסוף Google Cloud .
לוחצים על השם של הטקסונומיה שמכילה את תגי המדיניות הרלוונטיים.
בוחרים תג מדיניות אחד או יותר.
אם חלונית המידע מוסתרת, לוחצים על הצגת חלונית המידע.
בחלונית המידע אפשר לראות את התפקידים ואת חשבונות המשתמשים של תגי המדיניות שנבחרו. מוסיפים את התפקיד אדמין של תגי מדיניות לחשבונות שיוצרים ומנהלים תגי מדיניות. מוסיפים את התפקיד קורא עם הרשאות גישה פרטניות לחשבונות שאמורים לקבל גישה לנתונים שמוגנים באמצעות בקרת גישה ברמת העמודה. בחלונית הזו אפשר גם להסיר תפקידים מחשבונות או לשנות הרשאות אחרות.
לוחצים על Save.
API
מפעילים את taxonomies.policytag.setIamPolicy כדי לתת גישה לתג מדיניות באמצעות הקצאת חשבונות משתמשים לתפקידים המתאימים.
אחזור שמות המשאבים של תגי המדיניות
כשמחילים את תג המדיניות על עמודה, צריך את שם המשאב של תג המדיניות.
כדי לאחזר את שם המשאב של תג המדיניות:
מציגים את תגי המדיניות של הטקסונומיה שמכילה את תג המדיניות.
מאתרים את תג המדיניות שאת שם המשאב שלו רוצים להעתיק.
לוחצים על הסמל Copy policy tag resource name.
מחיקת תגי מדיניות
כדי להסיר תג מדיניות מעמודה, מעדכנים את סכימת הטבלה. כדי להסיר תג מדיניות מעמודה, אתם יכולים להשתמש במסוףGoogle Cloud , בכלי שורת הפקודה bq ובשיטת BigQuery API.
המסוף
בדף Current schema, בקטע תגי מדיניות, לוחצים על X.
BQ
אחזור הסכימה ושמירה שלה בקובץ מקומי.
bq show --schema --format=prettyjson \ project-id:dataset.table > schema.json
כאשר:
- 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 כדי למחוק תג מדיניות בהגדרת הסכימה. בסכימה לדוגמה של שורת הפקודה מוסבר איך למחוק תג מדיניות.
ה-method tables.update מחליפה את כל משאב הטבלה, ולכן עדיף להשתמש ב-method tables.patch.
מחיקת תגי מדיניות
אתם יכולים למחוק תג מדיניות אחד או יותר בטקסונומיה, או למחוק את הטקסונומיה ואת כל תגי המדיניות שהיא מכילה. כשמוחקים תג מדיניות, השיוך בין תג המדיניות לבין העמודות שהוא הוחל עליהן מוסר באופן אוטומטי.
כשמוחקים תג מדיניות שמשויכת אליו מדיניות נתונים, יכול להיות שיחלפו עד 30 דקות עד שגם מדיניות הנתונים תימחק. אם אתם רוצים למחוק את מדיניות הנתונים באופן מיידי, אתם יכולים למחוק אותה ישירות.
כדי למחוק תג מדיניות אחד או יותר בטקסונומיה:
- נכנסים לדף Policy tag taxonomies במסוף Google Cloud .
- לוחצים על שם הטקסונומיה שמכילה את התגים שרוצים למחוק.
- לוחצים על Edit.
- לוחצים על לצד תגי המדיניות שרוצים למחוק.
- לוחצים על Save.
- לוחצים על אישור.
כדי למחוק טקסונומיה שלמה:
- נכנסים לדף Policy tag taxonomies במסוף Google Cloud .
- לוחצים על שם הטקסונומיה שמכילה את התגים שרוצים למחוק.
- לוחצים על Delete Policy Tag Taxonomy.
- מקלידים את שם הטקסונומיה ולוחצים על מחיקה.
שליחת שאילתות על נתונים עם בקרת גישה ברמת העמודה
אם למשתמש יש גישה לקבוצת נתונים ויש לו את התפקיד 'קורא ברמת פירוט גבוהה' ב-Data Catalog, נתוני העמודה זמינים למשתמש. המשתמש מריץ שאילתה כרגיל.
אם למשתמש יש גישה למערך הנתונים אבל אין לו את התפקיד "קורא ברמת פירוט גבוהה" ב-Data Catalog, נתוני העמודה לא זמינים למשתמש. אם משתמש כזה מריץ את SELECT *, הוא מקבל שגיאה שמפרטת את העמודות שאין לו גישה אליהן. כדי לפתור את השגיאה, אתם יכולים:
משנים את השאילתה כך שלא תכלול את העמודות שלמשתמש אין גישה אליהן. לדוגמה, אם למשתמש אין גישה לעמודה
ssn, אבל יש לו גישה לשאר העמודות, הוא יכול להריץ את השאילתה הבאה:SELECT * EXCEPT (ssn) FROM ...
בדוגמה שלמעלה, הסעיף
EXCEPTמחריג את העמודהssn.מבקשים מאדמין של Data Catalog להוסיף את המשתמש כקורא ברמת פירוט גבוהה של Data Catalog לסיווג הנתונים הרלוונטי. בהודעת השגיאה מופיע השם המלא של תג המדיניות שהמשתמש צריך גישה אליו.
שאלות נפוצות
האם אבטחה ברמת העמודה ב-BigQuery פועלת בתצוגות?
כן. תצוגות נגזרות מטבלה בסיסית. אותה בקרת גישה ברמת העמודה בטבלה חלה כשניגשים לעמודות המוגנות דרך תצוגה.
יש שני סוגים של תצוגות ב-BigQuery: תצוגות לוגיות ותצוגות מורשות. שני סוגי התצוגות נגזרים מטבלת מקור, ושניהם תואמים לבקרת הגישה ברמת העמודה של הטבלה.
מידע נוסף זמין במאמר תצוגות מורשות.
האם בקרת הגישה ברמת העמודה פועלת בעמודות STRUCT או RECORD?
כן. אפשר להחיל תגי מדיניות רק על שדות העלים, ורק השדות האלה מוגנים.
אפשר להשתמש גם ב-SQL מדור קודם וגם ב-GoogleSQL?
אתם יכולים להשתמש ב-GoogleSQL כדי לשלוח שאילתות לטבלאות שמוגנות באמצעות בקרת גישה ברמת העמודה.
כל שאילתת SQL מדור קודם נדחית אם יש תגי מדיניות בטבלאות היעד.
האם השאילתות נרשמות ב-Cloud Logging?
הבדיקה של תגי המדיניות מתועדת ב-Logging. למידע נוסף, קראו על יומני ביקורת לבקרת גישה ברמת העמודה.
האם העתקת טבלה מושפעת מבקרת גישה ברמת העמודה?
כן. אי אפשר להעתיק עמודות אם אין לכם גישה אליהן.
הפעולות הבאות מאמתות את ההרשאות ברמת העמודה.
SELECTשאילתות עם טבלאות יעד- משימות העתקה של טבלאות
- משימות של חילוץ נתונים (לדוגמה, ל-Cloud Storage)
כשמעתיקים נתונים לטבלה חדשה, האם תגי המדיניות מופצים באופן אוטומטי?
ברוב המקרים לא. אם מעתיקים את התוצאות של שאילתה לטבלה חדשה, לא מוקצים לטבלה החדשה תגי מדיניות באופן אוטומטי. לכן, בטבלה החדשה אין בקרת גישה ברמת העמודה. זה נכון גם אם מייצאים נתונים ל-Cloud Storage.
החריג היחיד הוא אם משתמשים במשימת העתקה של טבלה. מכיוון שבמשימות של העתקת טבלאות לא מתבצעת טרנספורמציה של נתונים, תגי המדיניות מועברים באופן אוטומטי לטבלאות היעד. החריג הזה לא חל על משימות של העתקת טבלאות בין אזורים, כי במשימות כאלה אי אפשר להעתיק תגי מדיניות.
האם בקרת גישה ברמת העמודה תואמת לענן וירטואלי פרטי (VPC)?
כן, בקרת גישה ברמת העמודה ו-VPC תואמים ומשלימים זה את זה.
ב-VPC משתמשים ב-IAM כדי לשלוט בגישה לשירותים כמו BigQuery ו-Cloud Storage. בקרת גישה ברמת העמודה מספקת אבטחה מפורטת של עמודות ספציפיות ב-BigQuery עצמו.
כדי לאכוף את VPC על תגי מדיניות וכללי מדיניות נתונים לבקרת גישה ברמת העמודה ולהסתרת מידע דינמית, צריך להגביל את ממשקי ה-API הבאים באזור:
פתרון בעיות
בקטעים הבאים מוסבר איך לפתור בעיות שקשורות לבקרת גישה ברמת העמודה ולתגי מדיניות של Data Catalog.
אני לא רואה את התפקידים של Data Catalog
אם אתם לא רואים תפקידים כמו Data Catalog Fine-Grained Reader, יכול להיות שלא הפעלתם את Data Catalog API בפרויקט. בקטע לפני שמתחילים מוסבר איך מפעילים את Data Catalog API. התפקידים של Data Catalog מופיעים כמה דקות אחרי שמפעילים את Data Catalog API.
אני לא מצליח/ה לראות את הדף "טקסונומיות"
כדי לראות את הדף Policy tag taxonomies במסוףGoogle Cloud , צריך הרשאות נוספות. לדוגמה, לתפקיד אדמין של תגי מדיניות ב-Data Catalog יש גישה לדף Taxonomies.
אכפתי תגי מדיניות, אבל נראה שזה לא עובד
אם אתם עדיין מקבלים תוצאות של שאילתות לחשבון שלא אמורה להיות לו גישה, יכול להיות שהחשבון מקבל תוצאות שנשמרו במטמון. באופן ספציפי, אם הרצתם בעבר את השאילתה בהצלחה ואז אכפתם תגי מדיניות, יכול להיות שאתם מקבלים תוצאות ממטמון תוצאות השאילתה. כברירת מחדל, תוצאות השאילתות נשמרות במטמון למשך 24 שעות. השאילתה תיכשל באופן מיידי אם תשביתו את המטמון של התוצאות. למידע נוסף על שמירה במטמון, ראו ההשפעה של בקרת גישה ברמת העמודה.
באופן כללי, עדכוני IAM מופצים תוך כ-30 שניות. יכול להיות שיחלפו עד 30 דקות עד שהשינויים בהיררכיית תגי המדיניות יתעדכנו.
אין לי הרשאה לקרוא מטבלה עם אבטחה ברמת העמודה
אתם צריכים את התפקיד "קורא עם הרשאות גישה מפורטות" או את התפקיד "קורא עם הרשאות גישה מוסתרות" ברמות שונות, כמו ארגון, תיקייה, פרויקט ותג מדיניות. התפקיד "קורא עם הרשאות גישה פרטניות" מעניק גישה לנתונים גולמיים, והתפקיד "קורא עם הרשאות גישה לנתונים מוסתרים" מעניק גישה לנתונים מוסתרים. אפשר להשתמש בפותר הבעיות שקשורות למדיניות של IAM כדי לבדוק את ההרשאה הזו ברמת הפרויקט.
הגדרתי בקרת גישה מפורטת (FGAC) בטקסונומיה של תגי המדיניות, אבל המשתמשים רואים נתונים מוגנים
כדי לפתור את הבעיה, צריך לוודא את הפרטים הבאים:
- בדף Policy tag taxonomies ב-Security center של BigQuery, מוודאים שהמתג Enforce access control במצב On.
מוודאים שהשאילתות לא משתמשות בתוצאות של שאילתות שנשמרו במטמון. אם אתם משתמשים בכלי שורת הפקודה של BigQuery כדי לבדוק את השאילתות, השתמשו בדגל
--nouse_cacheכדי להשבית את המטמון של השאילתות. לדוגמה:bq query --nouse_cache --use_legacy_sql=false "SELECT * EXCEPT (customer_pii) FROM my_table;"
שיקולים בהעברת פרויקטים
תגי מדיניות וטקסונומיות נמצאים בתוך Google Cloud ארגון ספציפי, והם לא משויכים מחדש באופן אוטומטי כשמעבירים פרויקט לארגון חדש. אם מעבירים לארגון אחר פרויקט שמשתמש בתגי מדיניות לבקרת גישה ברמת העמודה, מתרחשות הבעיות הבאות:
- אי אפשר יותר לנהל את תגי המדיניות במסוף Google Cloud בפרויקט שהועבר.
- אי אפשר להחיל את תגי המדיניות האלה על עמודות חדשות בפרויקט שהועבר.
- יכול להיות שעדיין יופיעו אמצעי בקרת גישה קיימים ברמת העמודה, אבל הקישור לטקסונומיה של המקור בארגון המקורי לא יפעל למטרות ניהול.
כדי לפתור את הבעיה, צוות התמיכה של Google Cloud צריך לשייך מחדש באופן ידני את הטקסונומיה לארגון החדש. אם העברתם פרויקט עם תגי מדיניות ונתקלתם בבעיות האלה, פנו ל-Cloud Customer Care.