設定應用程式的存取控管機制

本頁說明 Gemini Enterprise 管理員如何使用 API,管理個別 Gemini Enterprise 應用程式的精細存取權控管。

根據預設,IAM 權限通常是在專案層級管理。應用程式層級的 IAM 可提供更精細的控制選項,讓管理員:

  • 限制使用者存取同一 Google Cloud 專案中的特定應用程式。
  • 根據機構需求和資料孤島,調整 Gemini Enterprise 部署作業的權限。

舉例來說,假設某個機構有 HR 應用程式和全公司適用的應用程式。如果 HR 團隊成員具備專案層級的權限,就能存取這兩個應用程式。相較之下,使用應用程式層級的身分與存取權管理政策,您可以只授予銷售團隊成員公司全體適用的應用程式存取權,防止他們存取人力資源應用程式。

應用程式層級 IAM 政策範例的圖表。

事前準備

  • 確認您具備 Gemini Enterprise 管理員角色。

  • 確認所有具備有效授權的 Gemini Enterprise 使用者都擁有「Gemini Enterprise 受限使用者」角色。

從專案層級存取權轉換為應用程式層級存取權

如要限制使用者只能存取特定應用程式,請先從專案層級權限中移除對應角色,然後在應用程式層級授予該角色。

舉例來說,如要將具有 Gemini Enterprise 使用者 (roles/discoveryengine.agentspaceUser) 角色的使用者從專案層級移至應用程式層級,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「IAM」(身分與存取權管理) 頁面。
  2. 找出使用者,然後從專案層級權限中移除 roles/discoveryengine.agentspaceUser 角色。
  3. 使用 setIamPolicy 方法,將特定應用程式的 roles/discoveryengine.agentspaceUser 角色授予使用者。詳情請參閱「管理應用程式的 IAM 政策」。

管理應用程式的 IAM 政策

如要管理 Gemini Enterprise 應用程式的存取權,可以使用 getIamPolicysetIamPolicy API 方法。

下列步驟說明如何擷取目前的政策,然後更新政策以授予或撤銷使用者存取權。

取得應用程式 IAM 政策

使用 getIamPolicy 方法,取得應用程式目前的 IAM 政策。建議您先擷取現有政策,以免覆寫目前的權限。

REST

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:資料儲存庫的多區域:globaluseu
  • APP_ID:要設定的應用程式 ID。

更新應用程式 IAM 政策

如要授予或撤銷使用者對應用程式的存取權,請使用 setIamPolicy 方法更新應用程式的 IAM 政策。

IAM 政策會使用「Gemini Enterprise 使用者」(roles/discoveryengine.agentspaceUser) 角色,授予使用者應用程式的直接存取權。

REST

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
      "policy": {
         "etag": "ETAG",
         "bindings": [
          {
            "role": "roles/discoveryengine.agentspaceUser",
            "members": [
              "user:USER_EMAIL",
              "group:GROUP_EMAIL",
              "principal://iam.googleapis.com/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT_ID",
              "principalSet://iam.googleapis.com/locations/global/workloadIdentityPools/POOL_ID/attribute.NAME/VALUE"
            ]
          }
        ]
      }
    }' \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID:setIamPolicy"

更改下列內容:

  • ETAG:使用 getIamPolicy 方法時,您在回應中取得的 etag 值。

  • USER_EMAILGROUP_EMAIL: 一或多個使用者或群組電子郵件地址。除了 usergroup 之外,principalprincipalSet 也是 Workload Identity Federation 的有效成員類型。

    • 如要授予存取權,請將主體新增至 members 陣列。例如:"user:cloudysanfrancisco@gmail.com""group:mcymbalgroup@google.com"

    • 如要撤銷存取權,請從 members 陣列中移除主體。

  • POOL_ID:Workload Identity Pool 的 ID。

  • SUBJECT_ID:特定身分的主體 ID。

  • NAME:屬性的名稱。

  • VALUE:屬性的值。

  • PROJECT_ID:專案的 ID。

  • ENDPOINT_LOCATION:API 要求適用的多區域。請指定下列其中一個值:

    • us 適用於美國多區域
    • eu 代表歐盟多區域
    • global 適用於全域位置
    詳情請參閱「為資料儲存庫指定多區域」。

  • LOCATION:資料儲存庫的多區域:globaluseu

  • APP_ID:要設定的應用程式 ID。

後續步驟

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