הפעלת מצב של מכירת פרטי כניסה בקטלוג REST קיים של Apache Iceberg מגדירה את Lakehouse for Apache Iceberg למכירת אסימונים קצרי-חיים עם הרשאות מוגבלות למנועי שאילתות או לעומסי עבודה מורשים.
בקטלוג של Lakehouse runtime, שיטת האימות הזו מבטלת את הצורך שלכם או של זמן הריצה של השאילתות להחזיק בהרשאות קריאה וכתיבה ישירות בקטגוריה הבסיסית של Cloud Storage.
לפני שמתחילים
- כדאי לקרוא את המאמר מידע על קטלוג זמן הריצה של Lakehouse כדי להבין איך קטלוג זמן הריצה של Lakehouse פועל ומהן המגבלות של השירות.
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles. - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. Learn how to grant
roles.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. Learn how to grant
roles.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות בשביל להפעיל את התכונה 'הקצאת אישורים', אתם צריכים לבקש מהאדמין לתת לכם את התפקידים הבאים ב-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.