本頁說明 Gemini Enterprise 管理員如何使用 API,管理個別 Gemini Enterprise 應用程式的精細存取權控管。
根據預設,IAM 權限通常是在專案層級管理。應用程式層級的 IAM 可提供更精細的控制選項,讓管理員:
- 限制使用者存取同一 Google Cloud 專案中的特定應用程式。
- 根據機構需求和資料孤島,調整 Gemini Enterprise 部署作業的權限。
舉例來說,假設某個機構有 HR 應用程式和全公司適用的應用程式。如果 HR 團隊成員具備專案層級的權限,就能存取這兩個應用程式。相較之下,使用應用程式層級的身分與存取權管理政策,您可以只授予銷售團隊成員公司全體適用的應用程式存取權,防止他們存取人力資源應用程式。

事前準備
確認您具備 Gemini Enterprise 管理員角色。
確認所有具備有效授權的 Gemini Enterprise 使用者都擁有「Gemini Enterprise 受限使用者」角色。
從專案層級存取權轉換為應用程式層級存取權
如要限制使用者只能存取特定應用程式,請先從專案層級權限中移除對應角色,然後在應用程式層級授予該角色。
舉例來說,如要將具有 Gemini Enterprise 使用者 (roles/discoveryengine.agentspaceUser) 角色的使用者從專案層級移至應用程式層級,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「IAM」(身分與存取權管理) 頁面。
- 找出使用者,然後從專案層級權限中移除
roles/discoveryengine.agentspaceUser角色。 - 使用
setIamPolicy方法,將特定應用程式的roles/discoveryengine.agentspaceUser角色授予使用者。詳情請參閱「管理應用程式的 IAM 政策」。
管理應用程式的 IAM 政策
如要管理 Gemini Enterprise 應用程式的存取權,可以使用 getIamPolicy 和 setIamPolicy 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:資料儲存庫的多區域:global、us或euAPP_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_EMAIL、GROUP_EMAIL: 一或多個使用者或群組電子郵件地址。除了user和group之外,principal和principalSet也是 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:資料儲存庫的多區域:global、us或eu。APP_ID:要設定的應用程式 ID。
後續步驟
如要刪除具有 IAM 政策的應用程式,請先從政策中移除使用者,再刪除應用程式。詳情請參閱「刪除具有 IAM 政策的應用程式的最佳做法」。