ניהול רשימות בקרת גישה (ACL) של Lakehouse Iceberg REST

Lakehouse for Apache Iceberg תומך בבקרת גישה ברמת הקטלוג, ברמת מרחב השמות וברמת הטבלה לטבלאות Apache Iceberg ב-Cloud Storage שמשתמשות בקטלוג זמן הריצה של Lakehouse.

קטלוג זמן הריצה של Lakehouse מנהל את המטא-נתונים, ומדיניות ניהול הזהויות והרשאות הגישה (IAM) מגדירה את ההרשאות. אפשר להשתמש במסוףGoogle Cloud או ב-CLI של gcloud כדי לקבל ולהגדיר את כללי המדיניות האלה של IAM.

לפני שמתחילים

  1. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  2. מפעילים את BigLake API.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    להפעלת ה-API

  3. מתקינים ומפעילים את Google Cloud SDK.
  4. מוודאים שיש לכם נקודת קצה ומרחב שמות קיימים של קטלוג Apache Iceberg REST.
  5. מוודאים שיש לכם טבלת Iceberg Lakehouse קיימת בקטלוג ובמרחב השמות שצוינו.

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות לניהול רשימות של בקרת גישה (ACL) לקטלוגים, למרחבי שמות ולטבלאות של Iceberg, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

איך זה עובד

כללי המדיניות ב-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.

שיטות מומלצות

  • הרשאות מינימליות: מעניקים למשתמשים ולחשבונות שירות רק את ההרשאות הדרושות.
  • שימוש ב-ETags: כשמשתמשים ב-set-iam-policy, צריך תמיד לכלול את etag מקריאת get-iam-policy האחרונה בקובץ המדיניות כדי למנוע החלפות לא מכוונות.
  • רישום ביומן הביקורת: מוודאים שיומני הביקורת של Cloud מופעלים כדי לעקוב אחרי שינויים במדיניות IAM.
  • ניהול גרסאות: אחסון קובצי המדיניות במערכת לניהול גרסאות.

החלת תפקידים ברשימת ACL על קטלוגים

בקטע הבא מוסבר איך להחיל רשימות ACL על קטלוגים.

gcloud

קבלת מדיניות IAM

כדי לראות את מדיניות ה-IAM הנוכחית בקטלוג Lakehouse Iceberg, משתמשים בפקודה gcloud alpha biglake iceberg catalogs get-iam-policy.

  1. כדי לקבל את מדיניות ה-IAM, מריצים את הפקודה הבאה:

    gcloud alpha biglake iceberg catalogs get-iam-policy CATALOG_NAME \
        --project=PROJECT_ID
    

    מחליפים את מה שכתוב בשדות הבאים:

    • CATALOG_NAME: השם של נקודת הקצה של קטלוג Apache Iceberg REST.
    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud.
  2. הפקודה מפיקה את מדיניות ה-IAM בפורמט YAML, שבו מוצגים קישורי התפקידים והחברים הנוכחיים.

הגדרת מדיניות IAM

כדי לעדכן את מדיניות ה-IAM בקטלוג Lakehouse Iceberg, משתמשים בפקודה gcloud alpha biglake iceberg catalogs set-iam-policy. הפקודה הזו משתמשת בקובץ JSON או YAML מקומי שמכיל את המדיניות שרוצים להחיל.

  1. יוצרים קובץ מדיניות מקומי בפורמט 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
    }
    
  2. כדי להגדיר את מדיניות IAM, מריצים את הפקודה הבאה:

    gcloud alpha biglake iceberg catalogs set-iam-policy CATALOG_NAME POLICY_FILE \
        --project=PROJECT_ID
    

    מחליפים את מה שכתוב בשדות הבאים:

    • CATALOG_NAME: השם של נקודת הקצה של קטלוג Apache Iceberg REST.