為應用程式和資料儲存庫設定精細的存取控管

本頁面說明 Gemini Enterprise 管理員如何使用Google Cloud 控制台、Google Cloud CLI 或 REST API,設定精細的資源層級 IAM 權限,限制特定 Gemini Enterprise 應用程式和資料儲存庫的存取權。

如果只需要在應用程式層級限制使用者存取權,而不必設定資料儲存庫權限或自訂專案層級角色,請參閱「設定應用程式的存取控管」。

總覽

根據預設,在 Google Cloud專案層級授予的 IAM 權限,會套用至專案中的所有 Gemini Enterprise 應用程式和資料儲存庫。如果貴組織需要限制使用者只能存取單一專案中的特定應用程式或資料儲存庫,可以使用資源層級存取控管機制。

管理員可透過資源層級存取控管機制執行下列操作:

  • 授予使用者特定應用程式和連結資料儲存庫的存取權,而不公開同一專案中的其他應用程式。
  • 委派特定應用程式的管理或唯讀監控權限,不必授予廣泛的專案層級管理權限。
  • 強制執行組織資料界限和法規遵循政策。

存取控管機制的運作方式

如要授予資源層級存取權,管理員必須為每個目標使用者或群組設定兩個角色繫結。權限會分開評估:使用者必須同時具備目標應用程式和目標資料儲存庫的權限,才能從應用程式中的資料儲存庫取得答案。

角色繫結層級 角色類型 用途、範圍和角色範例
專案層級 自訂角色

您在本指南中建立的自訂角色會授予必要權限,讓使用者在整個專案中驗證或載入控制台資訊頁面,而不會公開特定應用程式或資料儲存庫內容。

職務範例:

資源層級 預先定義的角色

您在應用程式或資料儲存庫資源上指派的預先定義的角色,會授予操作權限,例如對話、調整設定或查看數據分析,但僅限於該資源。

職務範例:

情境示例

假設 Cymbal 有一個 Google Cloud 專案,名為 cymbal-ai-project,其中包含兩個應用程式和多個資料儲存庫:

情境範例:限制應用程式和資料儲存庫的存取權
背景資訊 Cymbal 的 Google Cloud 專案 (名為 cymbal-ai-project) 包含兩個應用程式:
  • Cymbal Finance 財經應用程式:連結至兩個資料儲存庫,分別是一般財務資料儲存庫和機密薪資資料儲存庫。
  • Cymbal HR 應用程式,連結至 Cymbal HR 資料儲存庫。
目標 授予 Alex (alex@cymbal.com) 存取權,允許他使用 Cymbal 財經應用程式,並僅查詢一般財務資料儲存庫,同時拒絕他存取機密薪資資料儲存庫和 Cymbal HR 應用程式。
必要設定 請按照下列步驟設定存取控管:
  1. 專案層級:啟用 cymbal-ai-project 的應用程式和資料儲存庫存取控管功能,並將專案的customRestrictedEndUser角色授予 Alex,讓他們的瀏覽器可以向服務驗證。
  2. 資源層級:僅針對 Cymbal Finance 財經應用程式和一般財務資料儲存庫,授予 Alex Gemini Enterprise 企業版使用者 (roles/discoveryengine.agentspaceUser) 角色。
結果 Alex 登入後,可以開啟 Cymbal Finance 應用程式,並查詢一般財務資料儲存庫。雖然「Confidential Payroll」資料儲存庫連結至同一個應用程式,但 Alex 無法查看或查詢。嘗試存取 Cymbal HR 應用程式或查詢 Cymbal HR 資料儲存庫也會遭到拒絕。

下圖說明專案層級設定和獨立資源層級 IAM 權限,在這個情境中如何搭配運作:

圖表:應用程式和資料儲存庫的精細 IAM 政策設定。

事前準備

  • 確認您具備 Gemini Enterprise 管理員 (roles/discoveryengine.agentspaceAdmin) 角色。
  • 請確保需要受限存取權的使用者,未獲派專案層級的 Discovery Engine 角色。
  • 在「建立自訂專案層級角色」中,為目標角色建立必要的自訂專案層級角色。

啟用應用程式和資料儲存庫存取控管

您必須先使用 Google Cloud 控制台或 REST API,在專案中啟用應用程式和資料儲存庫存取控管功能,才能在應用程式和資料儲存庫設定精細權限,或在 Google Cloud 控制台查看「User permissions」(使用者權限) 分頁:

控制台

如要在 Google Cloud 控制台啟用應用程式和資料儲存庫存取控管功能,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台,依序點選「Gemini Enterprise」 >「Settings」。

    前往「設定」

  2. 選取「資源存取控管」分頁標籤。

  3. 開啟「資源存取控管」切換鈕。

  4. 按一下 [儲存]。

  5. 在「要啟用資源存取控管功能嗎?」對話方塊中,按一下「啟用」。

