התכונה 'הקצאת הרשאות' לקטלוג זמן הריצה של Lakehouse מאפשרת להקצות גישה לאחסון ולהחיל הרשאות פרטניות על קובצי הנתונים. היכולת הזו היא חלק מ-Lakehouse for Apache Iceberg, והיא מאפשרת לכם לנהל מדיניות של ניהול זהויות והרשאות גישה (IAM) ברמת הטבלה עבור טבלאות שמאוחסנות ב-Cloud Storage.
אתם יכולים להשתמש ב-gcloud CLI כדי לקבל ולהגדיר את כללי המדיניות האלה ולשלוט בגישה למשאבים שלכם.
איך פועל תהליך הקצאת הרשאות
כשמשתמשים במכירת אישורים, רצף עיבוד השאילתות משתנה מעט כדי לאכוף את כללי המדיניות לפני קריאת הנתונים:
- בקשה: משתמש שולח שאילתת SQL למנוע נתמך (לדוגמה, Apache Spark או BigQuery).
- חיפוש מטא-נתונים: המנוע שולח בקשה לקטלוג של זמן הריצה של Lakehouse כדי לפתור את הבעיה בטבלה.
- אימות ומדיניות: הקטלוג מאמת את המשתמש ובודק את הרשאות ה-IAM שלו במשאבי Lakehouse של Google Cloud.
- תגובה: מכיוון שהפעלתם את האפשרות למכירת פרטי כניסה, הקטלוג מחזיר את המטא-נתונים ואת אסימון האחסון לזמן קצר (פרטי כניסה לאחסון עם היקף מצומצם) למנוע.
- קריאה: המנוע משתמש באסימון הזה כדי לקרוא את הקבצים הספציפיים המורשים ישירות מ-Cloud Storage.
- חישוב: המנוע מעבד את הנתונים ומחזיר את התוצאות.
מנועי חיפוש נתמכים
כדי להשתמש במנגנון למסירת פרטי כניסה עם מנועי שאילתות, צריך להגדיר את קטלוג ה-REST של Iceberg ב-Lakehouse כך שיתמוך במנגנון הזה.
- מנועי קוד פתוח: מנועים נתמכים כמו Apache Spark ו-Trino משתמשים באסימוני אחסון לטווח קצר שמונפקים על ידי הקטלוג. באפליקציית הלקוח צריך לציין תמיכה בהקצאת אישורים בכותרת
X-Iceberg-Access-Delegation. - BigQuery: ב-BigQuery נעשה שימוש בהרשאות שנמכרו לגישה ל-Cloud Storage במקום בהרשאות של משתמשי קצה.
הרשאות נדרשות בחשבון שירות
כשמפעילים את התכונה 'הקצאת פרטי כניסה', צריך לוודא שלחשבונות השירות הבאים יש את התפקידים הנדרשים:
- חשבון שירות של קטלוג זמן הריצה של Lakehouse שהוקצה אוטומטית: צריך לתת לחשבון הזה את התפקיד 'משתמש באובייקט אחסון' (
roles/storage.objectUser) בכל הקטגוריות המשויכות של Cloud Storage. לחשבון הזה אין גישה. בלי הגישה הזו, פרטי הכניסה שמוקצים לא יכולים לקרוא או לכתוב נתונים באחסון. אם משתמשים ב Google Cloud מסוף, לחיצה על הגדרת הרשאות של דלי מאמתת את התפקיד הזה. אם משתמשים ב-CLI של gcloud, ב-Terraform או ב-API, צריך להקצות את התפקיד הזה באופן ידני. - חשבונות שירות של מנוע שאילתות: חשבונות שירות שמריצים משימות של מנוע שאילתות (כמו Managed Service for Apache Spark, Managed Service for Apache Spark או Dataflow) צריכים את התפקיד 'עריכה' ב-BigLake (
roles/biglake.editor) ברמת הפרויקט כדי לקבל פרטי כניסה שנמכרים עם הרשאת כתיבה.
המאמרים הבאים
- איך יוצרים קטלוג במצב של מכירת אישורים
- איך מפעילים מכירת אישורים לקטלוג קיים באמצעות מסוףGoogle Cloud