הגדרת תפקידי שיתוף ב-BigQuery

כדי לנהל את הגישה לנתונים ולרשימות של שיתוף נתונים ב-BigQuery, צריך להקצות תפקידים ספציפיים ב-Identity and Access Management‏ (IAM) לשיתוף נתונים ב-BigQuery (לשעבר Analytics Hub). הקצאת התפקידים האלה מאפשרת לכם לשלוט בהרשאות לנתונים שלכם, ולוודא שרק משתמשים מורשים יכולים לגלות את משאבי שיתוף הנתונים שלכם, להירשם אליהם ולנהל אותם.

תפקידי IAM לשיתוף ב-BigQuery

בקטעים הבאים מתוארים תפקידי המשתמשים המוגדרים מראש לשיתוף ב-BigQuery. אפשר להקצות את התפקידים האלה כדי לשלוט בגישה לבורסות ולרשימות של נתונים.

תפקיד אדמין ב-Analytics Hub

כדי לנהל חילופי נתונים, שיתוף ב-BigQuery מספק את תפקיד האדמין של Analytics Hub (roles/analyticshub.admin) שאפשר להעניק לפרויקט או לחילופי נתונים. התפקיד הזה מאפשר לכם:

  • יצירה, עדכון ומחיקה של חילופי נתונים.
  • ליצור, לעדכן, למחוק ולשתף כרטיסי מוצר.
  • ניהול של מנהלי BigQuery sharing, מנהלי רישום, מפרסמים, מנויים וצופים.

התפקיד הזה הופך אתכם לאדמינים של שיתוף ב-BigQuery.

תפקידי אדמין של פרסום ורישום ב-Analytics Hub

כדי לנהל כרטיסי מוצר, BigQuery sharing מספק את התפקידים המוגדרים מראש הבאים שאפשר להקצות לפרויקט, לאוסף נתונים לשיתוף או לכרטיס מוצר:

תפקידים של מנוי ובעל הרשאת צפייה ב-Analytics Hub

כדי לצפות בפרטי מוצרים ובמרכזי נתונים ולהירשם אליהם, שיתוף ב-BigQuery מספק את התפקידים המוגדרים מראש הבאים שאפשר להקצות לפרויקט, למרכז נתונים או לפרטי מוצר:

  • ההרשאה 'מנוי' ב-Analytics Hub (roles/analyticshub.subscriber), שמאפשרת לכם לצפות בכרטיסי מוצר ולהירשם אליהם.

    התפקיד הזה הופך אתכם למנויים לשיתוף ב-BigQuery.

  • תפקיד הצופה ב-Analytics Hub (roles/analyticshub.viewer), שמאפשר לכם לראות את הרישומים ואת הרשאות שיתוף הנתונים.

    התפקיד הזה הופך אתכם למשתמשים עם הרשאת צפייה בשיתוף ב-BigQuery.

תפקיד הבעלים של המינוי ל-Analytics Hub

כדי לנהל מינויים, מערכת BigQuery sharing מספקת את התפקיד המוגדר מראש הבא שאפשר להקצות לפרויקט:

התפקיד הזה הופך אתכם לבעלים של מינוי לשיתוף ב-BigQuery.

הענקת תפקידים ב-IAM לשיתוף ב-BigQuery

אפשר להעניק תפקידי IAM ברמות הבאות של היררכיית המשאבים:

  • פרויקט. אם מקצים תפקיד לפרויקט, הוא חל על כל חילופי הנתונים והכרטיסים באותו פרויקט.
  • החלפת נתונים. אם נותנים תפקיד לבורסת נתונים, הוא חל על כל כרטיסי המוצר בבורסת הנתונים הזו.
  • כרטיס מוצר. אם מעניקים תפקיד לכרטיס מוצר, הוא חל רק על כרטיס המוצר הספציפי הזה.

הקצאת תפקידים לפרויקט

כדי להגדיר מדיניות IAM בפרויקט, צריך להיות לכם התפקיד אדמין IAM של פרויקט (roles/resourcemanager.projectIamAdmin) בפרויקט הזה. כדי להעניק את תפקידי ה-IAM המוגדרים מראש לשיתוף ב-BigQuery עבור פרויקט, בוחרים באחת מהאפשרויות הבאות:

המסוף

  1. נכנסים לדף IAM במסוף Google Cloud .

    כניסה לדף IAM

  2. לוחצים על Grant access.

  3. בשדה New principals, מזינים את כתובת האימייל של חשבון המשתמש שרוצים להעניק לו גישה. אפשר לציין כל אחד מסוגי הגורמים המורשים הבאים:

    • כתובת האימייל בחשבון Google: test-user@gmail.com
    • קבוצת Google: admins@googlegroups.com
    • חשבון שירות: server@example.gserviceaccount.com
    • דומיין Google Workspace: ‏ example.com
  4. ברשימה Select a role, מציבים את הסמן מעל Analytics Hub ובוחרים באחד מהתפקידים הבאים:

    • Analytics Hub Admin
    • אדמין של כרטיס מוצר ב-Analytics Hub
    • Analytics Hub Publisher
    • Analytics Hub Subscriber
    • בעלים של מינוי ל-Analytics Hub
    • Analytics Hub Viewer
  5. אופציונלי: כדי לשלוט בגישה ל Google Cloud משאבים, מוסיפים קישור תפקיד מותנה.

  6. לוחצים על Save.