REST

如要使用 REST API 啟用應用程式和資料儲存庫存取控管功能,請呼叫 projects.patch 方法:

curl -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "x-goog-user-project: PROJECT_ID" \
  "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID?updateMask=customer_provided_config.resource_access_control_config.data_store_access_control_enabled" \
  -d '{
    "customer_provided_config": {
      "resource_access_control_config": {
        "data_store_access_control_enabled": true
      }
    }
  }'

更改下列內容:

  • PROJECT_ID: Google Cloud 專案的 ID。
  • ENDPOINT_LOCATION:API 要求適用的多區域。請指定下列其中一個值:
    • us 適用於美國多區域
    • eu 代表歐盟多區域
    • global 適用於全域位置
    詳情請參閱「為資料儲存庫指定多區域」。

建立自訂專案層級角色

專案層級的自訂角色可授予權限,但不會公開所有專案資源。每個Google Cloud 專案只需建立一次自訂角色。

建立自訂受限使用者角色

customRestrictedEndUser 角色會授予專案層級權限,讓使用者載入 Gemini Enterprise 授權端點和開發人員工具設定 (discoveryengine.locations.buildAuthorizationUrl 和 discoveryengine.devToolsConfigs.get)。這項角色不會授予檢查或查詢特定應用程式或資料儲存庫的權限。

控制台

如要在 Google Cloud 控制台建立自訂角色,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Roles」(角色) 頁面。

    前往「Roles」(角色)

  2. 選取 Google Cloud 專案。

  3. 按一下「+ 建立自訂角色」。

  4. 輸入角色詳細資料:

    • Title:Custom Gemini Enterprise Restricted End User
    • 說明:Base project-level permissions to access Gemini Enterprise apps。
    • 角色 ID:customRestrictedEndUser
    • 角色推出階段:選取「正式發布」
  5. 點選「+ 新增權限」。

  6. 篩選並選取下列權限:

    • discoveryengine.devToolsConfigs.get
    • discoveryengine.locations.buildAuthorizationUrl
  7. 按一下「新增」。

  8. 點選「建立」。

gcloud

如要使用 Google Cloud CLI 建立自訂角色,請按照下列步驟操作:

  1. 執行 gcloud iam roles describe,確認專案中是否有該角色:

    gcloud iam roles describe customRestrictedEndUser --project=PROJECT_ID
    

    將 PROJECT_ID 替換為Google Cloud 專案 ID。

  2. 執行 gcloud iam roles create 建立角色:

    gcloud iam roles create customRestrictedEndUser \
      --project=PROJECT_ID \
      --title="Custom Gemini Enterprise Restricted End User" \
      --description="Base project-level permissions to access Gemini Enterprise apps." \
      --stage=GA \
      --permissions=discoveryengine.devToolsConfigs.get,discoveryengine.locations.buildAuthorizationUrl
    

    將 PROJECT_ID 替換為Google Cloud 專案 ID。

REST

如要使用 REST API 建立自訂角色,請呼叫 roles.create 方法:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "roleId": "customRestrictedEndUser",
    "role": {
      "title": "Custom Gemini Enterprise Restricted End User",
      "description": "Base project-level permissions to access Gemini Enterprise apps.",
      "stage": "GA",
      "includedPermissions": [
        "discoveryengine.devToolsConfigs.get",
        "discoveryengine.locations.buildAuthorizationUrl"
      ]
    }
  }' \
  "https://iam.googleapis.com/v1/projects/PROJECT_ID/roles"

將 PROJECT_ID 替換為 Google Cloud專案 ID。

建立自訂受限管理員角色

customRestrictedAdmin 角色會授予委派管理員和檢視者所需的專案層級權限,讓他們在 Google Cloud 控制台中查看資源清單和側欄,但不會授予查看或修改特定應用程式或資料儲存庫內容的權限。如要委派特定應用程式或資料儲存庫的管理控制權,請在專案層級指派這個自訂角色,然後直接在目標資源上指派 Gemini Enterprise 管理員 (roles/discoveryengine.agentspaceAdmin)。

控制台

如要在 Google Cloud 控制台建立自訂角色,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Roles」(角色) 頁面。

    前往「Roles」(角色)

  2. 選取 Google Cloud 專案。

  3. 按一下「+ 建立角色」。

  4. 輸入角色詳細資料:

    • Title:Custom Gemini Enterprise Restricted Admin
    • 說明:Base project-level permissions to list and view Gemini Enterprise configuration pages。
    • 角色 ID:customRestrictedAdmin
    • Role launch stage:選取「正式發布」。
  5. 點選「+ 新增權限」。

  6. 篩選並選取下列權限:

    • discoveryengine.aclConfigs.get
    • discoveryengine.collections.list
    • discoveryengine.dataStores.list
    • discoveryengine.devToolsConfigs.get
    • discoveryengine.engines.list
    • discoveryengine.licenseConfigs.list
    • discoveryengine.locations.buildAuthorizationUrl
    • discoveryengine.locations.getConnectorSource
    • discoveryengine.locations.listConnectorSources
    • discoveryengine.projects.get
    • discoveryengine.userStores.listUserLicenses
    • resourcemanager.projects.get
  7. 按一下「新增」。

  8. 點選「建立」。

