הפעלת מצב של מכירת פרטי כניסה בקטלוג REST קיים של Apache Iceberg מגדירה את Lakehouse for Apache Iceberg למכירת אסימונים של אחסון עם היקף הרשאות מצומצם ותוקף קצר למנועי שאילתות או לעומסי עבודה מורשים.
בקטלוג של Lakehouse runtime, שיטת האימות הזו מבטלת את הצורך שלכם או של זמן הריצה של השאילתות להחזיק בהרשאות קריאה וכתיבה ישירות בקטגוריה הבסיסית של Cloud Storage.
לפני שמתחילים
-
מפעילים את BigLake API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידים
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות בשביל להפעיל את התכונה 'הקצאת אישורים', אתם צריכים לבקש מהאדמין לתת לכם את התפקידים הבאים ב-IAM:
-
הכול:
- אדמין BigLake (
roles/biglake.admin) בפרויקט - אדמין לניהול נפח האחסון (
roles/storage.admin) בפרויקט
- אדמין BigLake (
-
חשבון שירות של קטלוג REST של Apache Iceberg שהוקצה אוטומטית:
משתמש באובייקט אחסון (
roles/storage.objectUser) בכל הקטגוריות המשויכות של Cloud Storage. אחרי שמפעילים את התכונה 'הקצאת הרשאות לגישה לנתונים', צריך להקצות במפורש את התפקיד 'משתמש באובייקט אחסון' (roles/storage.objectUser) בכל קטגוריות האחסון המשויכות לחשבון השירות של קטלוג Apache Iceberg REST שהוקצה אוטומטית לקטלוג.
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
הפעלת הקצאה של פרטי כניסה
אם שיטת האימות לקטלוג Apache Iceberg REST מוגדרת לפרטי כניסה של משתמש קצה, אפשר להחליף אותה למצב של הקצאת פרטי כניסה.
המסוף
- במסוף Google Cloud , פותחים את הדף Lakehouse.
בשורה של הקטלוג שרוצים לעדכן, לוחצים על פעולות נוספות בקטלוג > עריכת אימות.
בתיבת הדו-שיח לאימות, בוחרים באפשרות Credential vending mode (מצב מכירת אישורים). חשבון השירות של קטלוג REST של Apache Iceberg שמוקצה אוטומטית צריך את התפקיד משתמש באובייקט אחסון (
roles/storage.objectUser) בכל הקטגוריות המשויכות של Cloud Storage. כברירת מחדל, אין לו גישה. בלי התפקיד הזה, לפרטי הכניסה שמוקצים אין היקף מספיק כדי לבצע פעולות כתיבה באחסון.לוחצים על שמירה.
Your catalog is updated and the **Catalog details** page opens.בקטע שיטת אימות, בוחרים באפשרות הגדרת הרשאות של מאגר.
בתיבת הדו-שיח, לוחצים על אישור.
כך מוודאים שלחשבון השירות של הקטלוג הוקצה התפקיד 'משתמש באובייקט אחסון' (roles/storage.objectUser) בכל קטגוריות האחסון המשויכות.
gcloud
משתמשים בפקודה gcloud biglake iceberg catalogs update.
gcloud biglake iceberg catalogs update \ CATALOG_NAME \ --project PROJECT_ID \ --credential-mode vended-credentials
מחליפים את מה שכתוב בשדות הבאים:
-
CATALOG_NAME: שם לקטלוג. בקטלוגים של Lakehouse, זהו שם הקטלוג המותאם אישית. בקטלוגים של קטגוריות Cloud Storage, הערך הזה זהה למזהה הקטגוריה ב-Cloud Storage שמשמש עם קטלוג REST. השם הזה משמש גם כמזהה הקטלוג כששולחים שאילתות לטבלאות האלה מ-BigQuery.
PROJECT_ID: מזהה הפרויקט ב- Google Cloud.אחרי שמפעילים את התכונה 'הקצאת הרשאות', צריך להעניק באופן מפורש את התפקיד משתמש באובייקט אחסון (
roles/storage.objectUser) בכל קטגוריות האחסון המשויכות לחשבון השירות של קטלוג Apache Iceberg REST שהוקצה אוטומטית לקטלוג.
REST
כדי להפעיל את מצב הנפקת האישורים באמצעות ה-API בארכיטקטורת REST, שולחים בקשת PATCH לנקודת הקצה UpdateIcebergCatalog:
PATCH /iceberg/v1/restcatalog/extensions/projects/PROJECT_ID/catalogs/CATALOG_ID?updateMask=icebergCatalog.credential_mode
גוף הבקשה חייב להכיל מטען ייעודי (payload) בפורמט JSON עם הערך VENDED_CREDENTIALS בשדה credential_mode.IcebergCatalog
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
CATALOG_ID: המזהה של קטלוג זמן הריצה של Lakehouse.