Lakehouse for Apache Iceberg תומך בבקרת גישה ברמת הטבלה לטבלאות Apache Iceberg ב-Cloud Storage שמשתמשות בקטלוג זמן הריצה של Lakehouse.
הקטלוג של Lakehouse runtime מנהל את המטא-נתונים של הטבלה, ומדיניות ניהול הזהויות והרשאות הגישה (IAM) מגדירה את ההרשאות. CLI של gcloud מספק את הפקודות שנדרשות כדי לקבל ולהגדיר את מדיניות ה-IAM הזו.
לפני שמתחילים
-
מפעילים את BigLake API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידים - מתקינים ומפעילים את Google Cloud SDK.
- מוודאים שיש לכם נקודת קצה ומרחב שמות קיימים של קטלוג REST של Apache Iceberg.
- מוודאים שיש לכם טבלת Iceberg Lakehouse קיימת בקטלוג ובמרחב השמות שצוינו.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לניהול רשימות בקרת גישה (ACL) לטבלאות Iceberg, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- הכל: BigLake Admin (roles/biglake.admin) מופעל בפרויקט
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
איך זה עובד
כללי המדיניות ב-IAM מגדירים לאילו חשבונות משתמשים יש תפקידים והרשאות ספציפיים למשאב. כדי לנהל את הגישה למשאבים, צריך לקבל את המדיניות הזו ולהגדיר אותה.
תפקידי IAM רלוונטיים
אפשר להקצות את תפקידי ה-IAM הנפוצים הבאים למשאבי Lakehouse:
-
roles/biglake.admin: מספקת שליטה מלאה במשאבי Lakehouse. -
roles/biglake.user: מאפשרת לחשבונות ראשיים להשתמש במשאבי Lakehouse, כולל קריאה וכתיבה של נתוני טבלה. -
roles/biglake.viewer: מאפשר לחשבונות ראשיים לצפות במשאבי Lakehouse ולקרוא נתוני טבלה.
שיטות מומלצות
- הענקת ההרשאות המינימליות: מעניקים למשתמשים ולחשבונות שירות רק את ההרשאות הנדרשות.
- שימוש ב-ETags: כשמשתמשים ב-
set-iam-policy, צריך תמיד לכלול אתetagמקריאתget-iam-policyהאחרונה בקובץ המדיניות כדי למנוע החלפות לא מכוונות. - רישום ביומן הביקורת: מוודאים שיומני הביקורת של Cloud מופעלים כדי לעקוב אחרי שינויים במדיניות IAM.
- ניהול גרסאות: אחסון קובצי המדיניות במערכת לניהול גרסאות.
החלת תפקידים של רשימת ACL על טבלאות
בקטע הבא מוסבר איך להחיל רשימות ACL על טבלאות.
קבלת מדיניות IAM
כדי לראות את מדיניות ה-IAM הנוכחית בטבלת Iceberg של Lakehouse, משתמשים בפקודה gcloud biglake iceberg tables
get-iam-policy.
כדי לקבל את מדיניות ה-IAM, מריצים את הפקודה הבאה:
gcloud biglake iceberg tables get-iam-policy TABLE_NAME \ --catalog=CATALOG_NAME \ --namespace=NAMESPACE_NAME \ --project=PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
-
TABLE_NAME: השם של טבלת Iceberg של Lakehouse היעד. -
CATALOG_NAME: השם של נקודת הקצה של קטלוג Apache Iceberg REST. -
NAMESPACE_NAME: השם של מרחב השמות בקטלוג. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud.
-
הפקודה מפיקה את מדיניות ה-IAM בפורמט YAML, שבו מוצגים קישורי התפקידים והחברים הנוכחיים.
הגדרת מדיניות IAM
כדי לעדכן את מדיניות ה-IAM בטבלת Iceberg של Lakehouse, משתמשים בפקודה gcloud biglake iceberg tables set-iam-policy.
הפקודה הזו משתמשת בקובץ JSON או YAML מקומי שמכיל את המדיניות שרוצים להחיל.
יוצרים קובץ מדיניות מקומי בפורמט JSON או YAML. קובץ המדיניות צריך להכיל את הקישורים ואת
etag. הערךetagמספק בקרה אופטימית על פעולות שמתבצעות בו-זמנית, כדי למנוע החלפה של שינויים. כדי לקבל אתetagהנוכחי, מריצים קודם את הפקודהget-iam-policy.הדוגמה הבאה מציגה קובץ מדיניות בשם
policy.json:{ "bindings": [ { "role": "roles/biglake.viewer", "members": [ "user:test-user@example.com" ] }, { "role": "roles/biglake.user", "members": [ "user:someone@example.com" ] } ], "etag": "BwYXa9UuR8w=", "version": 3 }כדי להגדיר את מדיניות IAM, מריצים את הפקודה הבאה:
gcloud biglake iceberg tables set-iam-policy TABLE_NAME POLICY_FILE \ --catalog=CATALOG_NAME \ --namespace=NAMESPACE_NAME \ --project=PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
-
TABLE_NAME: השם של טבלת Iceberg של Lakehouse היעד. -
POLICY_FILE: הנתיב לקובץ המדיניות המקומי. -
CATALOG_NAME: השם של נקודת הקצה של קטלוג Apache Iceberg REST. -
NAMESPACE_NAME: השם של מרחב השמות בקטלוג. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
-