ב-Borderless Lakehouse יש תמיכה בבקרת גישה ברמת הקטלוג, מרחב השמות והטבלה, לטבלאות Apache Iceberg ב-Cloud Storage שמשתמשות בקטלוג ייעודי לזמן ריצה של Lakehouse.
הקטלוג הייעודי לזמן ריצה של Lakehouse מנהל את המטא-נתונים, וכללי המדיניות של ניהול הזהויות והרשאות הגישה (IAM) מגדירים את ההרשאות. אפשר להשתמש במסוףGoogle Cloud או ב-CLI של gcloud כדי לקבל ולהגדיר את כללי מדיניות ה-IAM האלה.
לפני שמתחילים
-
מפעילים את BigLake API, אם הוא עדיין לא מופעל.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים - מתקינים ומפעילים את ה-CLI של Google Cloud.
- מוודאים שיש לכם נקודת קצה ומרחב שמות קיימים של קטלוג REST של Apache Iceberg.
- מוודאים שיש לכם טבלת Apache Iceberg קיימת שמנוהלת על ידי Lakehouse בקטלוג ובמרחב השמות שצוינו.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות לניהול רשימות של בקרת גישה (ACL) לקטלוגים, למרחבי שמות ולטבלאות של Iceberg, בקשו מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
-
הכול: אדמין BigLake (
roles/biglake.admin) בפרויקט
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
איך זה עובד
מדיניות IAM מגדירה לאילו חשבונות משתמשים יש תפקידים והרשאות ספציפיים במשאב. כדי לנהל את הגישה למשאבים, אתם יכולים לקבל ולהגדיר את כללי המדיניות האלה.
היקף התפקידים ב-IAM
אפשר להקצות תפקידי IAM ברמות שונות של היררכיית המשאבים:
- רמת הפרויקט: גישה לכל המשאבים של Lakehouse בפרויקט.
- רמת הקטלוג: מעניקה גישה למשאבים ששייכים לקטלוג שצוין.
- רמת מרחב השמות: הענקת גישה למשאבים ששייכים למרחב השמות שצוין.
- רמת הטבלה: גישה רק לטבלה שצוינה.
תפקידי IAM רלוונטיים
ברשימה הבאה מפורטים כמה מהתפקידים הנפוצים ב-IAM שאפשר להחיל על משאבי Lakehouse. לרשימה מלאה של התפקידים הזמינים וההרשאות שמשויכות אליהם, ראו תפקידי IAM של Lakehouse.
-
roles/biglake.admin: גישה מלאה לכל המשאבים של Lakehouse. -
roles/biglake.editor: הרשאות קריאה וכתיבה לכל המשאבים ב-Lakehouse. -
roles/biglake.viewer: הרשאת קריאה בלבד לכל המשאבים ב-Lakehouse. -
roles/biglake.metadataViewer: גישה למטא-נתונים לקריאה בלבד לכל המשאבים של Lakehouse.
שיטות מומלצות
- הרשאות מינימליות: הענקת ההרשאות הנדרשות בלבד למשתמשים ולחשבונות שירות.
- שימוש בתגי ישות (Etag): כשמשתמשים ב-
set-iam-policy, תמיד צריך לכלול בקובץ המדיניות את ה-etagמקריאה אחרונה ל-get-iam-policyכדי למנוע החלפה לא מכוונת. - רישום ביומן הביקורת: ודאו שיומני הביקורת של Cloud מופעלים כדי לעקוב אחרי שינויים במדיניות IAM.
- ניהול גרסאות: אחסון קובצי המדיניות במערכת לניהול גרסאות.
החלת תפקידי ACL על קטלוגים
בקטע הבא מוסבר איך להחיל רשימות ACL על קטלוגים.
gcloud
קבלת מדיניות ה-IAM
כדי לראות את מדיניות ה-IAM הנוכחית בקטלוג של Lakehouse Iceberg, משתמשים בפקודה gcloud biglake iceberg catalogs
get-iam-policy.
כדי לקבל את מדיניות ה-IAM, מריצים את הפקודה הבאה:
gcloud biglake iceberg catalogs get-iam-policy CATALOG_NAME \ --project=PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
-
CATALOG_NAME: השם של נקודת הקצה של קטלוג REST של Apache Iceberg. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud.
-
הפקודה מפיקה את מדיניות ה-IAM בפורמט YAML, שבו מוצגים קישורי התפקידים והחברים הנוכחיים.
הגדרת מדיניות IAM
כדי לעדכן את מדיניות ה-IAM בקטלוג של Lakehouse Iceberg, משתמשים בפקודה gcloud biglake iceberg catalogs 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.editor", "members": [ "user:someone@example.com" ] } ], "etag": "BwYXa9UuR8w=", "version": 3 }כדי להגדיר את מדיניות ה-IAM, מריצים את הפקודה הבאה:
gcloud biglake iceberg catalogs set-iam-policy CATALOG_NAME POLICY_FILE \ --project=PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
-
CATALOG_NAME: השם של נקודת הקצה של קטלוג REST של Apache Iceberg. -
POLICY_FILE: הנתיב לקובץ המדיניות המקומי. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
-
החלת תפקידי ACL על מרחבי שמות
בקטע הבא מוסבר איך להחיל רשימות ACL על מרחבי שמות.
במסוף Google Cloud לא מוצגות מדיניות IAM שעברו בירושה, ואי אפשר לנהל אותן.
המסוף
פותחים את הדף Lakehouse במסוף Google Cloud .
בוחרים קטלוג קיים או יוצרים קטלוג חדש אם אין לכם אחד.
בטבלה Namespace details, בוחרים מרחב שמות ומרחיבים את אפשרויות התפריט ().
לוחצים על ניהול הרשאות.
מופיעה תיבת הדו-שיח הרשאות שיתוף.
לוחצים על Add principal.
בשדה New Principals, מזינים את החשבון הראשי שרוצים להקצות לו תפקידים.
בשדה Select a role, בוחרים תפקיד שרוצים להקצות לחשבון הראשי.
לוחצים על Save.
לוחצים על Close.
gcloud
קבלת מדיניות ה-IAM
כדי לראות את מדיניות ה-IAM הנוכחית במרחב שמות של Lakehouse Iceberg, משתמשים בפקודה gcloud biglake iceberg namespaces
get-iam-policy.
כדי לקבל את מדיניות ה-IAM, מריצים את הפקודה הבאה:
gcloud biglake iceberg namespaces get-iam-policy NAMESPACE_NAME \ --catalog=CATALOG_NAME \ --project=PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
-
NAMESPACE_NAME: השם של מרחב השמות של היעד בקטלוג. -
CATALOG_NAME: השם של נקודת הקצה של קטלוג REST של Apache Iceberg. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud.
-
הפקודה מפיקה את מדיניות ה-IAM בפורמט YAML, שבו מוצגים קישורי התפקידים והחברים הנוכחיים.
הגדרת מדיניות IAM
כדי לעדכן את מדיניות ה-IAM במרחב שמות של Lakehouse Iceberg, משתמשים בפקודה gcloud biglake iceberg namespaces 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.editor", "members": [ "user:someone@example.com" ] } ], "etag": "BwYXa9UuR8w=", "version": 3 }כדי להגדיר את מדיניות ה-IAM, מריצים את הפקודה הבאה:
gcloud biglake iceberg namespaces set-iam-policy NAMESPACE_NAME POLICY_FILE \ --catalog=CATALOG_NAME \ --project=PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
-
NAMESPACE_NAME: השם של מרחב השמות של היעד בקטלוג. -
POLICY_FILE: הנתיב לקובץ המדיניות המקומי. -
CATALOG_NAME: השם של נקודת הקצה של קטלוג REST של Apache Iceberg. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
-
החלת תפקידי ACL על טבלאות
בקטע הבא מוסבר איך להחיל רשימות ACL על טבלאות.
במסוף Google Cloud לא מוצגות מדיניות IAM שעברו בירושה, ואי אפשר לנהל אותן.
המסוף
פותחים את הדף Lakehouse במסוף Google Cloud .
בוחרים קטלוג קיים או יוצרים קטלוג חדש אם אין לכם אחד.
בטבלה Namespace details, לוחצים על השם של מרחב השמות שמכיל את הטבלה.
בדף Table details, בוחרים טבלה ומרחיבים את אפשרויות התפריט ().
לוחצים על ניהול הרשאות.
מופיעה תיבת הדו-שיח הרשאות שיתוף.
לוחצים על Add principal.
בשדה New Principals, מזינים את החשבון הראשי שרוצים להקצות לו תפקידים.
בשדה Select a role, בוחרים תפקיד שרוצים להקצות לחשבון הראשי.
לוחצים על Save.
לוחצים על Close.
gcloud
קבלת מדיניות ה-IAM
כדי לראות את מדיניות ה-IAM הנוכחית בטבלת Lakehouse Iceberg, משתמשים בפקודה 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: השם של טבלת היעד ב-Apache Iceberg. -
CATALOG_NAME: השם של נקודת הקצה של קטלוג REST של Apache Iceberg. -
NAMESPACE_NAME: השם של מרחב השמות בקטלוג. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud.
-
הפקודה מפיקה את מדיניות ה-IAM בפורמט YAML, שבו מוצגים קישורי התפקידים והחברים הנוכחיים.
הגדרת מדיניות IAM
כדי לעדכן את מדיניות ה-IAM בטבלת Apache 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.editor", "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: השם של טבלת היעד ב-Apache Iceberg. -
POLICY_FILE: הנתיב לקובץ המדיניות המקומי. -
CATALOG_NAME: השם של נקודת הקצה של קטלוג REST של Apache Iceberg. -
NAMESPACE_NAME: השם של מרחב השמות בקטלוג. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
-