גישה לנקודות קצה של gRPC ב-Dataproc Metastore

בדף הזה מוסבר איך להעניק גישה ל Google Cloud חשבון משתמש או לחשבון שירות לשירות Dataproc Metastore שמשתמש בפרוטוקול של נקודת קצה gRPC.

מידע על מתן תפקידים של מטא-נתונים ב-gRPC

כשמעניקים לחשבון גישה למטא-נתונים, כדאי להביא בחשבון את המושגים הבאים:

  • רמת הגישה שרוצים להעניק. רמת הגישה שאתם מעניקים קובעת את כמות המטא-נתונים שאפשר לגשת אליהם בחשבון. לדוגמה, אתם יכולים לבחור לתת גישה למטא-נתונים שמאוחסנים במסד נתונים ספציפי, בטבלה ספציפית או לתת גישה לכל הפרויקט.
  • החשבון הראשי שנדרשת לו גישה. אתם משתמשים בנציגי IAM (זהויות) כדי להריץ את העבודות. לדוגמה, אתם יכולים להריץ משימות של אשכול Dataproc באמצעות חשבונות משתמשים או חשבונות שירות (בדרך כלל חשבון השירות של מכונת Dataproc VM).

    מידע נוסף על החשבונות שאפשר להשתמש בהם עם Dataproc Metastore זמין במאמר חשבונות שירות של Dataproc.

בהתאם להיקף השליטה הנדרש, צריך להקצות לחשבון המשתמש אחד מהתפקידים המוגדרים מראש הבאים ב-IAM:

  • כדי להעניק גישה מלאה למשאבי המטא-נתונים. התפקיד Metadata Owner (בעלים של מטא-נתונים) (roles/metastore.metadataOwner)
  • כדי להעניק גישת קריאה וכתיבה למטא-נתונים: התפקיד 'עורך מטא-נתונים' (roles/metastore.metadataEditor)
  • כדי להעניק גישת קריאה למטא-נתונים: התפקיד 'צפייה במטא-נתונים' (roles/metastore.metadataViewer)

לפני שמתחילים

  • מפעילים את Dataproc Metastore בפרויקט.
  • יוצרים שירות של Dataproc Metastore שמשתמש בפרוטוקול gRPC.
  • הבנת דרישות הרשת שספציפיות לפרויקט.

    • דרישות לשימוש ב-gRPC ובענן וירטואלי פרטי (VPC) אם אתם משתמשים ב-gRPC, אתם לא צריכים להגדיר VPC משותף או להגדיר הגדרות רשת נוספות. כברירת מחדל, אפשר להגיע לנקודות קצה של gRPC מכל VPC.

    עם זאת, יש יוצא מן הכלל אחד. אם הפרויקט שלכם משתמש ב-service perimeter של VPC-SC, אפשר להגיע לנקודות קצה של gRPC רק מ-VPC ששייך לפרויקטים ב-perimeter. מידע נוסף זמין במאמר VPC Service Controls עם Dataproc Metastore.

תפקידים נדרשים

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

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

התפקידים המוגדרים מראש האלה מכילים את ההרשאות שנדרשות כדי להעניק למשתמש גישה למטא-נתונים של Dataproc Metastore. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:

ההרשאות הנדרשות

כדי לתת לישות מורשית גישה למטא-נתונים של Dataproc Metastore, נדרשות ההרשאות הבאות:

  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.setIamPolicy

יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

במאמר סקירה כללית על IAM ב-Dataproc Metastore יש מידע נוסף על תפקידים והרשאות ספציפיים ב-Dataproc Metastore.

הענקת גישה לחשבון ראשי למטא-נתונים

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

הענקת גישה ברמת הפרויקט

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

‫CLI של gcloud

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

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=PRINCIPAL \
    --role=METASTORE_ROLE

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

  • PROJECT_ID: Google Cloud מזהה הפרויקט שרוצים להעניק לו גישה למטא-נתונים.
  • PRINCIPAL: הסוג ומזהה האימייל (כתובת האימייל) של החשבון הראשי.
    • לחשבונות משתמש: user:EMAIL_ID
    • לחשבונות שירות: serviceAccount:EMAIL_ID
    • ב-Google Groups: group:EMAIL_ID
    • לסוגים אחרים של חשבונות משתמשים: מזהים של חשבונות משתמשים
  • METASTORE_ROLE\`: One of the following roles, depending on the scope of access that you want to grant the principal:roles/metastore.metadataViewer,roles/metastore.metadataEditor, orroles/metastore.metadataOwner`.

הקצאת גישה ברמת השירות

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

‫CLI של gcloud

כדי להקצות תפקידים של מטא-נתונים ברמת הגרנולריות של שירות Dataproc Metastore יחיד, מריצים את הפקודה הבאה gcloud metastore services add-iam-policy-binding:

