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

בדף הזה מוסבר איך לאכוף בקרת גישה למקורות נתונים (שנקראת גם רשימות ACL) באפליקציות חיפוש שאתם יוצרים באמצעות Cloud Storage או BigQuery.

סקירה כללית

בקרת הגישה למקורות הנתונים ב-Gemini Enterprise מגבילה את הנתונים שהמשתמשים יכולים לראות בתוצאות של אפליקציית החיפוש. ‫Google משתמשת בספק הזהויות כדי לזהות את משתמש הקצה שמבצע חיפוש ולקבוע אם יש לו גישה למסמכים שמוחזרים כתוצאות.

לדוגמה, נניח שהעובדים בחברה שלכם מחפשים במסמכי BigQuery באמצעות אפליקציית החיפוש, אבל אתם צריכים לוודא שהם לא יכולים לראות דרך האפליקציה תוכן שאין להם גישה אליו. אם הגדרתם מאגר של כוח עבודה ב- Google Cloud לספק הזהויות של הארגון, אתם יכולים לציין את המאגר הזה גם ב-Gemini Enterprise. מעכשיו, אם עובד ישתמש באפליקציה שלכם, הוא יקבל תוצאות חיפוש רק עבור מסמכים שלחשבון שלו כבר יש גישה אליהם ב-BigQuery.

הפעלת בקרת הגישה היא תהליך חד-פעמי. כדי להחיל בקרת גישה על מקור נתונים ב-BigQuery או ב-Cloud Storage, צריך לבצע את השלבים הבאים בהתאם לסוג הנתונים, כמו נתונים מובְנים או לא מובְנים.

נתונים לא מובְנים מ-Cloud Storage

כשמגדירים מאגר נתונים לנתונים לא מובְנים מ-Cloud Storage, צריך גם להעלות מטא-נתונים של רשימת ACL ולהגדיר את מאגר הנתונים כמאגר עם בקרת גישה:

  1. כשמכינים את הנתונים, צריך לכלול את פרטי ה-ACL במטא-נתונים באמצעות השדה acl_info. לדוגמה:

    {
       "id": "<your-id>",
       "jsonData": "<JSON string>",
       "content": {
         "mimeType": "<application/pdf or text/html>",
         "uri": "gs://<your-gcs-bucket>/directory/filename.pdf"
       },
       "acl_info": {
         "readers": [
           {
             "principals": [
               { "group_id": "group_1" },
               { "user_id": "user_1" }
             ]
           }
         ]
       }
     }
    

    מידע נוסף על נתונים לא מובְנים עם מטא-נתונים זמין בקטע "נתונים לא מובְנים" במאמר הכנת נתונים להטמעה.

  2. כשמבצעים את השלבים ליצירת מאגר נתונים במאמר יצירת מאגר נתונים מאינטראקציה ישירה (First-Party), אפשר להפעיל בקרת גישה על ידי ביצוע הפעולות הבאות במסוף או באמצעות ה-API:

    • ‫Console: כשיוצרים מאגר נתונים, בוחרים באפשרות This data store contains access control information.
    • ‫API: כשיוצרים מאגר נתונים, צריך לכלול את השדה "aclEnabled": "true" במטען הייעודי (payload) של ה-JSON.
  3. כשמבצעים את השלבים לייבוא נתונים במאמר יצירת מאגר נתונים מאינטראקציה ישירה, חשוב לוודא שמבצעים את הפעולות הבאות:

    • מעלים את המטא-נתונים עם פרטי ה-ACL מאותו קטגוריה כמו הנתונים הלא מובְנים.
    • אם משתמשים ב-API, מגדירים את GcsSource.dataSchema לערך document

נתונים מובְנים מ-Cloud Storage

כשמגדירים מאגר נתונים לנתונים מובְנים מ-Cloud Storage, צריך גם להעלות מטא-נתונים של ACL ולהגדיר את מאגר הנתונים כמאגר עם בקרת גישה:

  1. כשמכינים את הנתונים, צריך לכלול את פרטי ה-ACL במטא-נתונים באמצעות השדה acl_info. לדוגמה:

    {
       "id": "<your-id>",
       "jsonData": "<JSON string>",
       "acl_info": {
         "readers": [
           {
             "principals": [
               { "group_id": "group_1" },
               { "user_id": "user_1" }
             ]
           }
         ]
       }
     }
    
  2. כשמבצעים את השלבים ליצירת מאגר נתונים במאמר יצירת מאגר נתונים מאינטראקציה ישירה (First-Party), אפשר להפעיל בקרת גישה באמצעות הפעולות הבאות במסוף או באמצעות ה-API:

    • ‫Console: כשיוצרים מאגר נתונים, בוחרים באפשרות This data store contains access control information במהלך יצירת מאגר הנתונים.
    • ‫API: כשיוצרים מאגר נתונים, צריך לכלול את השדה "aclEnabled": "true" במטען הייעודי (payload) של JSON.
  3. כשפועלים לפי השלבים לייבוא נתונים במאמר יצירת מאגר נתונים מאינטראקציה ישירה, חשוב לבצע את הפעולות הבאות:

    • מעלים את המטא-נתונים עם פרטי ACL מאותו מאגר כמו הנתונים המובנים
    • אם משתמשים ב-API, מגדירים את GcsSource.dataSchema לערך document