gcloud

如要使用 Google Cloud CLI 建立自訂角色,請按照下列步驟操作:

  1. 執行 gcloud iam roles describe,確認專案中是否有該角色:

    gcloud iam roles describe customRestrictedAdmin --project=PROJECT_ID
    

    將 PROJECT_ID 替換為Google Cloud 專案 ID。

  2. 執行 gcloud iam roles create 建立角色:

    gcloud iam roles create customRestrictedAdmin \
      --project=PROJECT_ID \
      --title="Custom Gemini Enterprise Restricted Admin" \
      --description="Base project-level permissions to list and view Gemini Enterprise configuration pages." \
      --stage=GA \
      --permissions=discoveryengine.aclConfigs.get,discoveryengine.collections.list,discoveryengine.dataStores.list,discoveryengine.devToolsConfigs.get,discoveryengine.engines.list,discoveryengine.licenseConfigs.list,discoveryengine.locations.buildAuthorizationUrl,discoveryengine.locations.getConnectorSource,discoveryengine.locations.listConnectorSources,discoveryengine.projects.get,discoveryengine.userStores.listUserLicenses,resourcemanager.projects.get
    

    將 PROJECT_ID 替換為Google Cloud 專案 ID。

REST

如要使用 REST API 建立自訂角色,請呼叫 roles.create 方法:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "roleId": "customRestrictedAdmin",
    "role": {
      "title": "Custom Gemini Enterprise Restricted Admin",
      "description": "Base project-level permissions to list and view Gemini Enterprise configuration pages.",
      "stage": "GA",
      "includedPermissions": [
        "discoveryengine.aclConfigs.get",
        "discoveryengine.collections.list",
        "discoveryengine.dataStores.list",
        "discoveryengine.devToolsConfigs.get",
        "discoveryengine.engines.list",
        "discoveryengine.licenseConfigs.list",
        "discoveryengine.locations.buildAuthorizationUrl",
        "discoveryengine.locations.getConnectorSource",
        "discoveryengine.locations.listConnectorSources",
        "discoveryengine.projects.get",
        "discoveryengine.userStores.listUserLicenses",
        "resourcemanager.projects.get"
      ]
    }
  }' \
  "https://iam.googleapis.com/v1/projects/PROJECT_ID/roles"

將 PROJECT_ID 替換為 Google Cloud專案 ID。

更新現有自訂角色

如果專案中已有自訂角色,但需要新增缺少的權限,請更新角色:

控制台

如要在 Google Cloud 控制台更新自訂角色,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Roles」(角色) 頁面。

    前往「Roles」(角色)

  2. 選取您建立自訂角色的 Google Cloud 專案。

  3. 選取「Custom」(自訂) 分頁標籤,或篩選清單來找出自訂角色 (customRestrictedEndUser 或 customRestrictedAdmin)。

  4. 按一下自訂角色的名稱。

  5. 按一下「編輯角色」。

  6. 按一下「+ 新增權限」。

  7. 搜尋並選取要新增的權限,然後按一下「Add」(新增)。

  8. 按一下 [儲存]。

gcloud

如要使用 Google Cloud CLI 更新現有的自訂角色,請執行 gcloud iam roles update:

  • 如要建立受限制的使用者角色,請執行下列指令:

    gcloud iam roles update customRestrictedEndUser \
      --project=PROJECT_ID \
      --add-permissions=discoveryengine.devToolsConfigs.get,discoveryengine.locations.buildAuthorizationUrl
    

    將 PROJECT_ID 替換為Google Cloud 專案 ID。

  • 如要建立受限制的系統管理員角色,請執行下列指令:

    gcloud iam roles update customRestrictedAdmin \
      --project=PROJECT_ID \
      --add-permissions=discoveryengine.locations.buildAuthorizationUrl,discoveryengine.locations.listConnectorSources
    

    將 PROJECT_ID 替換為Google Cloud 專案 ID。

REST