gcloud metastore services add-iam-policy-binding SERVICE_ID \
  --location=LOCATION \
  --member=PRINCIPAL \
  --role=METASTORE_ROLE

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

  • SERVICE_ID: המזהה או המזהה המוגדר במלואו של שירות Dataproc Metastore.
  • LOCATION: האזור של Dataproc Metastore שרוצים להעניק לו גישה.
  • PRINCIPAL: הסוג ומזהה האימייל (כתובת האימייל) של החשבון הראשי:
    • לחשבונות משתמש: user:EMAIL_ID
    • לחשבונות שירות: serviceAccount:EMAIL_ID
    • ב-Google Groups: group:EMAIL_ID
    • לסוגים אחרים של חשבונות משתמשים: מזהים של חשבונות משתמשים
  • METASTORE_ROLE: אחד מהתפקידים הבאים, בהתאם להיקף הגישה שרוצים להעניק לחשבון המשתמש: roles/metastore.metadataViewer,‏ roles/metastore.metadataEditor או roles/metastore.metadataOwner.

הענקת גישה ברמת מסד הנתונים

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

‫CLI של gcloud

כדי להעניק תפקידי מטא-נתונים ברמת הגרנולריות של מסד נתונים ספציפי, מריצים את הפקודה הבאה של gcloud metastore services databases add-iam-policy-binding:

gcloud metastore services databases add-iam-policy-binding DATABASE_ID \
  --project=PROJECT \
  --location=LOCATION \
  --service=SERVICE_ID \
  --member=PRINCIPAL \
  --role=METASTORE_ROLE

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

  • DATABASE_ID: המזהה של מסד הנתונים שרוצים להעניק לו גישה למטא-נתונים. המזהה הזה מופיע בסכימת מסד הנתונים.
  • PROJECT: מזהה הפרויקט שכולל את שירות Dataproc Metastore שרוצים להעניק לו גישה למטא-נתונים. Google Cloud
  • LOCATION: האזור של שירות Dataproc Metastore שרוצים להעניק לו גישה.
  • SERVICE_ID: המזהה או המזהה המוגדר במלואו של שירות Dataproc Metastore.
  • PRINCIPAL: הסוג ומזהה האימייל (כתובת האימייל) של החשבון הראשי:
    • לחשבונות משתמש: user:EMAIL_ID
    • לחשבונות שירות: serviceAccount:EMAIL_ID
    • ב-Google Groups: group:EMAIL_ID
    • לסוגים אחרים של חשבונות משתמשים: מזהים של חשבונות משתמשים
  • METASTORE_ROLE: אחד מהתפקידים הבאים, בהתאם להיקף הגישה שרוצים להעניק לחשבון המשתמש: roles/metastore.metadataViewer,‏ roles/metastore.metadataEditor או roles/metastore.metadataOwner.

הענקת גישה ברמת הטבלה

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

‫CLI של gcloud

כדי להעניק תפקידים של מטא-נתונים ברמת הגרנולריות של טבלה, מריצים את הפקודה הבאה של gcloud metastore services databases tables add-iam-policy-binding:

gcloud metastore services databases tables add-iam-policy-binding TABLE_ID \
  --database=DATABASE_ID \
  --project=PROJECT \
  --location=LOCATION \
  --service=SERVICE_ID \
  --member=PRINCIPAL \
  --role=METASTORE_ROLE

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

  • TABLE_ID: המזהה של הטבלה שרוצים להעניק לה גישה. המזהה הזה מופיע בסכימת מסד הנתונים.
  • DATABASE_ID: המזהה של מסד הנתונים שמכיל את הטבלה שעבורה מעניקים גישה למטא-נתונים. המזהה הזה מופיע בסכימת מסד הנתונים.
  • PROJECT: מזהה הפרויקט Google Cloud שמכיל את שירות Dataproc Metastore שרוצים להעניק לו גישה למטא-נתונים.
  • LOCATION: האזור של שירות Dataproc Metastore שמעניקים לו גישה למטא-נתונים.
  • SERVICE_ID: המזהה או המזהה המוגדר במלואו של שירות Dataproc Metastore.
  • PRINCIPAL: הסוג ומזהה האימייל (כתובת האימייל) של החשבון הראשי:
    • לחשבונות משתמש: user:EMAIL_ID
    • לחשבונות שירות: serviceAccount:EMAIL_ID
    • ב-Google Groups: group:EMAIL_ID
  • METASTORE_ROLE: אחד מהתפקידים הבאים, בהתאם להיקף הגישה שרוצים להעניק לחשבון המשתמש: roles/metastore.metadataViewer,‏ roles/metastore.metadataEditor או roles/metastore.metadataOwner.

אחרי שמעניקים גישה למטא-נתונים

אחרי שמקצים את התפקידים הנדרשים לחשבונות השירות, אפשר לקשר את Dataproc Metastore לאשכול Dataproc. לאחר מכן, האשכול משתמש בשירות Dataproc Metastore בתור Hive Metastore.

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