本頁說明如何為使用 Cloud Storage 或 BigQuery 建立的搜尋應用程式,強制執行資料來源存取控制 (也稱為存取控制清單)。
總覽
Gemini Enterprise 中的資料來源存取權控管功能,可限制使用者在搜尋應用程式結果中查看的資料。Google 會使用您的識別資訊提供者,識別執行搜尋的使用者,並判斷他們是否有權存取搜尋結果中傳回的文件。
舉例來說,假設貴公司的員工使用搜尋應用程式搜尋 BigQuery 文件,但您必須確保他們無法透過應用程式查看無權存取的內容。如果您已在 Google Cloud 為貴機構的 IDP 設定工作團隊集區,也可以在 Gemini Enterprise 中指定該集區。現在,如果員工使用您的應用程式,只會看到帳戶在 BigQuery 中有權存取的文件搜尋結果。
開啟存取權控管是一次性程序,如要對 BigQuery 或 Cloud Storage 資料來源套用存取權控管,請根據資料類型 (例如結構化或非結構化資料) 採取下列步驟。
Cloud Storage 中的非結構化資料
從 Cloud Storage 設定非結構化資料的資料存放區時,您也需要上傳 ACL 中繼資料,並將資料存放區設為存取控制:
準備資料時,請使用
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" } ] } ] } }
如要進一步瞭解含有中繼資料的非結構化資料,請參閱「為資料擷取作業做準備」一文的「非結構化資料」一節。
按照「建立第一方資料儲存庫」中的步驟建立資料儲存庫時,您可以在控制台中或使用 API 執行下列操作,啟用存取權控管:
- 控制台:建立資料儲存庫時,請選取「This data store contains access control information」(這個資料儲存庫含有存取權控管資訊)。
- API:建立資料存放區時,請在 JSON 酬載中加入
"aclEnabled": "true"
欄位。
按照「建立第一方資料儲存庫」中的步驟匯入資料時,請務必執行下列操作:
- 從與非結構化資料相同的值區上傳中繼資料和 ACL 資訊
- 如果使用 API,請將
GcsSource.dataSchema
設為document
Cloud Storage 中的結構化資料
從 Cloud Storage 設定結構化資料的資料存放區時,您也需要上傳 ACL 中繼資料,並將資料存放區設為存取權控管:
準備資料時,請使用
acl_info
欄位將 ACL 資訊納入中繼資料。例如:{ "id": "<your-id>", "jsonData": "<JSON string>", "acl_info": { "readers": [ { "principals": [ { "group_id": "group_1" }, { "user_id": "user_1" } ] } ] } }
按照「建立第一方資料儲存庫」一文中的步驟建立資料儲存庫時,您可以在控制台中或使用 API 執行下列操作,啟用存取權控管:
- 控制台:建立資料儲存庫時,請選取「This data store contains access control information」(這個資料儲存庫含有存取權控管資訊)。
- API:建立資料存放區時,請在 JSON 酬載中加入
"aclEnabled": "true"
欄位。
按照「建立第一方資料儲存空間」中的資料匯入步驟操作時,請務必執行下列操作:
- 從與結構化資料相同的值區上傳中繼資料和 ACL 資訊
- 如果使用 API,請將
GcsSource.dataSchema
設為document
來自 BigQuery 的非結構化資料
從 BigQuery 設定非結構化資料的資料儲存庫時,您需要將資料儲存庫設為存取控管,並使用 Gemini Enterprise 的預先定義結構定義提供 ACL 中繼資料:
準備資料時,請指定下列結構定義。請勿使用自訂結構定義。
[ { "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" } ] } ] } ] } ]
在 BigQuery 資料表中加入 ACL 中繼資料做為資料欄。
按照「建立第一方資料商店」一文中的步驟操作時,請在控制台中或使用 API 啟用存取權控管:
- 控制台:建立資料儲存庫時,請選取「This data store contains access control information」(這個資料儲存庫含有存取權控管資訊)。
- API:建立資料存放區時,請在 JSON 酬載中加入
"aclEnabled": "true"
欄位。
按照「建立第一方資料商店」中的資料匯入步驟操作時,如果使用 API,請將
BigQuerySource.dataSchema
設為document
。
來自 BigQuery 的結構化資料
從 BigQuery 設定結構化資料的資料儲存庫時,您需要將資料儲存庫設為存取控管,並使用 Gemini Enterprise 的預先定義結構定義提供 ACL 中繼資料:
準備資料時,請指定下列結構定義。請勿使用自訂結構定義。
[ { "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" } ] } ] } ] } ]
在 BigQuery 資料表中加入 ACL 中繼資料做為資料欄。
按照「建立第一方資料商店」一文中的步驟操作時,請在控制台中或使用 API 啟用存取權控管:
- 控制台:建立資料儲存庫時,請選取「This data store contains access control information」(這個資料儲存庫含有存取權控管資訊)。
- API:建立資料存放區時,請在 JSON 酬載中加入
"aclEnabled": "true"
欄位。
按照「建立第一方資料儲存庫」中的步驟匯入資料時,請務必執行下列操作:
- 如果使用控制台,請在指定要上傳的資料類型時,選取「內含中繼資料且適用於結構化資料的 JSONL」。
- 如果使用 API,請將
BigQuerySource.dataSchema
設為document
。