gcloud

כדי להקצות תפקידים בפרויקט, משתמשים בפקודה gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='PRINCIPAL' \
    --role='roles/analyticshub.admin'

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט, לדוגמה: my-project-1.
  • PRINCIPAL: חשבון משתמש תקין שרוצים לתת לו את התפקיד. אפשר לציין כל אחד מסוגי הגורמים הבאים:

    • כתובת האימייל בחשבון Google: user:test-user@gmail.com
    • קבוצת Google: group:admins@googlegroups.com
    • חשבון שירות: serviceAccount:server@example.gserviceaccount.com
    • דומיין Google Workspace: ‏ domain:example.com

API

  1. כדי לקרוא את המדיניות הקיימת, משתמשים בשיטה projects.getIamPolicy:

    POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
    

    מחליפים את PROJECT_ID במזהה הפרויקט, לדוגמה my-project-1.

  2. כדי להוסיף חשבונות ראשיים ואת התפקידים המשויכים שלהם, עורכים את המדיניות באמצעות כלי לעריכת טקסט. כדי להוסיף חברים, צריך להשתמש בפורמט הבא:

    • user:test-user@gmail.com
    • group:admins@googlegroups.com
    • serviceAccount:server@example.gserviceaccount.com
    • domain:example.com

    לדוגמה, כדי להקצות את התפקיד roles/analyticshub.admin ל-group:admins@googlegroups.com, מוסיפים את הקישור הבא למדיניות:

    {
     "members": [
       "group:admins@googlegroups.com"
     ],
     "role":"roles/analyticshub.admin"
    }
    
  3. כדי להגדיר מדיניות לפרויקט, משתמשים ב-‎projects.setIamPolicy method. בגוף הבקשה, מציינים את מדיניות ה-IAM המעודכנת מהשלב הקודם:

    POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
    

    מחליפים את PROJECT_ID במזהה הפרויקט, לדוגמה my-project-1.

אפשר לעדכן ולמחוק תפקידים בפרויקט באמצעות אותה חלונית IAM.

הקצאת תפקידים לחילופי נתונים

כשמעניקים הרשאות לשיתוף נתונים, צריך להשתמש באותיות קטנות לציון המיקום בשם המשאב. שימוש בערכים באותיות רישיות או בערכים עם שילוב של אותיות רישיות וקטנות עלול לגרום לשגיאות מסוג 'ההרשאה נדחתה'.

בדוגמאות הבאות מוצגים פורמטים תקינים ולא תקינים של שמות משאבים:

  • שימוש ב: projects/myproject/locations/us/dataExchanges/123
  • יש להימנע מ: projects/myproject/locations/US/dataExchanges/123
  • יש להימנע מ: projects/myproject/locations/Eu/dataExchanges/123

כדי להקצות תפקידים לחילופי נתונים, בוחרים באחת מהאפשרויות הבאות:

המסוף

  1. נכנסים לדף Sharing (Analytics Hub) במסוף Google Cloud .

    מעבר אל 'שיתוף' (Analytics Hub)

  2. לוחצים על השם של אוסף הנתונים לשיתוף שרוצים להגדיר לו הרשאות.

  3. לוחצים על הכרטיסייה פרטים.

  4. לוחצים על הגדרת הרשאות.

  5. כדי להוסיף גורמים, לוחצים על Add principal.

  6. בשדה New principals, מזינים את כתובת האימייל של חשבון המשתמש שרוצים להעניק לו גישה. אפשר גם להשתמש ב-allUsers כדי להפוך משאב לציבורי ונגיש לכולם באינטרנט, או ב-allAuthenticatedUsers כדי להפוך אותו לנגיש רק למשתמשים מחוברים ב-Google.

  7. ברשימה Select a role, מעבירים את מצביע העכבר מעל Analytics Hub ובוחרים אחד מהתפקידים הבאים ב-IAM:

    • Analytics Hub Admin
    • אדמין של כרטיס מוצר ב-Analytics Hub
    • Analytics Hub Publisher
    • Analytics Hub Subscriber
    • בעלים של מינוי ל-Analytics Hub
    • Analytics Hub Viewer
  8. לוחצים על Save.

