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

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

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

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

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

כדי לנהל אוספי נתונים לשיתוף, BigQuery sharing מספק את תפקיד האדמין של 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.

תפקיד בעלים של מינוי ל-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.

    לדוגמה, כדי להגדיר מדיניות ברמת הפרויקט, משתמשים בשיטה 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.

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