如要使用 REST API 更新自訂角色,請呼叫 roles.patch 方法。請注意,roles.patch 會取代 includedPermissions 清單;請指定您希望角色包含的所有權限:

  • 如要建立受限制的使用者角色,請執行下列指令:

    curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "includedPermissions": [
          "discoveryengine.devToolsConfigs.get",
          "discoveryengine.locations.buildAuthorizationUrl"
        ]
      }' \
      "https://iam.googleapis.com/v1/projects/PROJECT_ID/roles/customRestrictedEndUser?updateMask=includedPermissions"
    

    將 PROJECT_ID 替換為Google Cloud 專案 ID。

  • 如要建立受限制的系統管理員角色,請執行下列指令:

    curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "includedPermissions": [
          "discoveryengine.aclConfigs.get",
          "discoveryengine.collections.list",
          "discoveryengine.dataStores.list",
          "discoveryengine.devToolsConfigs.get",
          "discoveryengine.engines.list",
          "discoveryengine.licenseConfigs.list",
          "discoveryengine.locations.buildAuthorizationUrl",
          "discoveryengine.locations.getConnectorSource",
          "discoveryengine.locations.listConnectorSources",
          "discoveryengine.projects.get",
          "discoveryengine.userStores.listUserLicenses",
          "resourcemanager.projects.get"
        ]
      }' \
      "https://iam.googleapis.com/v1/projects/PROJECT_ID/roles/customRestrictedAdmin?updateMask=includedPermissions"
    

    將 PROJECT_ID 替換為Google Cloud 專案 ID。

在專案層級指派自訂角色

將自訂專案角色指派給目標使用者或群組。

控制台

如要使用 Google Cloud 控制台指派自訂角色,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「IAM」(身分與存取權管理) 頁面。

    前往「IAM」(身分與存取權管理) 頁面

  2. 選取您建立自訂角色的 Google Cloud 專案。

  3. 按一下「授予存取權」,新增主體或編輯現有主體。

  4. 在「New principals」(新增主體) 中,輸入使用者或群組的電子郵件地址。

  5. 選取為角色建立的自訂角色,例如:

    • Custom Gemini Enterprise Restricted End User
    • 自訂 Gemini Enterprise 受限制管理員
  6. 按一下 [儲存]。

gcloud

如要使用 Google Cloud CLI 指派自訂角色,請執行下列指令:

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:USER_EMAIL" \
  --role="projects/PROJECT_ID/roles/CUSTOM_ROLE_ID"

更改下列內容:

  • PROJECT_ID: Google Cloud 專案的 ID。
  • CUSTOM_ROLE_ID:要指派的自訂角色 ID:customRestrictedEndUser 或 customRestrictedAdmin。
  • USER_EMAIL:使用者或群組的電子郵件地址。

REST

如要使用 Cloud Resource Manager API 指派自訂角色,請按照下列步驟操作,並採用讀取-修改-寫入模式:

  1. 使用 getIamPolicy 方法取得目前的 IAM 政策,擷取目前的政策及其 etag:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{}' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy"
    

    將 PROJECT_ID 替換為Google Cloud 專案 ID。

  2. 使用 setIamPolicy 方法和更新後的政策酬載,設定更新後的 IAM 政策:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "policy": {
          "etag": "ETAG",
          "bindings": [
            {
              "role": "EXISTING_ROLE",
              "members": [
                "user:EXISTING_USER_EMAIL"
              ]
            },
            {
              "role": "projects/PROJECT_ID/roles/CUSTOM_ROLE_ID",
              "members": [
                "user:USER_EMAIL"
              ]
            }
          ]
        }
      }' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy"
    

    更改下列內容:

    • ETAG:使用 getIamPolicy 方法時,做為回應取得的 etag 值。
    • EXISTING_ROLE 和 EXISTING_USER_EMAIL:getIamPolicy 方法傳回的現有角色和主體繫結,您想要保留這些繫結。
    • PROJECT_ID: Google Cloud專案的 ID。
    • CUSTOM_ROLE_ID:要指派的自訂專案層級角色 ID。指定下列其中一項:
      • customRestrictedEndUser:授予專案權限,讓使用者驗證及存取應用程式。
      • customRestrictedAdmin:授予專案權限,讓管理員在 Google Cloud 控制台中查看資源清單。
    • USER_EMAIL:使用者或群組的電子郵件地址。

設定應用程式權限

使用Google Cloud 控制台或 REST API,授予目標應用程式資源的資源層級權限。

如要在應用程式層級 IAM 政策中指派自訂角色,而非預先定義的角色,請確認自訂角色包含對應預先定義角色的所有權限,例如 Gemini Enterprise 企業版使用者 (roles/discoveryengine.agentspaceUser) 或 Gemini Enterprise 管理員 (roles/discoveryengine.agentspaceAdmin)。

控制台

如要在 Google Cloud 控制台設定應用程式權限,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台,依序點選「Gemini Enterprise」 >「Apps」頁面。

    前往「應用程式」

  2. 選取目標應用程式。

  3. 依序點選「使用者權限」和「新增使用者」。

  4. 選取使用者或群組的角色:

  5. 按一下 [儲存]。

REST