API

  1. כדי לקרוא את המדיניות הקיימת, משתמשים בשיטה projects.locations.dataExchanges.getIamPolicy:

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:getIamPolicy
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט, לדוגמה: my-project-1.
    • LOCATION: המיקום של מרכז הנתונים שלכם. משתמשים באותיות קטנות.
    • DATAEXCHANGE_ID: מזהה חילופי הנתונים.

    שיתוף ב-BigQuery מחזיר את המדיניות הנוכחית.

  2. כדי להוסיף או להסיר חברים ואת תפקידי ה-IAM המשויכים שלהם, צריך לערוך את המדיניות באמצעות כלי לעריכת טקסט. כדי להוסיף חברים, צריך להשתמש בפורמט הבא:

    • user:test-user@gmail.com
    • group:admins@googlegroups.com
    • serviceAccount:server@example.gserviceaccount.com
    • domain:example.com

    לדוגמה, כדי להקצות את התפקיד roles/analyticshub.subscriber ל-group:subscribers@googlegroups.com, מוסיפים את הקישור הבא למדיניות:

    {
     "members": [
       "group:subscribers@googlegroups.com"
     ],
     "role":"roles/analyticshub.subscriber"
    }
    
  3. כדי להגדיר את המדיניות להחלפת הנתונים, משתמשים בשיטת projects.locations.dataExchanges.setIamPolicy. בגוף הבקשה, מציינים את מדיניות ה-IAM המעודכנת מהשלב הקודם:

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:setIamPolicy
    

אפשר לעדכן ולמחוק תפקידים של שיתוף נתונים באמצעות אותה חלונית IAM.

הקצאת תפקידים לכרטיס מוצר

כשנותנים הרשאות לכרטיס מוצר, צריך להשתמש באותיות קטנות לציון המיקום בשם המשאב. שימוש בערכים באותיות רישיות או בערכים עם אותיות רישיות וקטנות עלול לגרום לשגיאות מסוג 'ההרשאה נדחתה'.

בדוגמאות הבאות מוצגים פורמטים תקינים ולא תקינים של שמות משאבים:

  • שימוש ב: projects/myproject/locations/us/dataExchanges/123/listings/456
  • יש להימנע מ: projects/myproject/locations/US/dataExchanges/123/listings/456
  • יש להימנע מ: projects/myproject/locations/Eu/dataExchanges/123/listings/456

כדי להקצות תפקידים לכרטיס מוצר, בוחרים באחת מהאפשרויות הבאות:

המסוף

  1. נכנסים לדף Sharing (Analytics Hub) במסוף Google Cloud .

    מעבר אל 'שיתוף' (Analytics Hub)

  2. לוחצים על השם של בורסת הנתונים שמכילה את כרטיס המוצר.

  3. לוחצים על הרשומה שרוצים להגדיר לה הרשאות.

  4. לוחצים על הגדרת הרשאות.

  5. כדי להוסיף גורמים, לוחצים על Add principal.

  6. בשדה New principals, מזינים את כתובת האימייל של חשבון המשתמש שרוצים להעניק לו גישה.

  7. ברשימה Select a role, מעבירים את מצביע העכבר מעל Analytics Hub ובוחרים אחד מהתפקידים הבאים ב-IAM:

    • Analytics Hub Admin
    • אדמין של כרטיס מוצר ב-Analytics Hub
    • Analytics Hub Publisher
    • Analytics Hub Subscriber
    • בעלים של מינוי ל-Analytics Hub
    • Analytics Hub Viewer
  8. לוחצים על Save.

API

  1. כדי לקרוא את המדיניות הקיימת, משתמשים בשיטה projects.locations.dataExchanges.listings.getIamPolicy:

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:getIamPolicy
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט, לדוגמה: my-project-1.
    • LOCATION: המיקום של אוסף הנתונים לשיתוף שכולל את כרטיס המוצר. משתמשים באותיות קטנות.
    • DATAEXCHANGE_ID: מזהה חילופי הנתונים.
    • LISTING_ID: מזהה כרטיס המוצר.

    שיתוף ב-BigQuery מחזיר את המדיניות הנוכחית.

  2. כדי להוסיף או להסיר חברים ואת תפקידי ה-IAM המשויכים שלהם, צריך לערוך את המדיניות באמצעות כלי לעריכת טקסט. כדי להוסיף חברים, צריך להשתמש בפורמט הבא:

    • user:test-user@gmail.com
    • group:admins@googlegroups.com
    • serviceAccount:server@example.gserviceaccount.com
    • domain:example.com

    לדוגמה, כדי להקצות את התפקיד roles/analyticshub.publisher ל-group:publishers@googlegroups.com, מוסיפים את הקישור הבא למדיניות:

    {
     "members": [
       "group:publishers@googlegroups.com"
     ],
     "role":"roles/analyticshub.publisher"
    }
    
  3. כדי להגדיר את המדיניות לכרטיס המוצר, משתמשים ב-projects.locations.dataExchanges.listings.setIamPolicy method. בגוף הבקשה, מציינים את מדיניות ה-IAM המעודכנת מהשלב הקודם:

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:setIamPolicy
    

אפשר לעדכן ולמחוק תפקידים של כרטיסי מוצר באמצעות אותה חלונית IAM.

המאמרים הבאים