設定自訂資料來源的存取控管

本頁說明如何為使用 Cloud Storage 或 BigQuery 建立的搜尋應用程式,強制執行資料來源存取控制 (也稱為存取控制清單)。

總覽

Gemini Enterprise 中的資料來源存取權控管功能,可限制使用者在搜尋應用程式結果中查看的資料。Google 會使用您的識別資訊提供者,識別執行搜尋的使用者,並判斷他們是否有權存取搜尋結果中傳回的文件。

舉例來說,假設貴公司的員工使用搜尋應用程式搜尋 BigQuery 文件,但您必須確保他們無法透過應用程式查看無權存取的內容。如果您已在 Google Cloud 為貴機構的 IDP 設定工作團隊集區,也可以在 Gemini Enterprise 中指定該集區。現在,如果員工使用您的應用程式,只會看到帳戶在 BigQuery 中有權存取的文件搜尋結果。

開啟存取權控管是一次性程序,如要對 BigQuery 或 Cloud Storage 資料來源套用存取權控管,請根據資料類型 (例如結構化或非結構化資料) 採取下列步驟。

Cloud Storage 中的非結構化資料

從 Cloud Storage 設定非結構化資料的資料存放區時,您也需要上傳 ACL 中繼資料,並將資料存放區設為存取控制:

  1. 準備資料時,請使用 acl_info 欄位將 ACL 資訊納入中繼資料。例如:

    {
       "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. 按照「建立第一方資料儲存庫」中的步驟建立資料儲存庫時,您可以在控制台中或使用 API 執行下列操作,啟用存取權控管:

    • 控制台:建立資料儲存庫時,請選取「This data store contains access control information」(這個資料儲存庫含有存取權控管資訊)
    • API:建立資料存放區時,請在 JSON 酬載中加入 "aclEnabled": "true" 欄位。
  3. 按照「建立第一方資料儲存庫」中的步驟匯入資料時,請務必執行下列操作:

    • 從與非結構化資料相同的值區上傳中繼資料和 ACL 資訊
    • 如果使用 API,請將 GcsSource.dataSchema 設為 document

Cloud Storage 中的結構化資料

從 Cloud Storage 設定結構化資料的資料存放區時,您也需要上傳 ACL 中繼資料,並將資料存放區設為存取權控管:

  1. 準備資料時,請使用 acl_info 欄位將 ACL 資訊納入中繼資料。例如:

    {
       "id": "<your-id>",
       "jsonData": "<JSON string>",
       "acl_info": {
         "readers": [
           {
             "principals": [
               { "group_id": "group_1" },
               { "user_id": "user_1" }
             ]
           }
         ]
       }
     }
    
  2. 按照「建立第一方資料儲存庫」一文中的步驟建立資料儲存庫時,您可以在控制台中或使用 API 執行下列操作,啟用存取權控管:

    • 控制台:建立資料儲存庫時,請選取「This data store contains access control information」(這個資料儲存庫含有存取權控管資訊)
    • API:建立資料存放區時,請在 JSON 酬載中加入 "aclEnabled": "true" 欄位。
  3. 按照「建立第一方資料儲存空間」中的資料匯入步驟操作時,請務必執行下列操作:

    • 從與結構化資料相同的值區上傳中繼資料和 ACL 資訊
    • 如果使用 API,請將 GcsSource.dataSchema 設為 document

來自 BigQuery 的非結構化資料

從 BigQuery 設定非結構化資料的資料儲存庫時,您需要將資料儲存庫設為存取控管,並使用 Gemini Enterprise 的預先定義結構定義提供 ACL 中繼資料:

  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. 在 BigQuery 資料表中加入 ACL 中繼資料做為資料欄。

  3. 按照「建立第一方資料商店」一文中的步驟操作時,請在控制台中或使用 API 啟用存取權控管:

    • 控制台:建立資料儲存庫時,請選取「This data store contains access control information」(這個資料儲存庫含有存取權控管資訊)
    • API:建立資料存放區時,請在 JSON 酬載中加入 "aclEnabled": "true" 欄位。
  4. 按照「建立第一方資料商店」中的資料匯入步驟操作時,如果使用 API,請將 BigQuerySource.dataSchema 設為 document

來自 BigQuery 的結構化資料

從 BigQuery 設定結構化資料的資料儲存庫時,您需要將資料儲存庫設為存取控管,並使用 Gemini Enterprise 的預先定義結構定義提供 ACL 中繼資料:

  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. 在 BigQuery 資料表中加入 ACL 中繼資料做為資料欄。

  3. 按照「建立第一方資料商店」一文中的步驟操作時,請在控制台中或使用 API 啟用存取權控管:

    • 控制台:建立資料儲存庫時,請選取「This data store contains access control information」(這個資料儲存庫含有存取權控管資訊)
    • API:建立資料存放區時,請在 JSON 酬載中加入 "aclEnabled": "true" 欄位。
  4. 按照「建立第一方資料儲存庫」中的步驟匯入資料時,請務必執行下列操作:

    • 如果使用控制台,請在指定要上傳的資料類型時,選取「內含中繼資料且適用於結構化資料的 JSONL」
    • 如果使用 API,請將 BigQuerySource.dataSchema 設為 document