如要使用 REST API 設定應用程式權限,請按照下列步驟,採用讀取-修改-寫入模式:

  1. 使用 getIamPolicy 方法取得目前的 IAM 政策,擷取目前的政策及其 etag:

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID:getIamPolicy"
    

    更改下列內容:

    • PROJECT_ID:專案 ID。
    • ENDPOINT_LOCATION:API 要求適用的多區域。請指定下列其中一個值:
      • us 適用於美國多區域
      • eu 代表歐盟多區域
      • global 適用於全域位置
      詳情請參閱「為資料儲存庫指定多區域」。
    • LOCATION:資料儲存庫的多區域:global、us 或 eu。
    • APP_ID:要設定的應用程式 ID。
  2. 使用 setIamPolicy 方法和更新後的政策酬載,設定更新後的 IAM 政策:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "policy": {
          "etag": "ETAG",
          "bindings": [
            {
              "role": "EXISTING_ROLE",
              "members": [
                "user:EXISTING_USER_EMAIL"
              ]
            },
            {
              "role": "PREDEFINED_ROLE",
              "members": [
                "user:USER_EMAIL"
              ]
            }
          ]
        }
      }' \
      "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID:setIamPolicy"
    

    更改下列內容:

    • ETAG:使用 getIamPolicy 方法時,做為回應取得的 etag 值。
    • EXISTING_ROLE 和 EXISTING_USER_EMAIL:getIamPolicy 方法傳回的現有角色和主體繫結,您想要保留這些繫結。
    • USER_EMAIL:使用者或群組的電子郵件地址 (例如 alex@example.com)。
      • 如要授予存取權,請將使用者電子郵件地址新增至 members 陣列,並在每個地址前加上 user:。避免在電子郵件地址前後加上多餘空格。
      • 如要撤銷存取權,請從 members 陣列中移除使用者電子郵件地址。
    • PREDEFINED_ROLE:要指派給應用程式的預先定義角色。例如,Gemini Enterprise 使用者 (roles/discoveryengine.agentspaceUser) 適用於使用者,Gemini Enterprise 管理員 (roles/discoveryengine.agentspaceAdmin) 適用於管理員,Gemini Enterprise 檢視者 (roles/discoveryengine.agentspaceViewer) 適用於檢視者。詳情請參閱「預先定義的角色」。
    • PROJECT_ID:Google Cloud 專案的 ID。
    • ENDPOINT_LOCATION:API 要求適用的多區域。請指定下列其中一個值:
      • us 適用於美國多區域
      • eu 代表歐盟多區域
      • global 適用於全域位置
      詳情請參閱「為資料儲存庫指定多區域」。
    • LOCATION:資料儲存庫的多區域:global、us 或 eu。
    • APP_ID:要設定的應用程式 ID。

設定資料儲存庫權限

如要設定資料權限,請使用 Google Cloud 控制台或 REST API,在目標資料儲存庫授予資源層級權限。使用者只能連線及查詢已明確授予權限的資料儲存庫。

如要在資料儲存庫 IAM 政策中指派自訂角色,而非預先定義的角色,請確認自訂角色包含對應預先定義角色的所有權限,例如 Gemini Enterprise 企業版使用者 (roles/discoveryengine.agentspaceUser) 或 Gemini Enterprise 管理員 (roles/discoveryengine.agentspaceAdmin)。

對於強制執行使用者文件權限的第三方連接器,使用者對個別文件的存取權仍由從來源系統同步的存取控管清單 (ACL) 控管 (授予 IAM 存取權不會略過來源 ACL)。

如要尋找資料儲存庫、集合和實體 ID,請參閱「取得資料儲存庫和實體詳細資料」。

控制台

如要在 Google Cloud 控制台設定資料儲存庫權限,請按照下列步驟操作。在 Google Cloud 控制台中指派給資料儲存庫的權限,會自動套用至任何基礎子實體:

  1. 前往 Google Cloud 控制台,依序點選「Gemini Enterprise」 >「Data Stores」(資料儲存庫)。

    前往「Data Stores」(資料儲存庫) 頁面

  2. 點按資料儲存庫的名稱。

  3. 依序點選「使用者權限」 >「新增使用者」。

  4. 選取使用者或群組的角色:

  5. 按一下 [儲存]。

REST

如要使用 REST API 設定資料儲存庫權限,請展開與資料儲存庫設定相符的部分:

包含實體的資料儲存庫

如果第三方連接器包含多個實體類型,例如 Jira、Salesforce、Confluence 或 SharePoint Online,請使用這個選項。使用 REST API 時,權限不會自動從父項連接器集合層層套用至子實體。您必須為父項集合資源和所有基礎實體資料儲存庫授予相同權限,請勿只為部分實體設定權限。

