本頁說明如何在 AI 應用程式中,對搜尋應用程式強制執行資料來源存取權控管。
AI 應用程式中的資料來源存取權控管功能,可限制使用者在搜尋應用程式結果中查看的資料。Google 會使用您的身分識別提供者,識別執行搜尋的使用者,並判斷他們是否有權存取搜尋結果中傳回的文件。
舉例來說,假設貴公司的員工使用搜尋應用程式搜尋 Confluence 文件,但您必須確保他們無法透過應用程式查看無權存取的內容。如果您已在 Google Cloud 為貴機構的識別資訊提供者設定工作團隊集區,也可以在 AI 應用程式中指定該工作團隊集區。現在,如果員工使用您的應用程式,搜尋結果只會顯示他們在 Confluence 中有權存取的文件。
關於資料來源存取權控管
開啟存取權控管是單次程序。
存取權控管功能適用於 Cloud Storage、BigQuery、Google 雲端硬碟和所有第三方資料來源。
如要為 AI Applications 啟用資料來源存取控管機制,您必須在 Google Cloud中設定貴機構的識別資訊提供者。系統支援下列驗證架構:
Google 身分:
案例 1:如果您使用 Google 身分,所有使用者身分和使用者群組都會存在,並透過 Google Cloud管理。如要進一步瞭解 Google Identity,請參閱 Google Identity 說明文件。
情況 2:您使用第三方身分識別提供者,並已將身分與 Google Identity 同步。使用者必須先透過 Google 身分驗證,才能存取 Google 資源或 Google Workspace。
案例 3:您使用第三方身分識別提供者,並已將身分與 Google 身分同步。不過,您仍使用現有的第三方識別資訊提供者進行驗證。您已透過 Google Identity 設定單一登入 (SSO),使用者會先透過 Google Identity 登入,然後系統會將他們導向第三方識別資訊提供者。(設定其他 Google Cloud 資源或 Google Workspace 時,您可能已完成這項同步作業)。
第三方身分識別提供者聯盟:如果您使用外部身分識別提供者 (例如 Azure AD、Okta 或 Ping),但不想將身分識別同步到 Google Cloud Identity,則必須先在 Google Cloud中設定員工身分聯盟,才能為 AI 應用程式啟用資料來源存取權控管。
如果您使用第三方連接器,則
google.subject
屬性必須對應至外部身分識別提供者中的電子郵件地址欄位。以下是常用身分識別提供者的屬性對應範例:google.subject
和google.groups
google.subject=assertion.email google.groups=assertion.groups
google.subject=assertion.attributes['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name'][0] google.groups=assertion.attributes['http://schemas.microsoft.com/ws/2008/06/identity/claims/groups']
google.subject=assertion.email google.groups=assertion.groups
google.subject=assertion.subject google.groups=assertion.attributes['groups']
限制
存取權控制項有下列限制:
- 每份文件最多可有 3,000 名讀者。每個主體都算做一名讀者,主體可以是群組或個別使用者。
- 每個 Vertex AI Search 支援的位置可選取一個身分識別提供者。
- 如要將資料來源設為存取權控管,請在建立資料儲存庫時選取這項設定。您無法為現有資料儲存庫開啟或關閉這項設定。
- 在控制台的「資料」>「文件」分頁中,不會顯示存取權受控管資料來源的資料,因為這類資料只能供具有檢視權限的使用者查看。
- 如要預覽使用第三方存取權控管的搜尋應用程式 UI 結果,您必須登入聯合控制台或使用網頁應用程式。請參閱「預覽存取權控管應用程式的結果」。
事前準備
本程序假設您已在Google Cloud 專案中設定識別資訊提供者。
- Google 身分:如果您使用 Google 身分,可以繼續進行「連線至識別資訊提供者」程序。
- 第三方識別資訊提供者:請務必為第三方識別資訊提供者設定工作團隊身分集區。確認您在設定工作團隊集區時,已指定主體和群組屬性對應。如要瞭解屬性對應,請參閱 IAM 說明文件中的「屬性對應」。如要進一步瞭解工作團隊身分集區,請參閱 IAM 說明文件中的「管理工作團隊身分集區提供者」。
連線至識別資訊提供者
如要為 AI 應用程式指定身分識別提供者,並開啟資料來源存取權控管,請按照下列步驟操作:
前往 Google Cloud 控制台的「AI Applications」頁面。
前往「設定」 >「驗證」頁面。
按一下要更新位置的編輯圖示
。在「新增識別資訊提供者」對話方塊中選取識別資訊提供者。如果選取第三方身分識別提供者,請一併選取適用於資料來源的工作團隊集區。
按一下 [儲存變更]。
設定具有存取控管機制的資料來源
如要對資料來源套用存取權控管,請根據您設定的資料來源類型,按照下列步驟操作:
- 第三方資料來源:建立應用程式時,不需要額外設定。請跳至「預覽可控管第三方存取權的應用程式結果」
- Google 雲端硬碟:建立應用程式時,不需要進行其他設定。
- Cloud Storage 中的非結構化資料
- Cloud Storage 中的結構化資料
- BigQuery 中的非結構化資料
- BigQuery 的結構化資料
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 執行下列操作,啟用存取權控管:
- 控制台:建立資料儲存庫時,請選取「這個資料儲存庫含有存取權控管資訊」。
- 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 執行下列操作,啟用存取權控管:
- 控制台:建立資料儲存庫時,請選取「這個資料儲存庫含有存取權控管資訊」。
- API:建立資料存放區時,請在 JSON 酬載中加入
"aclEnabled": "true"
旗標。
按照「建立搜尋資料存放區」中的資料匯入步驟操作時,請務必執行下列操作:
- 從與非結構化資料相同的值區上傳中繼資料和 ACL 資訊
- 如果使用 API,請將
GcsSource.dataSchema
設為document
來自 BigQuery 的非結構化資料
從 BigQuery 設定非結構化資料的資料儲存庫時,您需要將資料儲存庫設為存取權控管,並使用 Vertex AI Search 的預先定義結構定義提供 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 啟用存取權控管:
- 控制台:建立資料儲存庫時,請選取「這個資料儲存庫含有存取權控管資訊」。
- API:建立資料存放區時,請在 JSON 酬載中加入
"aclEnabled": "true"
旗標。
按照「建立搜尋資料儲存庫」中的資料匯入步驟操作時,如果使用 API,請將
BigQuerySource.dataSchema
設為document
。
來自 BigQuery 的結構化資料
從 BigQuery 設定結構化資料的資料儲存庫時,您需要將資料儲存庫設為存取權控管,並使用 Vertex AI Search 的預先定義結構定義提供 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 啟用存取權控管:
- 控制台:建立資料儲存庫時,請選取「這個資料儲存庫含有存取權控管資訊」。
- API:建立資料存放區時,請在 JSON 酬載中加入
"aclEnabled": "true"
旗標。
按照「建立搜尋資料儲存庫」中的資料匯入步驟操作時,請務必執行下列操作:
- 如果使用控制台,請在指定要上傳的資料類型時,選取「含中繼資料且適用於結構化資料的 JSONL 檔案」
- 如果使用 API,請將
BigQuerySource.dataSchema
設為document
預覽具有第三方存取權控管機制的應用程式結果
如要預覽設有第三方存取權控管機制的應用程式在控制台中的結果,請使用貴機構的憑證登入。
您可以透過下列兩種方式預覽 UI 結果:
- 員工身分聯盟控制台。開啟 Workforce Identity Federation 控制台,並使用第三方憑證登入。請參閱在員工身分聯盟控制台中預覽結果。
- 網頁應用程式:開啟並登入 Vertex AI Search 提供的專屬網頁應用程式。請參閱「開啟網頁應用程式」。
在員工身分聯盟控制台中預覽結果
如要使用 Workforce Identity Federation 控制台查看結果,請按照下列步驟操作:
前往 Google Cloud 控制台的「AI Applications」頁面。
按一下要預覽結果的搜尋應用程式名稱。
前往「預覽」頁面。
按一下「以聯合身分預覽」,前往員工身分聯盟控制台。
輸入工作團隊集區提供者和貴機構的憑證。
在隨即顯示的「預覽」頁面中,預覽應用程式的結果。
如要進一步瞭解如何預覽搜尋結果,請參閱「取得搜尋結果」。
如要進一步瞭解員工身分聯盟控制台,請參閱「關於控制台 (已啟用聯盟)」。
授予使用者搜尋權限
如要讓使用者透過應用程式搜尋受存取權控管的資料,請授予網域或工作團隊集區中的使用者存取權。Google 建議您將自訂 IAM 角色授予使用者群組。
- Google 身分:如果您使用 Google 身分,Google 建議您建立Google 群組,並將所有需要搜尋的員工加入其中。如果您是 Google Workspace 管理員,可以按照「將貴機構的所有使用者加入群組」一文中的步驟,將機構中的所有使用者加入 Google 群組。
- 第三方識別資訊提供者:如果您使用外部識別資訊提供者 (例如 Okta 或 Azure AD),請將工作團隊集區中的所有使用者加入單一群組。
Google 建議您建立自訂 IAM 角色,並使用下列權限授予使用者群組:
discoveryengine.answers.get
discoveryengine.servingConfigs.answer
discoveryengine.servingConfigs.search
discoveryengine.sessions.get
discoveryengine.widgetConfigs.get
如要進一步瞭解如何使用身分與存取權管理 (IAM) 控管 AI Applications 資源的權限,請參閱「使用 IAM 控管存取權」。
如要進一步瞭解自訂角色,請參閱 IAM 說明文件中的「自訂角色」。
授權搜尋小工具
如要為存取權控管的應用程式部署搜尋小工具,請按照下列步驟操作:
向網域或工作人員集區中需要發出搜尋 API 呼叫的使用者,授予 Discovery Engine 檢視者角色。
產生授權權杖,傳遞至小工具:
- Google 身分識別:產生 OAuth 2.0 存取權杖。
- 員工身分聯盟:按照「取得員工身分聯盟的短期權杖」一文中的步驟取得權杖。
請按照「新增含有授權權杖的小工具」一文的步驟操作,將權杖傳送給小工具。
開啟網頁應用程式
網頁應用程式是 Vertex AI Search 生成的專屬網站,您和其他擁有登入憑證的使用者都能透過這個網站使用搜尋應用程式。
如要向使用者提供搜尋應用程式,但不想在自己的應用程式中整合搜尋小工具或搜尋 API,可以將網頁應用程式網址提供給使用者。
請按照下列步驟開啟網頁應用程式:
前往 Google Cloud 控制台的「AI Applications」頁面。
按一下要建立網頁應用程式的搜尋應用程式名稱。
搜尋應用程式必須與至少一個具有存取權控管的資料來源建立關聯。詳情請參閱「設定具有存取權控管功能的資料來源」。
依序前往「Integration」(整合) >「UI」(使用者介面) 分頁。
按一下「啟用網頁應用程式」。
如果您使用員工身分聯盟,請選取工作團隊集區提供者。
按一下網頁應用程式的連結。
輸入工作團隊集區提供者和貴機構的憑證。
預覽應用程式的結果。
如要設定網頁應用程式的結果,請參閱「設定搜尋小工具的結果」。小工具的任何設定也會套用至網頁應用程式。
選用:如要透過這個專屬網頁應用程式向使用者提供搜尋應用程式,請複製網址並傳送給擁有登入憑證的使用者。他們可以將網頁應用程式網址加入書籤,然後前往該網址使用搜尋應用程式。
如要進一步瞭解如何取得搜尋結果,請參閱「取得搜尋結果」。