本頁說明如何在 AI 應用程式中,為搜尋應用程式強制執行資料來源存取權控管。
AI 應用程式中資料來源的存取權控管功能,可限制使用者在搜尋應用程式結果中可查看的資料。Google 會使用您的身分提供者,識別執行搜尋的使用者,並判斷該使用者是否有權存取以結果形式傳回的文件。
舉例來說,假設貴公司員工使用搜尋應用程式搜尋 Confluence 文件,但您必須確保他們無法透過應用程式查看未經授權的內容。如果您已在 Google Cloud 為貴機構的 ID 提供者設定工作團隊集區,也可以在 AI 應用程式中指定該工作團隊集區。從現在起,如果員工使用您的應用程式,他們只能搜尋帳戶在 Confluence 中已擁有存取權的文件。
關於資料來源存取權控管
開啟存取權控管功能是一次性的程序。
存取控制功能適用於 Cloud Storage、BigQuery、Google 雲端硬碟和所有第三方資料來源。
如要為 AI Applications 啟用資料來源存取控管功能,您必須在 Google Cloud中設定貴機構的識別資訊提供者。支援下列驗證架構:
Google Identity:
案例 1:如果您使用 Google 身分,則所有使用者身分和使用者群組都會顯示並透過 Google Cloud管理。如要進一步瞭解 Google Identity,請參閱 Google Identity 說明文件。
案例 2:您使用第三方識別資訊提供者,並已將身分資訊與 Google 身分服務同步。使用者必須先透過 Google Identity 進行驗證,才能存取 Google 資源或 Google Workspace。
案例 3:您使用第三方識別資訊提供者,並已將身分資訊與 Google 身分資訊同步。不過,您仍會使用現有的第三方識別資訊提供者來執行驗證作業。您已使用 Google 身分識別服務設定單一登入 (SSO),讓使用者開始使用 Google 身分識別服務登入,然後轉送至第三方識別資訊提供者。(您在設定其他 Google Cloud 資源或 Google Workspace 時,可能已完成這項同步作業)。
第三方識別資訊提供者聯盟:如果您使用外部識別資訊提供者 (例如 Azure AD、Okta 或 Ping),但不想將身分資訊同步至 Google Cloud Identity,���必須��� Google Cloud中設定員工身分聯盟,才能為 AI 應用程式啟用資料來源存取權控管功能。
如果您使用第三方連接器,
google.subject
屬性必須對應至外部 ID 提供者的電子郵件地址欄位。以下是常用身分驗證提供者的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']
限制
存取控制功能有下列限制:
- 每份文件最多可有 3000 位讀者。每個主體都會計為讀取者,主體可以是群組或個別使用者。
- 您可以為每個 Vertex AI Search 支援的位置選取一個身分識別資訊提供者。
- 如要將資料來源設為存取權控管,您必須在建立資料儲存庫時選取這項設定。您無法為現有資料儲存庫開啟或關閉這項設定。
- 控制台的「資料」>「文件」分頁不會顯示存取權受控資料來源的資料,因為只有具有檢視存取權的使用者才能查看這類資料。
- 如要預覽使用第三方存取權控管功能的搜尋應用程式 UI 結果,您必須登入聯合控制台或使用網頁應用程式。請參閱「預覽存取權控管應用程式的結果」。
事前準備
本程序假設您已在Google Cloud 專案中設定識別資訊提供者。
- Google 身分:如果您使用 Google 身分,請繼續進行連線至識別資訊提供者程序。
- 第三方識別資訊提供者:請務必為第三方識別資訊提供者設定工作團隊身分存取金庫。設定工作團隊集區時,請務必指定主題和群組屬性對應項目。如要瞭解屬性對應,請參閱 IAM 說明文件中的「屬性對應」。如要進一步瞭解工作團隊身分集區,請參閱 IAM 說明文件中的「管理工作團隊身分集區提供者」。
連線至識別資訊提供者
如要為 AI 應用程式指定身分提供者,並開啟資料來源存取控管功能,請按照下列步驟操作:
前往 Google Cloud 控制台的「AI Applications」頁面。
依序前往「Settings」 >「Authentication」頁面。
找到要更新的位置,然後按一下對應的編輯圖示
。在「Add identity provider」對話方塊中選取識別資訊提供者。如果您選取第三方 ID 提供者,請一併選取適用於資料來源的工作團隊。
按一下 [儲存變更]。
設定含有存取控管機制的資料來源
如要為資料來源套用存取權控管,請根據您設定的資料來源類型,使用下列步驟:
- 第三方資料來源:建立應用程式時,不需要進行額外設定。請跳至「針對具有第三方存取權控制項的應用程式預覽結果」
- 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 身分識別聯盟控制台開啟 Workforce Identity Federation 主控台,然後使用第三方憑證登入。請參閱「在 Workforce Identity Federation 主控台中預覽結果」一文。
- 網頁應用程式:啟用並登入 Vertex AI Search 提供的專屬網頁應用程式。請參閱「開啟網頁應用程式」。
在 Workforce Identity Federation 主控台中預覽結果
如要使用 Workforce Identity 聯盟控制台查看結果,請按照下列步驟操作:
前往 Google Cloud 控制台的「AI Applications」頁面。
按一下要預覽結果的搜尋應用程式名稱。
前往「預覽」頁面。
按一下「以聯合身分預覽」,前往「Workforce Identity Federation」控制台。
輸入工作團隊集區提供者和貴機構的憑證。
在隨即顯示的「Preview」頁面上,預覽應用程式的結果。
如要進一步瞭解如何預覽搜尋結果,請參閱「取得搜尋結果」。
如要進一步瞭解 Workforce Identity Federation 主控台,請參閱「主控台簡介 (聯合)」。
授予使用者搜尋權限
如要讓使用者透過應用程式搜尋受控管的資料,您必須向網域或工作團隊資源池中的使用者授予存取權。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
如要進一步瞭解 AI 應用程式資源的權限 (使用身分與存取權管理 (IAM)),請參閱「使用 IAM 控管存取權」。
如要進一步瞭解自訂角色,請參閱 IAM 說明文件中的「自訂角色」。
授權搜尋小工具
如要為存取權控管應用程式部署搜尋小工具,請按照下列步驟操作:
將 Discovery Engine Viewer 角色授予網域或人力資源池中需要發出搜尋 API 呼叫的使用者。
產生授權權杖,以便傳遞至小工具:
- 針對 Google 身分識別:產生 OAuth 2.0 存取權杖。
- 如要使用員工身分聯盟:請按照「取得員工身分聯盟的短效權杖」中的步驟取得權杖。
請按照「新增含有授權權杖的小工具」一文中的步驟,將權杖傳送至小工具。
開啟網頁應用程式
網頁應用程式是 Vertex AI Search 產生的專屬網站,您和其他具備登入憑證的使用者��可以使用您的搜尋應用程式。
如要向使用者提供搜尋應用程式,但不必在自家應用程式中整合搜尋小工具或搜尋 API,您可以向使用者提供網頁應用程式網址。
請按照下列步驟開啟網頁應用程式:
前往 Google Cloud 控制台的「AI Applications」頁面。
按一下要建立網頁應用程式的搜尋應用程式名稱。
搜尋應用程式必須與至少一個具有存取權控管功能的資料來源建立關聯。詳情請參閱「設定含有存取權控管功能的資料來源」。
依序前往「Integration」 >「UI」分頁。
按一下「啟用網頁應用程式」。
如果您使用員工身分聯盟,請選取工作團隊集區提供者。
按一下網頁應用程式的���結。
輸入工作團隊集區提供者和貴機構的憑證。
預覽應用程式的結果。
如要設定網頁應用程式的結果,請參閱「設定搜尋小工具的結果」。小工具的任何設定也都會套用至網頁應用程式。
選用:如要透過這個專屬網頁應用程式,向使用者提供搜尋應用程式,請複製網址,並傳送給具備登入憑證的使用者。他們可以將網頁應用程式網址加入書籤,並前往該網址使用搜尋應用程式。
如要進一步瞭解如何取得搜尋結果,請參閱「取得搜尋結果」。