为应用配置访问权限控制

本页介绍了 Gemini Enterprise 管理员如何使用 API 来管理各个 Gemini Enterprise 应用的精细访问权限控制。

默认情况下,IAM 权限通常在项目级层进行管理。应用级 IAM 可实现更精细的控制,让管理员能够:

  • 限制用户对同一 Google Cloud 项目内特定应用的访问权限。
  • 根据组织需求和数据孤岛,调整 Gemini Enterprise 部署的权限。

例如,假设某个组织有一个 HR 应用和一个公司范围的应用。具有项目级权限的 HR 团队成员可以访问这两个应用。相比之下,如果使用应用级 IAM 政策,您可以仅向销售团队成员授予对公司范围应用的访问权限,从而防止他们访问 HR 应用。

应用级 IAM 政策示例的图表。

准备工作

从项目级访问权限过渡到应用级访问权限

如需将用户限制为只能访问特定应用,您必须从项目级权限中移除相应角色,然后在应用级授予该角色。

例如,如需将拥有 Gemini Enterprise User (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 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_EMAILGROUP_EMAIL:一个或多个用户或群组邮箱地址。除了 usergroup 之外,principalprincipalSet 也是工作负载身份联合的有效成员类型。

    • 如需授予访问权限,请将主账号添加到 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:数据存储区的多区域:globaluseu

  • APP_ID:要配置的应用的 ID。

接下来怎么做?

如果您想删除具有 IAM 政策的应用,可以在删除该应用之前从相应政策中移除用户。如需了解详情,请参阅删除具有 IAM 政策的应用的最佳实践