請按照下列步驟,為含有實體的資料儲存庫設定權限:

  1. 取得資料連接器集合目前的 IAM 政策:

    呼叫 getIamPolicy 擷取目前的政策及其 etag:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID:getIamPolicy"

    更改下列內容:

    • PROJECT_ID: Google Cloud 專案的 ID。
    • ENDPOINT_LOCATION:API 要求適用的多區域。請指定下列其中一個值:
      • us 適用於美國多區域
      • eu 代表歐盟多區域
      • global 適用於全域位置
      詳情請參閱「為資料儲存庫指定多區域」。
    • LOCATION:資料儲存庫的多區域:global、us 或 eu。
    • COLLECTION_ID:資料連接器的集合 ID。詳情請參閱「取得資料儲存庫和實體詳細資料」。
  2. 在資料連接器集合上設定更新後的 IAM 政策:

    呼叫 setIamPolicy,包括 etag 和角色繫結:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{
      "policy": {
        "etag": "ETAG",
        "bindings": [
          {
            "role": "EXISTING_ROLE",
            "members": [
              "user:EXISTING_USER_EMAIL"
            ]
          },
          {
            "role": "PREDEFINED_ROLE",
            "members": [
              "user:USER_EMAIL"
            ]
          }
        ]
      }
    }' \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID:setIamPolicy"

    更改下列內容:

    • ETAG:您在步驟 1 使用 getIamPolicy 方法時,收到的 etag 值。
    • EXISTING_ROLE 和 EXISTING_USER_EMAIL:getIamPolicy 方法傳回的現有角色和主體繫結,您想要保留這些繫結。
    • USER_EMAIL:使用者或群組的電子郵件地址。
    • PREDEFINED_ROLE:要指派給集合的預先定義角色。例如,使用者可指派 Gemini Enterprise 企業版使用者 (roles/discoveryengine.agentspaceUser) 角色,管理員可指派 Gemini Enterprise 管理員 (roles/discoveryengine.agentspaceAdmin) 角色,檢視者可指派 Gemini Enterprise 檢視者 (roles/discoveryengine.agentspaceViewer) 角色。詳情請參閱「預先定義的角色」。
    • PROJECT_ID: Google Cloud 專案的 ID。
    • ENDPOINT_LOCATION:API 要求適用的多區域。請指定下列其中一個值:
      • us 適用於美國多區域
      • eu 代表歐盟多區域
      • global 適用於全域位置
      詳情請參閱「為資料儲存庫指定多區域」。
    • LOCATION:資料儲存庫的多區域:global、us 或 eu。
    • COLLECTION_ID:資料連接器的集合 ID。
  3. 取得實體資料儲存庫目前的 IAM 政策:

    在 Gemini Enterprise 中,子實體資料儲存庫位於 default_collection 下方,並以連接器集合 ID 做為前置字串。在 default_collection 下方的實體資料儲存庫上呼叫 getIamPolicy:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ENTITY_ID:getIamPolicy"

    更改下列內容:

    • PROJECT_ID: Google Cloud 專案的 ID。
    • ENDPOINT_LOCATION:API 要求適用的多區域。請指定下列其中一個值:
      • us 適用於美國多區域
      • eu 代表歐盟多區域
      • global 適用於全域位置
      詳情請參閱「為資料儲存庫指定多區域」。
    • LOCATION:資料儲存庫的多區域:global、us 或 eu。
    • DATA_STORE_ENTITY_ID:實體資料儲存庫的 ID (例如 DataConnector3_entityA)。詳情請參閱「取得資料儲存庫和實體詳細資料」。
  4. 在實體資料儲存庫上設定更新後的 IAM 政策:

    在實體資料儲存庫上呼叫 setIamPolicy,包括 etag:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{
      "policy": {
        "etag": "ETAG",
        "bindings": [
          {
            "role": "EXISTING_ROLE",
            "members": [
              "user:EXISTING_USER_EMAIL"
            ]
          },
          {
            "role": "PREDEFINED_ROLE",
            "members": [
              "user:USER_EMAIL"
            ]
          }
        ]
      }
    }' \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ENTITY_ID:setIamPolicy"

    更改下列內容:

    • ETAG:您在步驟 3 使用 getIamPolicy 方法時,做為回應取得的 etag 值。
    • EXISTING_ROLE 和 EXISTING_USER_EMAIL:getIamPolicy 方法傳回的現有角色和主體繫結,您想要保留這些繫結。
    • USER_EMAIL:使用者或群組的電子郵件地址。
    • PREDEFINED_ROLE:要指派給實體資料儲存庫的預先定義角色。例如,使用者可指派 Gemini Enterprise 企業版使用者 (roles/discoveryengine.agentspaceUser) 角色,管理員可指派 Gemini Enterprise 管理員 (roles/discoveryengine.agentspaceAdmin) 角色,檢視者可指派 Gemini Enterprise 檢視者 (roles/discoveryengine.agentspaceViewer) 角色。詳情請參閱「預先定義的角色」。
    • PROJECT_ID: Google Cloud 專案的 ID。
    • ENDPOINT_LOCATION:API 要求適用的多區域。請指定下列其中一個值:
      • us 適用於美國多區域
      • eu 代表歐盟多區域
      • global 適用於全域位置
      詳情請參閱「為資料儲存庫指定多區域」。
    • LOCATION:資料儲存庫的多區域:global、us 或 eu。
    • DATA_STORE_ENTITY_ID:實體資料儲存庫的 ID。

