設定資料來源存取控管

本頁說明如何在 Agent Search 中,為搜尋應用程式強制執行資料來源存取權控管。

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

舉例來說,假設貴公司的員工使用搜尋應用程式搜尋 Confluence 文件,但您必須確保他們無法透過應用程式查看無權存取的內容。如果您已在 Google Cloud 為貴機構的識別資訊提供者設定工作團隊集區,也可以在 Agent Search 中指定該工作團隊集區。現在,如果員工使用您的應用程式,搜尋結果只會顯示他們在 Confluence 中有權存取的文件。

關於資料來源存取控管

開啟存取控管是單次程序。

存取控管功能適用於 Cloud Storage、BigQuery、Google 雲端硬碟和所有第三方資料來源。

如要為 Agent Search 開啟資料來源存取控管功能,必須在 Google Cloud中設定貴機構的識別資訊提供者。系統支援下列驗證架構:

  • Google Identity:

    • 情況 1:如果您使用 Google Identity,所有使用者身分和使用者群組都會透過 Google Cloud管理。如要進一步瞭解 Google Identity,請參閱 Google Identity 說明文件。

    • 情況 2:您使用第三方識別資訊提供者,並已將身分與 Google 身分同步處理。使用者必須先透過 Google 身分驗證,才能存取 Google 資源或 Google Workspace。

    • 案例 3:您使用第三方識別資訊提供者,並已將身分與 Google 身分同步。不過,您仍使用現有的第三方識別資訊提供者進行驗證。您已透過 Google Identity 設定單一登入 (SSO),讓使用者先透過 Google Identity 登入,然後系統會將他們導向第三方識別資訊提供者。(設定其他 Google Cloud 資源或 Google Workspace 時,您可能已完成這項同步作業)。

  • 第三方識別資訊提供者聯盟:如果您使用外部識別資訊提供者 (例如 Microsoft Entra ID、Okta 或 Ping),但不想將身分同步至 Google Cloud Identity,則必須先在 Google Cloud中設定員工身分聯盟,才能為 Agent Search 啟用資料來源存取控管。

    如果您使用第三方連接器google.subject 屬性必須對應至外部識別資訊提供者中的電子郵件地址欄位。以下是常用身分識別提供者的 google.subjectgoogle.groups 屬性對應範例:

限制

存取控管有下列限制:

  • 每份文件最多可設定 3,000 名讀取者。每個主體都計為一名讀取者,主體可以是群組或個別使用者。
  • 在支援 Agent Search 的位置中,每個位置只能選取一個識別資訊提供者。
  • 如要將資料來源設為存取權受控管,請在建立資料儲存庫時選取這項設定。您無法為現有資料儲存庫開啟或關閉這項設定。
  • 控制台的「資料」>「文件」分頁不會顯示存取權受控管的資料來源資料,因為這類資料只能由具有檢視權限的使用者查看。
  • 如要預覽使用第三方存取權控管的搜尋應用程式 UI 結果,您必須登入聯合控制台。請參閱「預覽存取權控管應用程式的結果」。

事前準備

本程序假設您已在Google Cloud 專案中設定識別資訊提供者。

  • Google 身分:如果您使用 Google 身分,可以繼續進行「連線至識別資訊提供者」程序。
  • 第三方識別資訊提供者:請確認您已為第三方識別資訊提供者設定員工身分集區。確認您在設定工作團隊集區時,已指定主體和群組屬性對應。如要瞭解屬性對應,請參閱 IAM 說明文件中的「屬性對應」。如要進一步瞭解工作團隊身分集區,請參閱 IAM 說明文件中的「管理工作團隊身分集區提供者」。

連線至識別資訊提供者

如要為 Agent Search 指定識別資訊提供者,並開啟資料來源存取控管功能,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「AI Applications」頁面。

    AI 應用程式

  2. 前往「Settings」 >「Authentication」頁面。

  3. 按一下要更新地點的編輯圖示

  4. 在「新增識別資訊提供者」對話方塊中選取識別資訊提供者。如果選取第三方識別資訊提供者,請同時選取適用於資料來源的工作團隊集區。

  5. 按一下 [儲存變更]。

設定具有存取控管機制的資料來源

如要對資料來源套用存取控管機制,請根據您設定的資料來源類型,按照下列步驟操作:

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. 按照「建立搜尋資料儲存庫」中的步驟匯入資料時,請務必執行下列操作:

    • 從與非結構化資料相同的值區上傳中繼資料和存取控制清單資訊
    • 如果使用 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. 按照「建立搜尋資料儲存庫」中的步驟匯入資料時,請務必執行下列操作:

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

BigQuery 的非結構化資料

從 BigQuery 設定非結構化資料的資料儲存庫時,您需要將資料儲存庫設為存取控制,並使用 Agent Search 的預先定義結構定義提供 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 設定結構化資料的資料儲存庫時,您需要將資料儲存庫設為存取控管,並使用 Agent Search 的預先定義結構定義提供 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

在員工身分聯盟控制台中預覽結果

如要在Google Cloud 控制台中預覽使用第三方存取控管設定的應用程式結果,請使用貴機構的憑證登入。

如要預覽 UI 結果,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「AI Applications」頁面。

    AI 應用程式

  2. 按一下要預覽結果的搜尋應用程式名稱。

  3. 前往「預覽」頁面。

  4. 按一下「以聯合身分預覽」,前往員工身分聯盟控制台。

  5. 輸入工作團隊集區提供者和貴機構的憑證。

  6. 在隨即顯示的「預覽」頁面中,預覽應用程式的結果。

    如要進一步瞭解如何預覽搜尋結果,請參閱「取得搜尋結果」。

如要進一步瞭解員工身分聯盟控制台,請參閱「控制台簡介 (已啟用聯盟)」。

將搜尋權限授予使用者

如要讓使用者透過應用程式搜尋受存取權控管的資料,您必須授予網域或工作團隊集區中的使用者存取權。Google 建議您將自訂 IAM 角色授予使用者群組。

  • Google Identity:如果您使用 Google Identity,Google 建議您建立 Google 群組,納入所有需要搜尋的員工。如果您是 Google Workspace 管理員,可以按照「將貴機構的所有使用者加入群組」中的步驟,將機構中的所有使用者加入 Google 群組。
  • 第三方識別資訊提供者:如果您使用外部識別資訊提供者 (例如 Okta 或 Microsoft Entra ID),請將所有員工加入單一群組。

Google 建議您建立自訂 IAM 角色,並使用下列權限授予使用者群組:

  • discoveryengine.answers.get
  • discoveryengine.servingConfigs.answer
  • discoveryengine.servingConfigs.search
  • discoveryengine.sessions.get
  • discoveryengine.widgetConfigs.get

如要進一步瞭解如何使用 Identity and Access Management (IAM) 控管 Agent Search 資源的權限,請參閱「使用 IAM 控管存取權」。

如要進一步瞭解自訂角色,請參閱 IAM 說明文件中的「自訂角色」。

授權搜尋小工具

如要為存取權受控應用程式部署搜尋小工具,請按照下列步驟操作:

  1. 將 Discovery Engine 檢視者角色授予網域或工作團隊集區中需要發出搜尋 API 呼叫的使用者。

  2. 產生授權權杖,傳遞至小工具:

  3. 請按照「新增含有授權權杖的小工具」一文的步驟操作,將權杖傳送給小工具。

後續步驟

取得搜尋結果