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

במאמר הזה מוסבר על התפקידים במערכת לניהול הזהויות והרשאות הגישה (IAM) לשיתוף ב-BigQuery (לשעבר Analytics Hub) ואיך להעניק אותם. מידע נוסף זמין במאמר תפקידים והרשאות של שיתוף ב-BigQuery.

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

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

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

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

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

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

תפקידי אדמין של בעלי תוכן דיגיטלי ושל כרטיסי מוצר ב-Analytics Hub

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

המסוף

  1. עוברים אל IAM של הפרויקט.

    כניסה לדף 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. שומרים את השינויים.

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

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:user@gmail.com
    • קבוצת Google: group:admins@googlegroups.com
    • חשבון שירות: serviceAccount:server@example.gserviceaccount.com
    • דומיין Google Workspace: domain:example.com

API

  1. קוראים את המדיניות הקיימת באמצעות ה-method ‏getIamPolicy של המשאב. לפרויקטים, צריך להשתמש ב-projects.getIamPolicy method.

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

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

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

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

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

    {
     "members": [
       "group:admins@example.com"
     ],
     "role":"roles/analyticshub.admin"
    }
    
  3. כותבים את המדיניות המעודכנת באמצעות השיטה setIamPolicy.

    לדוגמה, כדי להגדיר מדיניות ברמת הפרויקט, משתמשים ב-method ‏project.setIamPolicy. בגוף הבקשה, מציינים את מדיניות ה-IAM המעודכנת מהשלב הקודם.

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

    מחליפים את PROJECT_ID במזהה הפרויקט.

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

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

המסוף

  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. קוראים את המדיניות הקיימת באמצעות ה-method‏ getIamPolicy של הרישום באמצעות 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 (לשעבר Analytics Hub) מחזיר את המדיניות הנוכחית.

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

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

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

    {
     "members": [
       "group:subscribers@example.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
    

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

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

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

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

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

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

המסוף

  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. קוראים את המדיניות הקיימת באמצעות ה-method‏ getIamPolicy של הרישום באמצעות 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: מזהה כרטיס המוצר.

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

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

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

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

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

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

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

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

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

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

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