針對資料連接器下的每個實體資料儲存庫,重複執行步驟 3 和 4。如果日後設定連接器來同步處理其他實體類型,請在每個新建立的實體資料儲存庫上設定 IAM 政策。

不含實體的資料儲存庫

如要使用獨立資料儲存庫 (例如 Cloud Storage、BigQuery 或不含實體的資料來源),請選取這個選項。直接在 default_collection 下方的單一資料儲存庫資源上設定權限。

請按照下列步驟,為不含實體的資料儲存庫設定權限:

  1. 取得資料儲存庫目前的 IAM 政策:

    呼叫 getIamPolicy 擷取目前的政策及其 etag:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ID:getIamPolicy"

    更改下列內容:

    • PROJECT_ID: Google Cloud 專案的 ID。
    • ENDPOINT_LOCATION:API 要求適用的多區域。請指定下列其中一個值:
      • us 適用於美國多區域
      • eu 代表歐盟多區域
      • global 適用於全域位置
      詳情請參閱「為資料儲存庫指定多區域」。
    • LOCATION:資料儲存庫的多區域:global、us 或 eu。
    • DATA_STORE_ID:資料儲存庫的 ID。詳情請參閱「取得資料儲存庫和實體詳細資料」。
  2. 在資料儲存庫設定更新後的 IAM 政策:

    呼叫 setIamPolicy,包括 etag 和角色繫結:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{
      "policy": {
        "etag": "ETAG",
        "bindings": [
          {
            "role": "EXISTING_ROLE",
            "members": [
              "user:EXISTING_USER_EMAIL"
            ]
          },
          {
            "role": "PREDEFINED_ROLE",
            "members": [
              "user:USER_EMAIL"
            ]
          }
        ]
      }
    }' \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ID:setIamPolicy"

    更改下列內容:

    • ETAG:您在步驟 1 使用 getIamPolicy 方法時,收到的 etag 值。
    • EXISTING_ROLE 和 EXISTING_USER_EMAIL:getIamPolicy 方法傳回的現有角色和主體繫結,您想要保留這些繫結。
    • USER_EMAIL:使用者或群組的電子郵件地址。
    • PREDEFINED_ROLE:要指派給資料儲存庫的預先定義角色。例如,使用者可指派 Gemini Enterprise 企業版使用者 (roles/discoveryengine.agentspaceUser) 角色,管理員可指派 Gemini Enterprise 管理員 (roles/discoveryengine.agentspaceAdmin) 角色,檢視者可指派 Gemini Enterprise 檢視者 (roles/discoveryengine.agentspaceViewer) 角色。詳情請參閱「預先定義的角色」。
    • PROJECT_ID: Google Cloud 專案的 ID。
    • ENDPOINT_LOCATION:API 要求適用的多區域。請指定下列其中一個值:
      • us 適用於美國多區域
      • eu 代表歐盟多區域
      • global 適用於全域位置
      詳情請參閱「為資料儲存庫指定多區域」。
    • LOCATION:資料儲存庫的多區域:global、us 或 eu。
    • DATA_STORE_ID:資料儲存庫的 ID。

授予 Gemini Notebook Enterprise 和 AI 開發人員工具功能存取權

在專案層級獲派 customRestrictedEndUser 的受限使用者,會失去 AI 開發人員工具和 Gemini Notebook Enterprise 等功能的存取權,因為他們的專案角色僅包含基本授權權限。

在專案層級授予完整的 Gemini Enterprise 企業版使用者 (roles/discoveryengine.agentspaceUser) 角色,會覆寫隔離設定,並公開專案中的所有應用程式和資料儲存庫。而是由管理員在專案層級授予範圍較小、特定功能的角色。

授予 Gemini Notebook Enterprise 存取權

授予 Cloud NotebookLM 使用者 (roles/discoveryengine.notebookLmUser) 角色,允許受限使用者 建立及使用 Notebook,而不公開應用程式或資料儲存庫:

控制台

如要使用 Google Cloud 控制台授予存取權,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「IAM」(身分與存取權管理) 頁面。

    前往「IAM」(身分與存取權管理) 頁面

  2. 選取 Google Cloud 專案。

  3. 在權限清單中找出使用者或群組,然後按一下「Edit principal」(編輯主體)。或者,按一下「Grant access」(授予存取權) 新增使用者。

  4. 在「指派角色」部分,按一下「新增其他角色」。

  5. 在「Select a role」(請選擇角色) 欄位中,搜尋並選取「Cloud NotebookLM User」(Cloud NotebookLM 使用者) (roles/discoveryengine.notebookLmUser)。

  6. 按一下 [儲存]。

