שליטה בגישה באמצעות תגים
במאמר הזה נסביר איך להשתמש בתגים במשאבי BigQuery כדי לשלוט בבקרת גישה.
תג הוא צמד מפתח/ערך שאפשר לצרף ל Google Cloudמשאב. אפשר להשתמש בתגים עם BigQuery בדרכים הבאות:
- כללי מדיניות להענקה או לדחייה מותנית: אתם יכולים לצרף תגים לטבלאות, לתצוגות ולמערכי נתונים ב-BigQuery ולהשתמש בניהול זהויות והרשאות גישה (IAM) כדי להעניק תפקידים באופן מותנה או לדחות גישה (גרסת Preview) למשאבים האלה על סמך התגים שלהם. מידע נוסף על מדיניות דחייה
- בקרת גישה ברמת העמודה: אפשר לצרף תגי משילות מידע (בגרסת טרום-השקה) לעמודות בטבלה ולהשתמש בהם עם מדיניות נתונים כדי להגביל את הגישה לנתונים בעמודה.
אפשר לצרף תגים ישירות למשאב, או שניתן לקבל אותם בירושה ממשאבי הורה ב Google Cloud היררכיית המשאבים.
במסמך הזה נתמקד בשימוש בתגים עם IAM כדי להעניק או לשלול גישה לטבלאות, לתצוגות ולמערכי נתונים ב-BigQuery בתנאים מסוימים.
מידע נוסף על השימוש בתגים בהיררכיית המשאבים של Google Cloudזמין במאמר סקירה כללית על תגים.
כדי להעניק הרשאות למשאבי BigQuery רבים שקשורים זה לזה בו-זמנית, כולל משאבים שעדיין לא קיימים, כדאי להשתמש בתנאי IAM.
מגבלות
תגי טבלה לא נתמכים בטבלאות BigQuery Omni, בטבלאות במערכי נתונים מוסתרים או בטבלאות זמניות. אין תמיכה בתגי מערכי נתונים במערכי נתונים של BigQuery Omni. בנוסף, שאילתות חוצות-אזורים ב-BigQuery Omni לא משתמשות בתגים במהלך בדיקות של אמצעי בקרת גישה לטבלאות באזורים אחרים.
אפשר לצרף עד 50 תגים לטבלה או למערך נתונים.
לכל הטבלאות שאליהן מתייחסת שאילתת wildcard צריכים להיות בדיוק אותם מפתחות ותוויות.
משתמשים עם גישה מותנית למערך נתונים או לטבלה לא יכולים לשנות את ההרשאות למשאב הזה דרך מסוף Google Cloud . אפשר לשנות הרשאות רק באמצעות כלי bq וממשק BigQuery API.
שירותים מסוימים מחוץ ל-BigQuery לא יכולים לאמת כראוי תנאים של תגי IAM. אם תנאי התג חיובי, כלומר משתמש מקבל תפקיד במשאב רק אם למשאב יש תג מסוים, הגישה למשאב נדחית בלי קשר לתגים שמצורפים אליו. אם תנאי התג שלילי, כלומר משתמש מקבל תפקיד במשאב רק אם למשאב אין תג מסוים, תנאי התג לא נבדק.
התפקידים הנדרשים
צריך להקצות תפקידי IAM שמעניקים למשתמשים את ההרשאות הנדרשות לביצוע כל משימה במסמך הזה.
שני התפקידים הבאים שמוגדרים מראש ב-IAM כוללים את כל ההרשאות הנדרשות ב-BigQuery:
- בעלים של נתונים ב-BigQuery (
roles/bigquery.dataOwner) - אדמין של BigQuery (
roles/bigquery.admin)
ההרשאות של מנהל המשאבים להוספה ולהסרה של תגים כלולות בתפקיד Tag User (roles/resourcemanager.tagUser).
ההרשאות הנדרשות
כדי להשתמש בתגים ב-BigQuery, אתם צריכים את ההרשאות הבאות:
| פעולה | ממשקי BigQuery (API, CLI, Console) ו-Terraform | Cloud Resource Manager API או gcloud |
|---|---|---|
| צירוף תג לטבלה או לתצוגה |
|
|
| הסרת תג מטבלה או מתצוגה |
|
|
| צירוף תג לקבוצת נתונים |
|
|
| הסרת תג מקבוצת נתונים |
|
|
כדי להציג את רשימת המפתחות של התגים ואת ערכי המפתחות במסוף Google Cloud , צריך את ההרשאות הבאות:
כדי לראות את רשימת מפתחות התגים שמשויכים לארגון או לפרויקט הורה, צריך את ההרשאה
resourcemanager.tagKeys.listברמת ההורה של מפתח התג ואת ההרשאהresourcemanager.tagKeys.getלכל מפתח תג. כדי לראות את רשימת מפתחות התגים במסוף BigQuery, לוחצים על שם מערך הנתונים ואז על עריכת הפרטים, או לוחצים על שם הטבלה או התצוגה ואז על פרטים > עריכת הפרטים.כדי לראות את רשימת הערכים של תגים שמשויכים לארגון או לפרויקט אב, צריך את ההרשאה
resourcemanager.tagValues.listברמת האב של ערך התג ואת ההרשאהresourcemanager.tagValues.getלכל ערך תג. כדי לראות את רשימת הערכים של מפתחות התגים במסוף BigQuery, לוחצים על שם מערך הנתונים ואז על עריכת הפרטים, או לוחצים על שם הטבלה או התצוגה ואז על פרטים > עריכת הפרטים.
כדי להשתמש בתגים ב-Cloud Resource Manager API או ב-gcloud, אתם צריכים את ההרשאות הבאות:
- כדי לראות רשימה של התגים שמצורפים לטבלה או לתצוגה באמצעות Cloud Resource Manager API או ה-CLI של gcloud, אתם צריכים את הרשאת
bigquery.tables.listTagBindingsIAM. - כדי להציג את התגים בפועל של טבלה או תצוגה, אתם צריכים את הרשאת ה-IAM
bigquery.tables.listEffectiveTags. - כדי לראות את רשימת התגים שמצורפים למערך נתונים באמצעות Cloud Resource Manager API או ה-CLI של gcloud, אתם צריכים את הרשאת IAM
bigquery.datasets.listTagBindings. - כדי להציג את התגים בפועל של מערך נתונים, אתם צריכים את ההרשאה
bigquery.datasets.listEffectiveTagsב-IAM.
יצירת מפתחות וערכים של תגים
אפשר ליצור תג לפני שמצרפים אותו למשאב BigQuery, או ליצור תג באופן ידני כשיוצרים את המשאב באמצעותGoogle Cloud המסוף.
במאמרים יצירת תג והוספת ערכי תגים בתיעוד של מנהל המשאבים מוסבר איך יוצרים מפתחות וערכים של תגים.
תיוג מערכי נתונים
בקטעים הבאים מוסבר איך לצרף תגים למערכי נתונים חדשים וקיימים, איך לראות את רשימת התגים שמצורפים למערך נתונים ואיך לנתק תגים ממערך נתונים.
צירוף תגים כשיוצרים מערך נתונים חדש
אחרי שיוצרים תג, אפשר לצרף אותו למערך נתונים חדש ב-BigQuery. אפשר לצרף רק ערך תג אחד למערך נתונים לכל מפתח תג נתון. אפשר לצרף עד 50 תגים למערך נתונים.
המסוף
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
בחלונית Explorer, בוחרים את הפרויקט שבו רוצים ליצור את מערך הנתונים.
לוחצים על View actions (הצגת פעולות) > Create dataset (יצירת מערך נתונים).
מזינים את הפרטים של קבוצת הנתונים החדשה. פרטים נוספים מופיעים במאמר בנושא יצירת מערכי נתונים.
מרחיבים את הקטע Tags.
כדי להחיל תג קיים:
לוחצים על החץ לתפריט הנפתח לצד בחירת היקף ובוחרים באפשרות היקף נוכחי – בחירת הארגון הנוכחי או בחירת הפרויקט הנוכחי.
אפשר גם ללחוץ על בחירת היקף כדי לחפש משאב או כדי לראות רשימה של המשאבים הנוכחיים.
בשדות Key 1 ו-Value 1, בוחרים את הערכים המתאימים מתוך הרשימות.
כדי להזין תג חדש באופן ידני:
לוחצים על החץ לתפריט הנפתח לצד בחירת היקף ובוחרים באפשרות הזנת מזהים באופן ידני > ארגון, פרויקט או תגים.
אם אתם יוצרים תג לפרויקט או לארגון, מזינים את
PROJECT_IDאו אתORGANIZATION_IDבתיבת הדו-שיח ולוחצים על שמירה.בשדות Key 1 ו-Value 1, בוחרים את הערכים המתאימים מתוך הרשימות.
אופציונלי: כדי להוסיף עוד תגים לטבלה, לוחצים על הוספת תג ופועלים לפי השלבים הקודמים.
לוחצים על יצירת מערך נתונים.
SQL
משתמשים בהצהרה CREATE SCHEMA.
במסוף Google Cloud , עוברים לדף BigQuery.
בעורך השאילתות, מזינים את ההצהרה הבאה:
CREATE SCHEMA PROJECT_ID.DATASET_ID OPTIONS ( tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
DATASET_ID: המזהה של מערך הנתונים שיוצרים. -
TAG_KEY_1: שם המפתח ממרחב השמות שרוצים להגדיר כתג הראשון במערך הנתונים, לדוגמה,'my-project/env'או'556741164180/department'. -
TAG_VALUE_1: השם המקוצר של ערך התג, למשל'prod'או'sales'. -
TAG_KEY_2: השם ממרחב השמות של מפתח התג השני. -
TAG_VALUE_2: השם המקוצר של הערך של התג השני.
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
משתמשים בbq mk --dataset עם הדגל --add_tags:
bq mk --dataset \ --add_tags=TAG \ PROJECT_ID:DATASET_ID
מחליפים את מה שכתוב בשדות הבאים:
-
TAG: התג שמצרפים למערך הנתונים החדש. אם יש כמה תגים, צריך להפריד ביניהם בפסיקים. לדוגמה,556741164180/env:prod,myProject/department:sales. לכל תג צריך להיות שם מפתח במרחב שמות ושם מקוצר של ערך. -
PROJECT_ID: מזהה הפרויקט שבו אתם יוצרים מערך נתונים. -
DATASET_ID: המזהה של מערך הנתונים החדש.
Terraform
משתמשים במשאב google_bigquery_dataset.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
בדוגמה הבאה נוצר מערך נתונים בשם my_dataset, ואז מצורפים אליו תגים על ידי מילוי השדה resource_tags:
כדי להחיל את הגדרות Terraform בפרויקט ב- Google Cloud , מבצעים את השלבים בקטעים הבאים.
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Google Cloud
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.
הכנת הספרייה
לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).
-
יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת
.tf, למשלmain.tf. במדריך הזה, הקובץ נקראmain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.
מעתיקים את הקוד לדוגמה בקובץ
main.tfהחדש שיצרתם.לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
- בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
- שומרים את השינויים.
-
מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
terraform init
אופציונלי: תוכלו לכלול את האפשרות
-upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:terraform init -upgrade
החלה של השינויים
-
בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
terraform plan
מתקנים את ההגדרות לפי הצורך.
-
מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform:terraform apply
ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!".
- פותחים את Google Cloud הפרויקט כדי לראות את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
API
מבצעים קריאה ל-datasets.insert ומוסיפים את התגים לשדה resource_tags.
צירוף תגים לקבוצת נתונים קיימת
אחרי שיוצרים תג, אפשר לצרף אותו למערך נתונים קיים. אפשר לצרף רק ערך תג אחד למערך נתונים לכל מפתח תג נתון.
המסוף
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer, מרחיבים את הפרויקט, לוחצים על Datasets ובוחרים מערך נתונים.
בקטע פרטי מערך הנתונים, לוחצים על עריכת הפרטים.
מרחיבים את הקטע Tags.
כדי להחיל תג קיים:
לוחצים על החץ לתפריט הנפתח לצד בחירת היקף ובוחרים באפשרות היקף נוכחי – בחירת הארגון הנוכחי או בחירת הפרויקט הנוכחי.
אפשר גם ללחוץ על בחירת היקף כדי לחפש משאב או כדי לראות רשימה של המשאבים הנוכחיים.
בשדות Key 1 ו-Value 1, בוחרים את הערכים המתאימים מתוך הרשימות.
כדי להזין תג חדש באופן ידני:
לוחצים על החץ לתפריט הנפתח לצד בחירת היקף ובוחרים באפשרות הזנת מזהים באופן ידני > ארגון, פרויקט או תגים.
אם אתם יוצרים תג לפרויקט או לארגון, מזינים את
PROJECT_IDאו אתORGANIZATION_IDבתיבת הדו-שיח ולוחצים על שמירה.בשדות Key 1 ו-Value 1, בוחרים את הערכים המתאימים מתוך הרשימות.
אופציונלי: כדי להוסיף עוד תגים לטבלה, לוחצים על הוספת תג ופועלים לפי השלבים הקודמים.
לוחצים על Save.
SQL
משתמשים בהצהרה ALTER SCHEMA SET OPTIONS.
בדוגמה הבאה, כל התגים של מערך נתונים קיים נמחקים ומוחלפים בתגים חדשים.
במסוף Google Cloud , עוברים לדף BigQuery.
בעורך השאילתות, מזינים את ההצהרה הבאה:
ALTER SCHEMA PROJECT_ID.DATASET_ID SET OPTIONS ( tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
DATASET_ID: המזהה של מערך הנתונים שמכיל את הטבלה. -
TABLE_ID: שם הטבלה שמתייגים. -
TAG_KEY_1: שם המפתח ממרחב השמות שרוצים להגדיר כתג הראשון בטבלה, למשל'my-project/env'או'556741164180/department'. -
TAG_VALUE_1: השם המקוצר של ערך התג, למשל'prod'או'sales'. -
TAG_KEY_2: השם ממרחב השמות של מפתח התג השני. -
TAG_VALUE_2: השם המקוצר של הערך של התג השני.
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
בדוגמה הבאה נעשה שימוש באופרטור += כדי לצרף תגים למערך נתונים בלי להחליף תגים קיימים. אם תג קיים כולל את אותו מפתח, התג הזה יוחלף.
במסוף Google Cloud , עוברים לדף BigQuery.
בעורך השאילתות, מזינים את ההצהרה הבאה:
ALTER SCHEMA PROJECT_ID.DATASET_ID SET OPTIONS ( tags += [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
DATASET_ID: המזהה של מערך הנתונים שמכיל את הטבלה. -
TABLE_ID: שם הטבלה שמתייגים. -
TAG_KEY_1: שם המפתח ממרחב השמות שרוצים להגדיר כתג הראשון בטבלה, למשל'my-project/env'או'556741164180/department'. -
TAG_VALUE_1: השם המקוצר של ערך התג, למשל'prod'או'sales'. -
TAG_KEY_2: השם ממרחב השמות של מפתח התג השני. -
TAG_VALUE_2: השם המקוצר של הערך של התג השני.
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
משתמשים בbq update עם הדגל --add_tags:
bq update \ --add_tags=TAG \ PROJECT_ID:DATASET_ID
מחליפים את מה שכתוב בשדות הבאים:
-
TAG: התג שמצרפים למערך הנתונים. אם יש כמה תגים, צריך להפריד ביניהם בפסיקים. לדוגמה,556741164180/env:prod,myProject/department:sales. לכל תג צריך להיות שם מפתח במרחב שמות ושם מקוצר של ערך. -
PROJECT_ID: מזהה הפרויקט שבו נמצא מערך הנתונים הקיים. -
DATASET_ID: המזהה של מערך הנתונים הקיים.
gcloud
כדי לצרף תג למערך נתונים באמצעות שורת הפקודה, יוצרים משאב של קישור תג באמצעות הפקודה gcloud resource-manager tags bindings create:
gcloud resource-manager tags bindings create \
--tag-value=TAG_VALUE_NAME \
--parent=RESOURCE_ID \
--location=LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
TAG_VALUE_NAME: המזהה הקבוע או השם ממרחב השמות של ערך התג שיש לצרף, כמוtagValues/4567890123או1234567/my_tag_key/my_tag_value. -
RESOURCE_ID: המזהה המלא של מערך הנתונים, כולל שם הדומיין של ה-API (//bigquery.googleapis.com/), כדי לזהות את סוג המשאב. לדוגמה,//bigquery.googleapis.com/projects/my_project/datasets/my_dataset. -
LOCATION: המיקום של מערך הנתונים.
Terraform
מוסיפים תגים לשדה resource_tags של מערך הנתונים, ואז מחילים את ההגדרה המעודכנת באמצעות משאב google_bigquery_dataset. למידע נוסף, אפשר לעיין בדוגמה של Terraform במאמר צירוף תגים כשיוצרים מערך נתונים חדש.
API
מפעילים את השיטה datasets.get כדי לקבל את משאב מערך הנתונים, כולל השדה resource_tags. מוסיפים את התגים לשדה resource_tags ומעבירים בחזרה את משאב מערך הנתונים המעודכן באמצעות השיטה datasets.update.
הצגת רשימת תגים שמצורפים לקבוצת נתונים
השלבים הבאים מציגים רשימה של תגים שמצורפים ישירות למערך נתונים. השיטות האלה לא מחזירות תגים שעוברים בירושה ממקורות מידע ברמת ההורה.
המסוף
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer, מרחיבים את הפרויקט, לוחצים על Datasets ובוחרים מערך נתונים.
התגים מופיעים בקטע Dataset info (פרטי מערך הנתונים).
BQ
כדי לראות את רשימת התגים שמשויכים למערך נתונים, משתמשים בפקודה bq show.
bq show PROJECT_ID:DATASET_ID
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את מערך הנתונים. -
DATASET_ID: המזהה של מערך הנתונים שעבורו רוצים להציג את התגים.
gcloud
כדי לקבל רשימה של קישורי תגים שצורפו למשאב, משתמשים בפקודה gcloud resource-manager tags bindings list:
gcloud resource-manager tags bindings list \
--parent=RESOURCE_ID \
--location=LOCATION
מחליפים את מה שכתוב בשדות הבאים:
RESOURCE_ID: המזהה המלא של מערך הנתונים, כולל שם הדומיין של ה-API (//bigquery.googleapis.com/), כדי לזהות את סוג המשאב. לדוגמה://bigquery.googleapis.com/projects/my_project/datasets/my_dataset.
LOCATION: המיקום של מערך הנתונים.
הפלט אמור להיראות כך:
name: tagBindings/%2F%2Fbigquery.googleapis.com%2Fprojects%2Fmy_project%2Fdatasets%2Fmy_dataset/tagValues/4567890123 parent: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset tagValue: tagValues/4567890123
אפשר להציג את התגים שעברו בירושה לפי מערכי נתונים ב-BigQuery באמצעות gcloud resource-manager tags bindings list. אפשר גם להשתמש באפשרות --filter במאפיין namespacedTagValue כדי לסנן תגים לפי מזהה הפרויקט, ערך התג או מפתח התג.
gcloud resource-manager tags bindings list \
--parent=//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID \
--effective \
--filter=namespacedTagValue:TAG_FILTER
מחליפים את מה שכתוב בשדות הבאים :
PROJECT_ID: מזהה הפרויקט שמכיל את מערך הנתונים.
DATASET_ID: מזהה קבוצת הנתונים.
TAG_FILTER: מציינים ערך לסינון תגים שעברו בירושה על סמך אחת מהאפשרויות הבאות:סינון תגים לפי מזהה פרויקט. לדוגמה,
myproject.כדי לסנן ערכי תגים, מציינים את המזהה הקבוע או את השם של ערך התג במרחב השמות. לדוגמה,
tagValues/4567890123או1234567/my_tag_key/my_tag_value.כדי לסנן מפתחות תגים, מציינים את השם המוצג של מפתח התג. לדוגמה
tagkey.
Terraform
משתמשים בפקודה terraform state show כדי להציג את המאפיינים של מערך הנתונים, כולל השדה resource_tags. מריצים את הפקודה הזו בספרייה שבה הופעל קובץ התצורה של Terraform של מערך הנתונים.
terraform state show google_bigquery_dataset.default
API
מבצעים קריאה ל-datasets.get כדי לקבל את משאב מערך הנתונים. משאב מערך הנתונים כולל תגים שמצורפים למערך הנתונים בשדה resource_tags.
תצוגות
משתמשים בתצוגה INFORMATION_SCHEMA.SCHEMATA_OPTIONS.
לדוגמה, השאילתה הבאה מציגה את כל התגים שמצורפים לכל מערכי הנתונים באזור מסוים. השאילתה הזו מחזירה טבלה עם עמודות שכוללות את schema_name (שמות מערכי הנתונים), option_name (תמיד 'tags'), object_type (תמיד ARRAY<STRUCT<STRING, STRING>>) ו-option_value, שמכילה מערכים של אובייקטים מסוג STRUCT שמייצגים תגים שמשויכים לכל מערך נתונים. למערכי נתונים שלא הוקצו להם תגים, העמודה option_value מחזירה מערך ריק.
SELECT * from region-REGION.INFORMATION_SCHEMA.SCHEMATA_OPTIONS WHERE option_name='tags'
מחליפים את מה שכתוב בשדות הבאים:
-
REGION: האזור שבו נמצאים מערכי הנתונים.
ניתוק תגים מקבוצת נתונים
כדי לבטל את הקישור של תג למשאב, צריך למחוק את משאב הקישור בין התגים. אם אתם מוחקים תג, אתם צריכים לנתק אותו ממערך הנתונים לפני שאתם מוחקים אותו. מידע נוסף זמין במאמר מחיקת תגים.
המסוף
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer, מרחיבים את הפרויקט, לוחצים על Datasets ובוחרים מערך נתונים.
בקטע פרטי מערך הנתונים, לוחצים על עריכת הפרטים.
בקטע תגים, לוחצים על מחיקת פריט ליד התג שרוצים למחוק.
לוחצים על Save.
SQL
משתמשים בהצהרה ALTER SCHEMA SET OPTIONS.
בדוגמה הבאה מוצג ניתוק תגים ממערך נתונים באמצעות האופרטור -=. כדי לנתק את כל התגים מקבוצת נתונים, אפשר לציין tags=NULL או tags=[].
במסוף Google Cloud , עוברים לדף BigQuery.
בעורך השאילתות, מזינים את ההצהרה הבאה:
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID SET OPTIONS ( tags -= [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
DATASET_ID: המזהה של מערך הנתונים שמכיל את הטבלה. -
TABLE_ID: שם הטבלה שממנה רוצים לנתק את התגים. -
TAG_KEY_1: שם המפתח ממרחב השמות של התג הראשון שרוצים לנתק, למשל'my-project/env'או'556741164180/department'. -
TAG_VALUE_1: השם המקוצר של הערך של התג שרוצים לנתק, למשל'prod'או'sales'. -
TAG_KEY_2: השם ממרחב השמות של מפתח התג השני שמנתקים. TAG_VALUE_2: השם המקוצר של הערך של התג השני שמנתקים.
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
משתמשים בbq update עם הדגל --remove_tags:
bq update \ --remove_tags=REMOVED_TAG \ PROJECT_ID:DATASET_ID
מחליפים את מה שכתוב בשדות הבאים:
-
REMOVED_TAG: התג שרוצים להסיר ממערך הנתונים. אם יש כמה תגים, צריך להפריד ביניהם בפסיקים. אפשר להזין רק מפתחות בלי זוגות של מפתח וערך. לדוגמה,556741164180/env,myProject/department. לכל תג צריך להיות שם מפתח ממרחב השמות. -
PROJECT_ID: מזהה הפרויקט שמכיל את מערך הנתונים. -
DATASET_ID: המזהה של מערך הנתונים שממנו רוצים לנתק את התגים.
לחלופין, אם רוצים להסיר את כל התגים ממערך נתונים, משתמשים בפקודה bq update עם הדגל --clear_all_tags:
bq update \ --clear_all_tags PROJECT_ID:DATASET_ID
gcloud
כדי לבטל את הקישור של תג לקבוצת נתונים באמצעות שורת הפקודה, מוחקים את הקישור של התג באמצעות הפקודה gcloud resource-manager tags bindings delete:
gcloud resource-manager tags bindings delete \
--tag-value=TAG_VALUE_NAME \
--parent=RESOURCE_ID \
--location=LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
TAG_VALUE_NAME: המזהה הקבוע או השם עם מרחב השמות של ערך התג שרוצים לנתק, כמוtagValues/4567890123או1234567/my_tag_key/my_tag_value. -
RESOURCE_ID: המזהה המלא של מערך הנתונים, כולל שם הדומיין של ה-API (//bigquery.googleapis.com/), כדי לזהות את סוג המשאב. לדוגמה://bigquery.googleapis.com/projects/my_project/datasets/my_dataset. -
LOCATION: המיקום של מערך הנתונים.
Terraform
מסירים את התגים מהשדה resource_tags של מערך הנתונים, ואז מחילים את ההגדרה המעודכנת באמצעות משאב google_bigquery_dataset.
API
מפעילים את השיטה datasets.get כדי לקבל את משאב מערך הנתונים, כולל השדה resource_tags. מסירים את התגים מהשדה resource_tags ומעבירים את משאב מערך הנתונים המעודכן בחזרה באמצעות השיטה datasets.update.
תיוג טבלאות
בקטעים הבאים מוסבר איך לצרף תגים לטבלאות חדשות וקיימות, איך לראות את רשימת התגים שמצורפים לטבלה ואיך לנתק תגים מטבלה.
צירוף תגים כשיוצרים טבלה חדשה
אחרי שיוצרים תג, אפשר לצרף אותו לטבלה חדשה. אפשר לצרף רק ערך תג אחד לטבלה לכל מפתח תג נתון. אפשר לצרף לטבלה עד 50 תגים.
המסוף
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer, מרחיבים את הפרויקט, לוחצים על Datasets ובוחרים מערך נתונים.
בקטע פרטי מערך הנתונים, לוחצים על ואז על יצירת טבלה.
מזינים את הפרטים של הטבלה החדשה. מידע נוסף זמין במאמר יצירה של טבלאות ושימוש בהן.
מרחיבים את הקטע Tags.
כדי להחיל תג קיים:
לוחצים על החץ לתפריט הנפתח לצד בחירת היקף ובוחרים באפשרות היקף נוכחי – בחירת הארגון הנוכחי או בחירת הפרויקט הנוכחי.
אפשר גם ללחוץ על בחירת היקף כדי לחפש משאב או כדי לראות רשימה של המשאבים הנוכחיים.
בשדות Key 1 ו-Value 1, בוחרים את הערכים המתאימים מתוך הרשימות.
כדי להזין תג חדש באופן ידני:
לוחצים על החץ לתפריט הנפתח לצד בחירת היקף ובוחרים באפשרות הזנת מזהים באופן ידני > ארגון, פרויקט או תגים.
אם אתם יוצרים תג לפרויקט או לארגון, מזינים את
PROJECT_IDאו אתORGANIZATION_IDבתיבת הדו-שיח ולוחצים על שמירה.בשדות Key 1 ו-Value 1, בוחרים את הערכים המתאימים מתוך הרשימות.
אופציונלי: כדי להוסיף עוד תגים לטבלה, לוחצים על הוספת תג ופועלים לפי השלבים הקודמים.
לוחצים על יצירת טבלה.
SQL
משתמשים בהצהרה CREATE TABLE.
במסוף Google Cloud , עוברים לדף BigQuery.
בעורך השאילתות, מזינים את ההצהרה הבאה:
CREATE TABLE PROJECT_ID.DATASET_ID.TABLE_ID OPTIONS ( tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
DATASET_ID: המזהה של מערך הנתונים שבו יוצרים את הטבלה. -
TABLE_ID: השם של הטבלה החדשה. -
TAG_KEY_1: שם המפתח ממרחב השמות שרוצים להגדיר כתג הראשון בטבלה, למשל'my-project/env'או'556741164180/department'. -
TAG_VALUE_1: השם המקוצר של ערך התג, למשל'prod'או'sales'. -
TAG_KEY_2: השם ממרחב השמות של מפתח התג השני. -
TAG_VALUE_2: השם המקוצר של הערך של התג השני.
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
משתמשים בbq mk --table עם הדגל --add_tags:
bq mk --table \ --schema=SCHEMA \ --add_tags=TAG \ PROJECT_ID:DATASET_ID.TABLE_ID
מחליפים את מה שכתוב בשדות הבאים:
-
SCHEMA: הגדרת הסכימה בתוך התג. -
TAG: התג שמצרפים לטבלה החדשה. אם יש כמה תגים, צריך להפריד ביניהם בפסיקים. לדוגמה,556741164180/env:prod,myProject/department:sales. לכל תג צריך להיות שם מפתח במרחב שמות ושם מקוצר של ערך. -
PROJECT_ID: מזהה הפרויקט שבו אתם יוצרים טבלה. -
DATASET_ID: המזהה של מערך הנתונים שבו אתם יוצרים טבלה. -
TABLE_ID: המזהה של הטבלה החדשה.
Terraform
משתמשים במשאב google_bigquery_table.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
בדוגמה הבאה נוצרת טבלה בשם mytable, ואז מצורפים אליה תגים על ידי מילוי השדה resource_tags:
כדי להחיל את הגדרות Terraform בפרויקט ב- Google Cloud , מבצעים את השלבים בקטעים הבאים.
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Google Cloud
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.
הכנת הספרייה
לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).
-
יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת
.tf, למשלmain.tf. במדריך הזה, הקובץ נקראmain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.
מעתיקים את הקוד לדוגמה בקובץ
main.tfהחדש שיצרתם.לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
- בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
- שומרים את השינויים.
-
מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
terraform init
אופציונלי: תוכלו לכלול את האפשרות
-upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:terraform init -upgrade
החלה של השינויים
-
בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
terraform plan
מתקנים את ההגדרות לפי הצורך.
-
מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform:terraform apply
ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!".
- פותחים את Google Cloud הפרויקט כדי לראות את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
API
מבצעים קריאה ל-tables.insert עם משאב טבלה מוגדר.
מוסיפים את התגים בשדה resource_tags.
צירוף תגים לטבלה קיימת
אחרי שיוצרים תג, אפשר לצרף אותו לטבלה קיימת. אפשר לצרף רק ערך תג אחד לטבלה לכל מפתח תג נתון.
המסוף
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer מרחיבים את הפרויקט ואז לוחצים על Datasets.
לוחצים על סקירה כללית > טבלאות ובוחרים טבלה.
לוחצים על הכרטיסייה פרטים ואז על עריכת הפרטים.
מרחיבים את הקטע Tags.
כדי להחיל תג קיים:
לוחצים על החץ לתפריט הנפתח לצד בחירת היקף ובוחרים באפשרות היקף נוכחי – בחירת הארגון הנוכחי או בחירת הפרויקט הנוכחי.
אפשר גם ללחוץ על בחירת היקף כדי לחפש משאב או כדי לראות רשימה של המשאבים הנוכחיים.
בשדות Key 1 ו-Value 1, בוחרים את הערכים המתאימים מתוך הרשימות.
כדי להזין תג חדש באופן ידני:
לוחצים על החץ לתפריט הנפתח לצד בחירת היקף ובוחרים באפשרות הזנת מזהים באופן ידני > ארגון, פרויקט או תגים.
אם אתם יוצרים תג לפרויקט או לארגון, מזינים את
PROJECT_IDאו אתORGANIZATION_IDבתיבת הדו-שיח ולוחצים על שמירה.בשדות Key 1 ו-Value 1, בוחרים את הערכים המתאימים מתוך הרשימות.
אופציונלי: כדי להוסיף עוד תגים לטבלה, לוחצים על הוספת תג ופועלים לפי השלבים הקודמים.
לוחצים על Save.
SQL
משתמשים בהצהרה ALTER TABLE SET OPTIONS.
בדוגמה הבאה, כל התגים בטבלה קיימת מוחלפים.
במסוף Google Cloud , עוברים לדף BigQuery.
בעורך השאילתות, מזינים את ההצהרה הבאה:
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID SET OPTIONS ( tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
DATASET_ID: המזהה של מערך הנתונים שמכיל את הטבלה. -
TABLE_ID: שם הטבלה שמתייגים. -
TAG_KEY_1: שם המפתח ממרחב השמות שרוצים להגדיר כתג הראשון בטבלה, למשל'my-project/env'או'556741164180/department'. -
TAG_VALUE_1: השם המקוצר של ערך התג, למשל'prod'או'sales'. -
TAG_KEY_2: השם ממרחב השמות של מפתח התג השני. -
TAG_VALUE_2: השם המקוצר של הערך של התג השני.
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
בדוגמה הבאה נעשה שימוש באופרטור += כדי לצרף תג לטבלה בלי להחליף תגים קיימים. אם תג קיים כולל את אותו מפתח, התג הזה יוחלף.
במסוף Google Cloud , עוברים לדף BigQuery.
בעורך השאילתות, מזינים את ההצהרה הבאה:
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID SET OPTIONS ( tags += [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
DATASET_ID: המזהה של מערך הנתונים שמכיל את הטבלה. -
TABLE_ID: שם הטבלה שמתייגים. -
TAG_KEY_1: שם המפתח ממרחב השמות שרוצים להגדיר כתג הראשון בטבלה, למשל'my-project/env'או'556741164180/department'. -
TAG_VALUE_1: השם המקוצר של ערך התג, למשל'prod'או'sales'. -
TAG_KEY_2: השם ממרחב השמות של מפתח התג השני. -
TAG_VALUE_2: השם המקוצר של הערך של התג השני.
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
משתמשים בbq update עם הדגל --add_tags:
bq update \ --add_tags=TAG \ PROJECT_ID:DATASET_ID.TABLE_ID
מחליפים את מה שכתוב בשדות הבאים:
-
TAG: התג שמצורף לטבלה. אם יש כמה תגים, צריך להפריד ביניהם בפסיקים. לדוגמה,556741164180/env:prod,myProject/department:sales. לכל תג צריך להיות שם מפתח במרחב שמות ושם מקוצר של ערך. -
PROJECT_ID: מזהה הפרויקט שמכיל את הטבלה. -
DATASET_ID: מזהה מערך הנתונים שמכיל את הטבלה. -
TABLE_ID: המזהה של הטבלה שרוצים לעדכן.
gcloud
כדי לצרף תג לטבלה באמצעות שורת הפקודה, יוצרים משאב של קישור תג באמצעות הפקודה gcloud resource-manager tags bindings create:
gcloud resource-manager tags bindings create \
--tag-value=TAG_VALUE_NAME \
--parent=RESOURCE_ID \
--location=LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
TAG_VALUE_NAME: המזהה הקבוע או השם ממרחב השמות של ערך התג שיש לצרף, כמוtagValues/4567890123או1234567/my_tag_key/my_tag_value. -
RESOURCE_ID: המזהה המלא של הטבלה, כולל שם הדומיין של ה-API (//bigquery.googleapis.com/) כדי לזהות את סוג המשאב. לדוגמה,//bigquery.googleapis.com/projects/my_project/datasets/my_dataset/tables/my_table -
LOCATION: המיקום של הטבלה.
Terraform
מוסיפים תגים לשדה resource_tags של הטבלה, ואז מחילים את ההגדרה המעודכנת באמצעות משאב google_bigquery_table. למידע נוסף, אפשר לעיין בדוגמה של Terraform במאמר צירוף תגים כשיוצרים טבלה חדשה.
API
מבצעים קריאה ל-tables.update עם משאב טבלה מוגדר.
מוסיפים את התגים בשדה resource_tags.
הצגת רשימת תגים שמצורפים לטבלה
אפשר להציג רשימה של תגים שמצורפים ישירות לטבלה. בתהליך הזה לא מופיעים תגים שעברו בירושה ממשאבי הורה.
המסוף
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer מרחיבים את הפרויקט ואז לוחצים על Datasets.
לוחצים על סקירה כללית > טבלאות ובוחרים טבלה.
התגים מוצגים בכרטיסייה פרטים.
BQ
משתמשים בפקודה bq show ומחפשים את העמודה tags. אם אין תגים בטבלה, העמודה tags לא מוצגת.
bq show \ PROJECT_ID:DATASET_ID.TABLE_ID
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את הטבלה. -
DATASET_ID: מזהה מערך הנתונים שמכיל את הטבלה. -
TABLE_ID: המזהה של הטבלה.
gcloud
כדי לקבל רשימה של צירופי תגים שמשויכים למשאב, משתמשים בפקודה gcloud resource-manager tags bindings list:
gcloud resource-manager tags bindings list \
--parent=RESOURCE_ID \
--location=LOCATION
מחליפים את מה שכתוב בשדות הבאים:
RESOURCE_ID: המזהה המלא של הטבלה, כולל שם הדומיין של ה-API (//bigquery.googleapis.com/), כדי לזהות את סוג המשאב. לדוגמה://bigquery.googleapis.com/projects/my_project/datasets/my_dataset/tables/my_table.
LOCATION: המיקום של מערך הנתונים.
הפלט אמור להיראות כך:
name: tagBindings/%2F%2Fbigquery.googleapis.com%2Fprojects%2Fmy_project%2Fdatasets%2Fmy_dataset/tagValues/4567890123 parent: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset tagValue: tagValues/4567890123
אפשר להציג את התגים שעברו בירושה לפי טבלאות BigQuery באמצעות gcloud resource-manager tags bindings list. אפשר גם להשתמש באפשרות --filter במאפיין namespacedTagValue כדי לסנן תגים לפי מזהה הפרויקט, ערך התג או מפתח התג.
gcloud resource-manager tags bindings list \
--parent=//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID \
--effective \
--filter=namespacedTagValue:TAG_FILTER
מחליפים את מה שכתוב בשדות הבאים :
PROJECT_ID: מזהה הפרויקט שמכיל את מערך הנתונים.
DATASET_ID: מזהה קבוצת הנתונים.
TAG_FILTER: מציינים ערך לסינון תגים שעברו בירושה על סמך אחת מהאפשרויות הבאות:סינון תגים לפי מזהה פרויקט. לדוגמה,
myproject.כדי לסנן ערכי תגים, מציינים את המזהה הקבוע או את השם של ערך התג במרחב השמות. לדוגמה,
tagValues/4567890123או1234567/my_tag_key/my_tag_value.כדי לסנן מפתחות תגים, מציינים את השם המוצג של מפתח התג. לדוגמה
tagkey.
Terraform
משתמשים בפקודה terraform state show כדי להציג את המאפיינים של הטבלה, כולל השדה resource_tags. מריצים את הפקודה הזו בספרייה שבה הופעל קובץ התצורה של Terraform של הטבלה.
terraform state show google_bigquery_table.default
API
מבצעים קריאה ל-tables.get עם משאב טבלה מוגדר ומחפשים את השדה resource_tags.
תצוגות
משתמשים בתצוגה INFORMATION_SCHEMA.TABLE_OPTIONS.
לדוגמה, השאילתה הבאה מציגה את כל התגים שמצורפים לכל הטבלאות במערך נתונים. השאילתה הזו מחזירה טבלה עם עמודות שכוללות את schema_name (שם מערך הנתונים), option_name (תמיד 'tags'), object_type (תמיד ARRAY<STRUCT<STRING, STRING>>) ו-option_value, שמכילה מערכים של אובייקטים מסוג STRUCT שמייצגים תגים שמשויכים לכל מערך נתונים. בטבלאות ללא תגים שהוקצו, העמודה option_value מחזירה מערך ריק.
SELECT * from DATASET_ID.INFORMATION_SCHEMA.TABLE_OPTIONS WHERE option_name='tags'
מחליפים את DATASET_ID במזהה של מערך הנתונים שמכיל את הטבלה.
ניתוק תגים מטבלה
כדי להסיר שיוך של תג מטבלה, צריך למחוק את קישור התג. אם אתם מוחקים תג, אתם צריכים לנתק אותו מהטבלה לפני שאתם מוחקים אותו. מידע נוסף זמין במאמר מחיקת תגים.
המסוף
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer מרחיבים את הפרויקט ואז לוחצים על Datasets.
לוחצים על סקירה כללית > טבלאות ובוחרים טבלה.
לוחצים על הכרטיסייה פרטים ואז על עריכת הפרטים.
בקטע תגים, לוחצים על מחיקת פריט ליד התג שרוצים למחוק.
לוחצים על Save.
SQL
משתמשים בהצהרה ALTER TABLE SET OPTIONS.
בדוגמה הבאה מנתקים תגים מטבלה באמצעות האופרטור -=. כדי לנתק את כל התגים מטבלה, אפשר לציין tags=NULL או tags=[].
במסוף Google Cloud , עוברים לדף BigQuery.
בעורך השאילתות, מזינים את ההצהרה הבאה:
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID SET OPTIONS ( tags -= [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
DATASET_ID: המזהה של מערך הנתונים שמכיל את הטבלה. -
TABLE_ID: שם הטבלה שממנה רוצים לנתק את התגים. -
TAG_KEY_1: שם המפתח ממרחב השמות של התג הראשון שרוצים לנתק, למשל'my-project/env'או'556741164180/department'. -
TAG_VALUE_1: השם המקוצר של הערך של התג שרוצים לנתק, למשל'prod'או'sales'. -
TAG_KEY_2: השם ממרחב השמות של מפתח התג השני שמנתקים. TAG_VALUE_2: השם המקוצר של הערך של התג השני שמנתקים.
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
כדי להסיר תגים מטבלה, משתמשים בפקודה bq update עם הדגל --remove_tags:
bq update \ --remove_tags=TAG_KEYS \ PROJECT_ID:DATASET_ID.TABLE_ID
מחליפים את מה שכתוב בשדות הבאים:
-
TAG_KEYS: מפתחות התגים שמנתקים מהטבלה, מופרדים בפסיקים. לדוגמה,556741164180/env,myProject/department. לכל מפתח תג צריך להיות שם מפתח ממרחב השמות. -
PROJECT_ID: מזהה הפרויקט שמכיל את הטבלה. -
DATASET_ID: מזהה מערך הנתונים שמכיל את הטבלה. -
TABLE_ID: המזהה של הטבלה שרוצים לעדכן.
כדי להסיר את כל התגים מטבלה, משתמשים בפקודה bq update עם הדגל --clear_all_tags:
bq update \ --clear_all_tags \ PROJECT_ID:DATASET_ID.TABLE_ID
gcloud
כדי להסיר שיוך של תג מטבלה באמצעות שורת הפקודה, מוחקים את הקישור של התג באמצעות הפקודה gcloud resource-manager tags bindings delete:
gcloud resource-manager tags bindings delete \
--tag-value=TAG_VALUE_NAME \
--parent=RESOURCE_ID \
--location=LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
TAG_VALUE_NAME: המזהה הקבוע או השם עם מרחב השמות של ערך התג שרוצים למחוק, למשלtagValues/4567890123או1234567/my_tag_key/my_tag_value. -
RESOURCE_ID: המזהה המלא של הטבלה, כולל שם הדומיין של ה-API (//bigquery.googleapis.com/), כדי לזהות את סוג המשאב. לדוגמה://bigquery.googleapis.com/projects/my_project/datasets/my_dataset/tables/my_table. -
LOCATION: המיקום של מערך הנתונים.
Terraform
מסירים את התגים מהשדה resource_tags בטבלה, ואז מחילים את ההגדרה המעודכנת באמצעות המשאב google_bigquery_table.
API
מבצעים קריאה ל-method tables.update עם משאב טבלה מוגדר, ומסירים את התגים בשדה resource_tags. כדי להסיר את כל התגים, מסירים את השדה resource_tags.
תיוג משאבים אחרים דמויי טבלה
באופן דומה, אפשר לתייג תצוגות מפורטות, תצוגות מפורטות מגובות, שיבוטים ותמונות מצב ב-BigQuery.
תיוג עמודות
אתם יכולים לתייג עמודות בטבלה באמצעות תגים של משילות מידע (data governance) כדי להגדיר בקרת גישה והסתרת נתונים ברמת העמודה.
מחיקת תגים
אי אפשר למחוק תג אם יש הפניה אליו בטבלה, בתצוגה או בקבוצת נתונים. לפני שמוחקים את מפתח התג או את הערך שלו, צריך לבטל את הקישור של כל משאבי הקישור הקיימים של התגים. במאמר מחיקת תגים מוסבר איך למחוק מפתחות וערכים של תגים.
דוגמה
נניח שאתם אדמינים בארגון. כל אנשי ניתוח הנתונים שלכם הם חברים בקבוצה analysts@example.com, שיש לה תפקיד BigQuery Data Viewer IAM בפרויקט userData. חברה מעסיקה מתמחה בתחום ניתוח הנתונים, ולפי המדיניות של החברה, למתמחה צריכה להיות הרשאה רק לצפייה במערך הנתונים anonymousData בפרויקט userData.
אתם יכולים לשלוט בגישה שלהם באמצעות תגים.
יוצרים תג עם המפתח
employee_typeוהערךintern:
נכנסים לדף IAM במסוף Google Cloud .
מוצאים את השורה של המתמחה שרוצים להגביל את הגישה שלו לקבוצת הנתונים ולוחצים על Edit principal בשורה הזו.
בתפריט תפקיד, בוחרים באפשרות מציג נתונים ב-BigQuery.
לוחצים על הוספת תנאי.
בשדות Title (שם) ו-Description (תיאור), מזינים ערכים שמתארים את תנאי תג ה-IAM שרוצים ליצור.
בכרטיסייה הכלי להגדרת תנאים, לוחצים על הוספה.
בתפריט Condition type (סוג התנאי), בוחרים באפשרות Resource (משאב) ואז באפשרות Tag (תג).
בתפריט אופרטור, בוחרים באפשרות יש ערך.
בשדה נתיב ערך, מזינים את נתיב הערך של התג בפורמט
ORGANIZATION/TAG_KEY/TAG_VALUE. לדוגמה,example.org/employee_type/intern.
תנאי התג הזה ב-IAM מגביל את הגישה של המתמחה למערכי נתונים עם התג
intern.כדי לשמור את תנאי התג, לוחצים על שמירה.
כדי לשמור את השינויים שביצעתם בחלונית עריכת הרשאות, לוחצים על שמירה.
כדי לצרף את ערך התג
internלמערך הנתוניםanonymousData, מריצים את הפקודהgcloud resource-manager tags bindings createבשורת הפקודה. לדוגמה:gcloud resource-manager tags bindings create \ --tag-value=tagValues/4567890123 \ --parent=//bigquery.googleapis.com/projects/userData/datasets/anonymousData \ --location=US
שליטה בגישה לעמודות באמצעות תגי ניהול נתונים
אפשר לאכוף אבטחה ברמת העמודה ואנונימיזציה של נתונים ב-BigQuery באמצעות תגי משילות מידע (data governance). תגי משילות מידע (data governance) הם סוג של תג מנהל המשאבים שאפשר לצרף לעמודות עם נתונים רגישים ולהשתמש בהם במדיניות הנתונים של BigQuery כדי להעניק למשתמשים גישה מותנית.
כדי להגדיר אבטחה ברמת העמודה, יוצרים תגי משילות מידע (data governance) ומצרפים אותם לעמודות ב-BigQuery. לאחר מכן, יוצרים מדיניות נתונים ב-BigQuery שמתייחסת לתגים האלה. במדיניות הזו מוחלים כללים להסתרת נתונים או שניתנת גישה לנתונים גולמיים למשתמשים ספציפיים, כדי להבטיח שרק ישויות מורשות יוכלו לראות מידע אישי רגיש.
מידע נוסף זמין במאמרים מבוא לבקרת גישה ברמת העמודה ומבוא להסתרת נתונים.
לפני שמתחילים להשתמש בתגי ניהול
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init - כדי ליצור ולנהל תגי משילות מידע, צריך להשתמש ב-BigQuery Enterprise edition.
התפקידים הנדרשים לתגי סיווג של משילות מידע
כדי לקבל את ההרשאות שדרושות לשליטה בגישה לעמודות באמצעות תגי ניהול נתונים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
-
יוצרים תגי ניהול נתונים:
- Tag Administrator (
roles/resourcemanager.tagAdmin) on the project or organization - צפייה בארגון (
roles/resourcemanager.organizationViewer) בארגון
- Tag Administrator (
-
מצרפים או מסירים תגים לעמודות:
- BigQuery Data Owner (
roles/bigquery.dataOwner) בטבלה - Tag User (
roles/resourcemanager.tagUser) בארגון, בפרויקט או בערך התג
- BigQuery Data Owner (
-
יצירה וניהול של מדיניות נתונים:
BigQuery Admin (
roles/bigquerydatapolicy.admin) בפרויקט
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
יצירת תגים למשילות מידע (data governance)
יוצרים את המפתח של תג משילות המידע ואת הערכים שלו.
יצירת מפתח תג
כדי ליצור מפתח לתג של משילות מידע (data governance), מגדירים את השדה purpose לערך DATA_GOVERNANCE כשיוצרים את מפתח התג. הגדרת המטרה הזו מסווגת את התג לאבטחה ברמת העמודה או לאנונימיזציה של נתונים, ומבדילה אותו מתגי משאבים כלליים ב-BigQuery.
gcloud
מריצים את הפקודה
gcloud resource-manager tags keys create:gcloud resource-manager tags keys create TAG_KEY \ --parent=projects/PROJECT_ID \ --purpose=DATA_GOVERNANCEמחליפים את מה שכתוב בשדות הבאים:
-
TAG_KEY: השם המקוצר של מפתח התג. -
PROJECT_ID: המזהה של הפרויקט ב- Google Cloud. כדי לספק ארגון במקום פרויקט, משתמשים ב-organizations/ORGANIZATION_IDבמקום ב-projects/PROJECT_ID.
-
API
שליחת בקשת
POSTלנקודת הקצהtagKeys:curl --request POST \ "https://cloudresourcemanager.googleapis.com/v3/tagKeys" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{"shortName":"TAG_KEY","parent":"projects/PROJECT_ID","purpose":"DATA_GOVERNANCE"}' \ --compressedמחליפים את מה שכתוב בשדות הבאים:
-
TAG_KEY: השם המקוצר של מפתח התג. -
PROJECT_ID: המזהה של הפרויקט ב- Google Cloud. כדי לספק ארגון במקום פרויקט, משתמשים ב-organizations/ORGANIZATION_IDבמקום ב-projects/PROJECT_ID.
-
יצירת ערך תג
כדי להוסיף ערך אחד או יותר למפתח תג, פועלים לפי השלבים הבאים.
gcloud
כדי לקבל את השם ממרחב השמות של מפתח התג, מריצים את הפקודה
gcloud resource-manager tags keys list:gcloud resource-manager tags keys list --parent=projects/PROJECT_IDכדי ליצור ערך חדש, מריצים את הפקודה
gcloud resource-manager tags values create:gcloud resource-manager tags values create TAG_VALUE \ --parent=PROJECT_ID/TAG_KEYמחליפים את מה שכתוב בשדות הבאים:
-
TAG_VALUE: שם מקוצר שמוגדר על ידי המשתמש לערך התג. -
PROJECT_ID: המזהה של הפרויקט ב- Google Cloud. כדי לספק ארגון במקום פרויקט, משתמשים ב-ORGANIZATION_ID.
-
API
מקבלים את השם ממרחב השמות של מפתח התג:
curl --request GET \ "https://cloudresourcemanager.googleapis.com/v3/tagKeys/namespaced?name=PROJECT_ID/TAG_KEY" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header 'Accept: application/json'התשובה מכילה את השדה
name, לדוגמהtagKeys/4567890123.שליחת בקשת
POSTלנקודת הקצהtagValuesעם שם מפתח התג:curl --request POST \ "https://cloudresourcemanager.googleapis.com/v3/tagValues" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{"shortName":"TAG_VALUE","parent":"tagKeys/TAG_KEY_ID"}' \ --compressedמחליפים את מה שכתוב בשדות הבאים:
-
TAG_VALUE: שם מקוצר שמוגדר על ידי המשתמש לערך התג. -
PROJECT_ID: המזהה של הפרויקט ב- Google Cloud. כדי לספק ארגון במקום פרויקט, משתמשים ב-ORGANIZATION_ID. -
TAG_KEY_ID: השם ממרחב השמות של מפתח התג משלב 1 – לדוגמה, אם שם מפתח התג הואtagKeys/4567890123, אז מזהה מפתח התג הוא4567890123.
-
יצירת ערכי תגים היררכיים
אפשר גם ליצור ערך תג צאצא שמשויך לערך תג אב, ולבנות עץ היררכי של ערכי תגי משילות מידע. ההיררכיה יכולה להיות בעומק של 5 רמות, כמו שמוצג בתרשים הבא:
gcloud
כדי ליצור ערך של תג צאצא, מריצים את הפקודה gcloud resource-manager tags values create ומציינים ערך של תג אב בדגל --parent:
gcloud resource-manager tags values create CHILD_TAG_VALUE \
--parent=PROJECT_ID/TAG_KEY/PARENT_TAG_VALUE
מחליפים את מה שכתוב בשדות הבאים:
-
CHILD_TAG_VALUE: השם המקוצר של ערך תג הצאצא שאתם יוצרים. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . כדי לספק ארגון במקום פרויקט, משתמשים ב-ORGANIZATION_ID. -
TAG_KEY: השם המקוצר של מפתח התג שהוא ההורה של ערך התג. -
PARENT_TAG_VALUE: השם המקוצר של ערך תג האב.
API
כדי ליצור ערך תג צאצא, משתמשים בשם המשאב של ערך התג של ההורה (לדוגמה, tagValues/123456789012) בשדה parent:
curl --request POST \
"https://cloudresourcemanager.googleapis.com/v3/tagValues" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"shortName":"CHILD_TAG_VALUE","parent":"tagValues/PARENT_TAG_VALUE_ID"}' \
--compressed
מחליפים את מה שכתוב בשדות הבאים:
-
CHILD_TAG_VALUE: השם המקוצר של ערך תג הצאצא שאתם יוצרים. -
PARENT_TAG_VALUE_ID: המזהה המספרי של ערך התג הראשי.
צירוף תגי משילות מידע (data governance) לעמודות ב-BigQuery
מצרפים את התגים של ניהול הנתונים שיצרתם לעמודות ב-BigQuery שרוצים להגן עליהן.
SQL
יצירת טבלה חדשה עם עמודה מתויגת
כדי לצרף תגים של משילות מידע כשיוצרים טבלה חדשה, משתמשים בהצהרה CREATE TABLE. מציינים את התג על ידי הגדרת האפשרות data_governance_tags בעמודה.
CREATE TABLE PROJECT_ID.DATASET_ID.TABLE_ID (
COLUMN_NAME INT64 OPTIONS (data_governance_tags=[("PROJECT_ID/TAG_KEY", "TAG_VALUE")])
);
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . כדי לציין ארגון במקום פרויקט כהורה של התג, משתמשים ב-ORGANIZATION_IDבמקום בפורמט של מפתח התג (ORGANIZATION_ID/TAG_KEY). -
DATASET_ID: המזהה של מערך הנתונים שבו נמצא הטבלה. -
TABLE_ID: המזהה של הטבלה שיוצרים. -
COLUMN_NAME: שם העמודה שרוצים לתייג. -
TAG_KEY: מפתח התג שרוצים להחיל. -
TAG_VALUE: ערך התג שרוצים להחיל.
הוספת תג לטבלה קיימת
כדי לצרף תגי משילות מידע לעמודה בטבלה קיימת, משתמשים בהצהרת ALTER TABLE כדי להגדיר את האפשרות data_governance_tags בעמודה.
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID
ALTER COLUMN COLUMN_NAME SET OPTIONS (data_governance_tags=[("PROJECT_ID/TAG_KEY", "TAG_VALUE")]);
bq CLI
יצירת טבלה חדשה עם עמודה מתויגת
כדי ליצור קובץ סכימת JSON מקומי שמגדיר את התג, מריצים את הפקודה
bq mk:bq mk \ --table \ --project_id=PROJECT_ID \ --description="description of my table" \ --schema=SCHEMA_FILE.json \ DATASET_ID.TABLE_IDמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: המזהה של הפרויקט ב- Google Cloud. כדי לציין ארגון במקום פרויקט כרכיב האב של התג, משתמשים ב-ORGANIZATION_IDבמקום בפורמט של מפתח התג (ORGANIZATION_ID/TAG_KEY). -
DATASET_ID: המזהה של מערך הנתונים שבו נמצא הטבלה. -
TABLE_ID: המזהה של הטבלה שיוצרים.
-
הוספת תג לטבלה קיימת
כדי להוסיף תג לטבלה קיימת, קודם מייצאים את הסכימה שלה לקובץ מקומי:
bq show \ --project_id=PROJECT_ID \ --schema \ --format=prettyjson \ DATASET_ID.TABLE_ID > SCHEMA_FILE.jsonעורכים את קובץ הסכימה כדי להוסיף את האובייקט
dataGovernanceTagsInfoלעמודה. לדוגמה:[ { "description": "my sensitive column", "mode": "NULLABLE", "name": "Column_X", "type": "INT64", "dataGovernanceTagsInfo": { "dataGovernanceTags": { "PROJECT_ID/TAG_KEY": "TAG_VALUE" } } }, { "mode": "REQUIRED", "name": "column2", "type": "FLOAT" } ]מעדכנים את הטבלה כדי לצרף תגים לעמודה הרגישה באמצעות הפקודה
bq update:bq update \ --project_id=PROJECT_ID \ --schema=SCHEMA_FILE.json \ DATASET_ID.TABLE_IDאפשר גם להשתמש בפקודה
bq updateכדי להסיר תגים קיימים ולצרף תגים חדשים.
API
יצירת טבלה חדשה עם עמודה מתויגת
משתמשים בשיטה tables.insert. כוללים את השדה dataGovernanceTagsInfo בגוף הבקשה.
```json
{
"schema": {
"fields": [
{
"name": "Column_X",
"type": "INT64",
"description": "sensitive column",
"dataGovernanceTagsInfo": {
"dataGovernanceTags": {
"PROJECT_ID/TAG_KEY": "TAG_VALUE"
}
}
}
]
}
}
```
הוספת תג לטבלה קיימת
מאחזרים את משאב הטבלה הנוכחי באמצעות השיטה
tables.get.משנים את משאב הטבלה כך שיכלול את השדה
dataGovernanceTagsInfoשל עמודת היעד.מבצעים קריאה לשיטה
tables.updateאוtables.patchעם משאב הטבלה המעודכן.
יצירה וניהול של מדיניות נתונים
יצירה וניהול של מדיניות נתונים ב-BigQuery שמפנה לתגי ניהול נתונים כדי להחיל כללי מיסוך או מדיניות גישה לנתונים גולמיים.
אחרי שיוצרים מדיניות גישה לנתונים עבור עמודה עם תג, רק משתמשים שצוינו במדיניות הזו יכולים לגשת לעמודה, בתנאי שיש להם גם גישה לטבלה. לכל שאר המשתמשים לא תהיה גישה.
יצירת מדיניות בנושא נתונים
API
יוצרים מדיניות נתונים שמשתמשת בSHA256כלל מוגדר מראש להסתרת נתונים, או יוצרים מדיניות גישה לנתונים גולמיים.
יצירת מדיניות נתונים עם כלל מוגדר מראש של SHA256 מיסוך
כדי ליצור מדיניות נתונים עם SHA256 כלל מוגדר מראש למסכות, שולחים בקשת POST לנקודת הקצה dataPolicies:
curl --request POST \
"https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"dataPolicy":{"dataPolicyType":"DATA_MASKING_POLICY","dataMaskingPolicy":{"predefinedExpression":"SHA256"},"grantees": ["principal://goog/subject/EMAIL_ADDRESS"],"dataGovernanceTag":{"key":"PROJECT_ID/TAG_KEY","value":"TAG_VALUE"}},"dataPolicyId":"POLICY_ID"}' \
--compressed
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: המזהה של הפרויקט ב- Google Cloud. כדי לציין ארגון במקום פרויקט כרכיב ההורה של התג, משתמשים ב-ORGANIZATION_IDבמקום בפורמטdataGovernanceTag.key(ORGANIZATION_ID/TAG_KEY). -
LOCATION: האזור שבו יוצרים את מדיניות הנתונים. מידע נוסף זמין במאמר בנושא מיקומי מדיניות בנושא נתונים. -
EMAIL_ADDRESS: כתובת האימייל של המשתמש שרוצים להעניק לו גישה. -
TAG_KEY: השם המקוצר של מפתח התג. -
TAG_VALUE: שם מקוצר שמוגדר על ידי המשתמש של ערך התג. -
POLICY_ID: המזהה של מדיניות הנתונים.
יצירת מדיניות גישה לנתונים גולמיים
כדי ליצור מדיניות גישה לנתונים גולמיים, מגדירים את dataPolicyType לערך RAW_DATA_ACCESS_POLICY:
curl --request POST \
"https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"dataPolicy":{"dataPolicyType":"RAW_DATA_ACCESS_POLICY","grantees": ["principal://goog/subject/EMAIL_ADDRESS"],"dataGovernanceTag":{"key":"PROJECT_ID/TAG_KEY","value":"TAG_VALUE"}},"dataPolicyId":"POLICY_ID"}' \
--compressed
עדכון מדיניות בנושא נתונים
עדכון מדיניות נתונים קיימת כדי להעניק גישה למשתמשים נוספים.
API
כדי להוסיף משתמשים על ידי עדכון ישיר של מדיניות, קודם צריך לקבל את המדיניות הנוכחית ואת
etagשלה:curl --request GET \ "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --compressedשולחים בקשת
PATCHעם הרשימה המעודכנת של מקבלי ההרשאות ועםetagמהשלב הקודם:curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "grantees": ["principal://goog/subject/user1@example.com","principal://iam.googleapis.com/projects/-/serviceAccounts/SA_EMAIL_ADDRESS"], "etag": "ETAG" }' \ "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID?updateMask=grantees"מחליפים את
ETAGבערך שלetagשהוחזר בבקשתGETבשלב הקודם.אפשר גם להשתמש בשיטה
addGranteesכדי להוסיף משתמשים למדיניות:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "grantees": ["principal://goog/subject/user1@example.com","principal://iam.googleapis.com/projects/-/serviceAccounts/SA_EMAIL_ADDRESS"] }' \ "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID:addGrantees"כדי להסיר משתמשים ממדיניות, משתמשים ב-method
removeGrantees:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "grantees": ["principal://goog/subject/user1@example.com","principal://iam.googleapis.com/projects/-/serviceAccounts/SA_EMAIL_ADDRESS"] }' \ "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID:removeGrantees"
מחיקת מדיניות בנושא נתונים
API
כדי למחוק מדיניות נתונים, שולחים בקשת DELETE לנקודת הקצה dataPolicies:
curl --request DELETE \
"https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--compressed
הצגת רשימה של כללי מדיניות בנושא נתונים
API
כדי לכלול ברשימה את כללי מדיניות בנושא נתונים שמפנים למפתח תג, שולחים בקשת GET לנקודת הקצה dataPolicies עם הפרמטר filter:
curl --request GET \
"https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies?filter=dataGovernanceTag:PROJECT_ID/TAG_KEY" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--compressed
אינטראקציות עם תכונות אחרות
בקטע הזה מוסבר איך תגי משילות מידע (data governance) פועלים עם תכונות אחרות של BigQuery.
| תכונה | אינטראקציה |
|---|---|
| Information Schema | תגי משילות מידע (data governance) שמצורפים לעמודות נכללים בתצוגות INFORMATION_SCHEMA.COLUMNS ו-INFORMATION_SCHEMA.COLUMN_FIELD_PATHS. |
| העתקת טבלה | העתקות של טבלאות בין אזורים מושבתות עבור טבלאות עם תכונות אבטחה ברמת העמודה, כולל טבלאות עם תגי משילות מידע (data governance). |
| מסע בזמן | הגישה לנתונים היסטוריים בטבלה כפופה למדיניות הגישה והתגים שמצורפים לטבלה. |
הגדרת פרויקט ברירת מחדל של מדיניות נתונים
כשניגשים לעמודות שמוגנות על ידי תגי משילות מידע (data governance), מערכת BigQuery מעריכה כברירת מחדל רק את מדיניות הנתונים בפרויקט שבו נמצאת הטבלה. מדיניות נתונים שמוגדרת בפרויקטים אחרים לא חלה, אלא אם האדמין מגדיר פרויקט ברירת מחדל של מדיניות נתונים ברמת הארגון.
אם הוגדר פרויקט ברירת מחדל של מדיניות נתונים בארגון, מערכת BigQuery תבדוק את מדיניות הנתונים של הפרויקט של הטבלה ואת מדיניות הנתונים של פרויקט ברירת המחדל כדי לקבוע את הגישה לעמודות.
אם משתמש כפוף למדיניות נתונים סותרת גם בפרויקט של הטבלה וגם בפרויקט של מדיניות הנתונים שמוגדרת כברירת מחדל, מדיניות הנתונים בפרויקט של הטבלה מקבלת עדיפות.
כדי להגדיר או להציג את האפשרות default_data_policy_projects ברמת הארגון באמצעות DDL או תצוגות INFORMATION_SCHEMA, אפשר לעיין במאמר הגדרות לניהול נתונים במסמכי התיעוד של הגדרות ברירת המחדל.
המגבלות של תגי משילות מידע
- בטבלאות BigQuery Omni אין תמיכה בתגי משילות מידע (data governance) בעמודות.
- אפשר להשתמש במסוף Google Cloud כדי להציג תגים של משילות מידע (data governance) בעמודות, אבל אי אפשר לקשר או לבטל את הקישור שלהם.
- אפשר לקשר תג אחד לכל עמודה ועד 1,000 תגים ייחודיים לכל טבלה.
- אם שולחים שאילתה לעמודה עם תג באמצעות BigQuery Storage Read API,
tabledata.listאו טבלאות עם תווים כלליים, מקבלים שגיאת דחיית גישה, אלא אם מדיניות הנתונים מעניקה לכם גישה. - בשדות
STRUCT, אפשר להחיל תגי משילות מידע רק על שדות העלה. - אפשר למחוק ערכי תגים שמצורפים לעמודות. אם מוחקים ערך של תג, הקישור של התג נשאר בעמודה, אבל יכול להיות שתאבדו את הגישה לעמודה כי ערך התג כבר לא קיים.
פתרון בעיות בתגי משילות מידע (data governance)
בקטע הזה נסביר איך לפתור בעיות נפוצות שקשורות לשליטה בגישה לעמודות באמצעות תגי ניהול נתונים.
שמות תגים בפורמט שגוי
כשיוצרים תגים, מגדירים שם קצר (לדוגמה, ssn). עם זאת, כשמצרפים תגים לעמודות בסכימה או משתמשים בהם בתנאים, מפתח התג צריך להיות בפורמט של מרחב שמות (PROJECT_ID/TAG_KEY או ORGANIZATION_ID/TAG_KEY), אבל ערך התג עדיין משתמש בשם הקצר. אם מספקים רק את השם הקצר של מפתח התג, מוצגת שגיאה Invalid tagKey או Invalid
tagValue.
החלת מדיניות על פרויקטים שונים
כברירת מחדל, מתבצעת הערכה רק של מדיניות הנתונים בפרויקט של הטבלה. כללי מדיניות מפרויקטים אחרים לא חלים, אלא אם מוגדר פרויקט ברירת מחדל של מדיניות נתונים ברמת הארגון. מידע נוסף על הגדרה והערכה של מדיניות חוצת-פרויקטים זמין במאמר הגדרת פרויקט של מדיניות ברירת מחדל לנתונים.
המאמרים הבאים
- סקירה כללית על התגים ב- Google Cloudזמינה במאמר סקירה כללית על התגים.
- מידע נוסף על השימוש בתגים זמין במאמר יצירה וניהול של תגים.
- מידע נוסף על החלת כללי מדיניות על עמודות
- במאמר שליטה בגישה באמצעות תנאי IAM מוסבר איך לשלוט בגישה למשאבי BigQuery באמצעות תנאי IAM.