נתונים לא מובְנים מ-BigQuery

כשמגדירים מאגר נתונים לנתונים לא מובנים מ-BigQuery, צריך להגדיר את מאגר הנתונים כמאגר עם בקרת גישה ולספק מטא-נתונים של ACL באמצעות סכימה מוגדרת מראש ל-Gemini Enterprise:

  1. כשמכינים את הנתונים, צריך לציין את הסכימה הבאה. אל תשתמשו בסכימה מותאמת אישית.

    [
      {
        "name": "id",
        "mode": "REQUIRED",
        "type": "STRING",
        "fields": []
      },
      {
        "name": "jsonData",
        "mode": "NULLABLE",
        "type": "STRING",
        "fields": []
      },
      {
        "name": "content",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "mimeType",
            "type": "STRING",
            "mode": "NULLABLE"
          },
          {
            "name": "uri",
            "type": "STRING",
            "mode": "NULLABLE"
          }
        ]
      },
      {
        "name": "acl_info",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "readers",
            "type": "RECORD",
            "mode": "REPEATED",
            "fields": [
              {
                "name": "principals",
                "type": "RECORD",
                "mode": "REPEATED",
                "fields": [
                  {
                    "name": "user_id",
                    "type": "STRING",
                    "mode": "NULLABLE"
                  },
                  {
                    "name": "group_id",
                    "type": "STRING",
                    "mode": "NULLABLE"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
    
  2. מוסיפים את המטא-נתונים של רשימת ה-ACL כעמודה בטבלה ב-BigQuery.

  3. כשמבצעים את השלבים שמפורטים במאמר יצירת מאגר נתונים מאינטראקציה ישירה, מפעילים את בקרת הגישה במסוף או באמצעות ה-API:

    • ‫Console: כשיוצרים מאגר נתונים, בוחרים באפשרות This data store contains access control information במהלך יצירת מאגר הנתונים.
    • API: כשיוצרים מאגר נתונים, צריך לכלול את השדה "aclEnabled": "true" במטען הייעודי (payload) של ה-JSON.
  4. כשמבצעים את השלבים לייבוא נתונים במאמר יצירת מאגר נתונים מאינטראקציה ישירה (First-Party), אם משתמשים ב-API, צריך להגדיר את BigQuerySource.dataSchema לערך document.

נתונים מובְנים מ-BigQuery

כשמגדירים מאגר נתונים לנתונים מובְנים מ-BigQuery, צריך להגדיר את מאגר הנתונים כמאגר עם בקרת גישה ולספק מטא-נתונים של ACL באמצעות סכימה מוגדרת מראש ל-Gemini Enterprise:

  1. כשמכינים את הנתונים, צריך לציין את הסכימה הבאה. אל תשתמשו בסכימה מותאמת אישית.

    [
      {
        "name": "id",
        "mode": "REQUIRED",
        "type": "STRING",
        "fields": []
      },
      {
        "name": "jsonData",
        "mode": "NULLABLE",
        "type": "STRING",
        "fields": []
      },
      {
        "name": "acl_info",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "readers",
            "type": "RECORD",
            "mode": "REPEATED",
            "fields": [
              {
                "name": "principals",
                "type": "RECORD",
                "mode": "REPEATED",
                "fields": [
                  {
                    "name": "user_id",
                    "type": "STRING",
                    "mode": "NULLABLE"
                  },
                  {
                    "name": "group_id",
                    "type": "STRING",
                    "mode": "NULLABLE"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
    
  2. כוללים את המטא-נתונים של רשימת ה-ACL כעמודה בטבלה ב-BigQuery.

  3. כשפועלים לפי השלבים במאמר יצירת מאגר נתונים מאינטראקציה ישירה (First-Party), מפעילים את בקרת הגישה במסוף או באמצעות ה-API:

    • ‫Console: כשיוצרים מאגר נתונים, בוחרים באפשרות This data store contains access control information במהלך יצירת מאגר הנתונים.
    • ‫API: כשיוצרים מאגר נתונים, צריך לכלול את השדה "aclEnabled": "true" במטען הייעודי (payload) של JSON.
  4. כשמבצעים את השלבים לייבוא נתונים במאמר יצירת מאגר נתונים מאינטראקציה ישירה, חשוב לוודא שמבצעים את הפעולות הבאות:

    • אם משתמשים במסוף, כשמציינים את סוג הנתונים שמעלים, בוחרים באפשרות JSONL לנתונים מובְנים עם מטא-נתונים.
    • אם משתמשים ב-API, מגדירים את BigQuerySource.dataSchema לערך document.