gcloud

如要使用 Google Cloud CLI 授予存取權,請執行下列指令:

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:USER_EMAIL" \
  --role="roles/discoveryengine.notebookLmUser"

更改下列內容:

  • PROJECT_ID: Google Cloud 專案的 ID。
  • USER_EMAIL:使用者或群組的電子郵件地址。

REST

如要使用 REST API 授予存取權,請使用 setIamPolicy 方法更新專案 IAM 政策:

  1. 使用 getIamPolicy 方法取得目前的 IAM 政策,擷取目前的政策及其 etag:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{}' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy"
    

    將 PROJECT_ID 替換為Google Cloud 專案 ID。

  2. 使用 setIamPolicy 方法和 roles/discoveryengine.notebookLmUser 角色設定更新後的 IAM 政策:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "policy": {
          "etag": "ETAG",
          "bindings": [
            {
              "role": "EXISTING_ROLE",
              "members": [
                "user:EXISTING_USER_EMAIL"
              ]
            },
            {
              "role": "roles/discoveryengine.notebookLmUser",
              "members": [
                "user:USER_EMAIL"
              ]
            }
          ]
        }
      }' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy"
    

    更改下列內容:

    • ETAG:getIamPolicy 回應中的 etag 值。
    • EXISTING_ROLE 和 EXISTING_USER_EMAIL:getIamPolicy 方法傳回的現有角色和主體繫結,您想要保留這些繫結。
    • PROJECT_ID: Google Cloud專案的 ID。
    • USER_EMAIL:使用者或群組的電子郵件地址。

授予 AI 開發人員工具存取權

授予 Gemini for Google Cloud 使用者 (roles/cloudaicompanion.user) 和 Business AI Code API 使用者 (roles/businessaicode.user) 角色,即可啟用 AI 開發人員工具,且不會公開 Gemini Enterprise 應用程式或資料儲存庫:

控制台

如要使用 Google Cloud 控制台授予存取權,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「IAM」(身分與存取權管理) 頁面。

    前往「IAM」(身分與存取權管理) 頁面

  2. 選取 Google Cloud 專案。

  3. 在權限清單中找出使用者或群組,然後按一下「Edit principal」(編輯主體)。或者,按一下「Grant access」(授予存取權) 新增使用者。

  4. 在「指派角色」部分,指派下列各個角色:

    • Gemini for Google Cloud 使用者 (roles/cloudaicompanion.user)
    • Business AI Code API 使用者角色 (roles/businessaicode.user)
  5. 按一下 [儲存]。

gcloud

如要使用 Google Cloud CLI 授予存取權,請執行下列指令:

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:USER_EMAIL" \
  --role="roles/cloudaicompanion.user"

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:USER_EMAIL" \
  --role="roles/businessaicode.user"

更改下列內容:

  • PROJECT_ID: Google Cloud 專案的 ID。
  • USER_EMAIL:使用者或群組的電子郵件地址。

REST

如要使用 REST API 授予存取權,請使用 setIamPolicy 方法更新專案 IAM 政策:

  1. 使用 getIamPolicy 方法取得目前的 IAM 政策,擷取目前的政策及其 etag:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{}' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy"
    

    將 PROJECT_ID 替換為Google Cloud 專案 ID。

  2. 使用 setIamPolicy 方法,搭配 roles/cloudaicompanion.user 和 roles/businessaicode.user 角色,設定更新後的 IAM 政策:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "policy": {
          "etag": "ETAG",
          "bindings": [
            {
              "role": "EXISTING_ROLE",
              "members": [
                "user:EXISTING_USER_EMAIL"
              ]
            },
            {
              "role": "roles/cloudaicompanion.user",
              "members": [
                "user:USER_EMAIL"
              ]
            },
            {
              "role": "roles/businessaicode.user",
              "members": [
                "user:USER_EMAIL"
              ]
            }
          ]
        }
      }' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy"
    

    更改下列內容:

    • ETAG:getIamPolicy 回應中的 etag 值。
    • EXISTING_ROLE 和 EXISTING_USER_EMAIL:getIamPolicy 方法傳回的現有角色和主體繫結,您想要保留這些繫結。
    • PROJECT_ID: Google Cloud專案的 ID。
    • USER_EMAIL:使用者或群組的電子郵件地址。

後續步驟

如要刪除具有 IAM 政策的應用程式,請先從政策中移除使用者,再刪除應用程式。詳情請參閱「刪除具有 IAM 政策的應用程式的最佳做法」。