本页介绍了 Gemini Enterprise 管理员如何使用 API 来管理各个 Gemini Enterprise 应用的精细访问权限控制。
默认情况下,IAM 权限通常在项目级层进行管理。应用级 IAM 可实现更精细的控制,让管理员能够:
- 限制用户对同一 Google Cloud 项目内特定应用的访问权限。
- 根据组织需求和数据孤岛,调整 Gemini Enterprise 部署的权限。
例如,假设某个组织有一个 HR 应用和一个公司范围的应用。具有项目级权限的 HR 团队成员可以访问这两个应用。相比之下,如果使用应用级 IAM 政策,您可以仅向销售团队成员授予对公司范围应用的访问权限,从而防止他们访问 HR 应用。

准备工作
确认您拥有 Gemini Enterprise 管理员角色。
确认所有拥有有效许可的 Gemini Enterprise 用户都具有 Gemini Enterprise 受限用户角色。
从项目级访问权限过渡到应用级访问权限
如需将用户限制为只能访问特定应用,您必须从项目级权限中移除相应角色,然后在应用级授予该角色。
例如,如需将拥有 Gemini Enterprise User (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 User (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也是工作负载身份联合的有效成员类型。如需授予访问权限,请将主账号添加到
members数组中。例如"user:cloudysanfrancisco@gmail.com"或"group:mcymbalgroup@google.com"。如需撤消访问权限,请从
members数组中移除相应的主账号。
POOL_ID:工作负载身份池的 ID。SUBJECT_ID:特定身份的正文标识符。NAME:属性的名称。VALUE:属性的值。PROJECT_ID:您的项目的 ID。ENDPOINT_LOCATION:API 请求的多区域。请指定以下某个值:us(表示美国多区域)eu(表示欧盟多区域)global(表示全球位置)
LOCATION:数据存储区的多区域:global、us或eu。APP_ID:要配置的应用的 ID。
接下来怎么做?
如果您想删除具有 IAM 政策的应用,可以在删除该应用之前从相应政策中移除用户。如需了解详情,请参阅删除具有 IAM 政策的应用的最佳实践。