Nesta página, explicamos como um admin do Gemini Enterprise pode usar a API para gerenciar o controle de acesso refinado para apps individuais do Gemini Enterprise.
Se você precisar configurar controles de acesso granulares no nível do recurso em apps e repositórios de dados, consulte Configurar controles de acesso granulares para apps e repositórios de dados.
Por padrão, as permissões do IAM costumam ser gerenciadas no nível do projeto. O IAM no nível do app permite um controle mais granular, permitindo que os admins:
- Restrinjam o acesso do usuário a apps específicos no mesmo Google Cloud projeto.
- Alinhem as permissões às necessidades organizacionais e aos silos de dados para as implantações do Gemini Enterprise.
Por exemplo, considere uma organização com um app de RH e um app para toda a empresa. Um membro da equipe de RH com permissões no nível do projeto pode acessar os dois apps. Por outro lado, usando uma política do IAM no nível do app, você pode conceder a um membro da equipe de vendas acesso apenas ao app de toda a empresa, impedindo que ele acesse o app de RH.

Antes de começar
Confirme se você tem o papel de admin do Gemini Enterprise (
roles/discoveryengine.agentspaceAdmin).Confirme se todos os usuários corporativos do Gemini Enterprise têm uma licença válida e recebem o papel de usuário restrito do Gemini Enterprise (
roles/discoveryengine.agentspaceRestrictedUser) no nível do projeto. Para instruções, consulte Conceder permissões aos usuários.Esse papel não concede acesso a nenhum app por conta própria. Ele fornece o acesso no nível do projeto de que os usuários precisam, e você concede acesso a apps individuais. Se você usar um papel personalizado para envolvidos no projeto em vez do papel predefinido
roles/discoveryengine.agentspaceRestrictedUser, verifique se o papel personalizado inclui as permissõesdiscoveryengine.locations.buildAuthorizationUrl,discoveryengine.dataStores.get,discoveryengine.collections.getediscoveryengine.devToolsConfigs.get. A omissão dediscoveryengine.devToolsConfigs.getcausa um erro403 PERMISSION_DENIEDnos Registros de auditoria do Cloud quando o app da Web verificadevToolsConfig.
Transição do acesso para envolvidos no projeto para o acesso no nível do app
Para restringir os usuários a apps específicos, substitua a função de usuário corporativo do Gemini Enterprise para envolvidos no projeto pela função de usuário restrito do Gemini Enterprise e conceda a função de usuário corporativo do Gemini Enterprise no nível do app individual.
Para fazer a transição de um usuário do acesso para envolvidos no projeto para o acesso no nível do app, siga estas etapas. Você usa o Google Cloud console para as mudanças para envolvidos no projeto, e a API para a concessão no nível do app, que o Google Cloud console não oferece suporte.
- No Google Cloud console, acesse a página IAM.
- Encontre o usuário e remova o papel de usuário corporativo do Gemini Enterprise (
roles/discoveryengine.agentspaceUser) das permissões para envolvidos no projeto. - Se ainda não tiver feito isso, conceda ao usuário o papel de usuário restrito do Gemini Enterprise (
roles/discoveryengine.agentspaceRestrictedUser) no nível do projeto. - Use o método
setIamPolicypara conceder ao usuário o papel de usuário corporativo do Gemini Enterprise (roles/discoveryengine.agentspaceUser) para cada app específico que ele precisar acessar. Para mais informações, consulte Gerenciar políticas do IAM para apps.
Gerenciar políticas do IAM para apps
Para gerenciar o acesso ao app do Gemini Enterprise, você pode usar os métodos de API getIamPolicy e setIamPolicy.
As etapas a seguir mostram como recuperar a política atual e atualizá-la para conceder ou revogar o acesso do usuário.
Receber a política do IAM do app
Receba a política do IAM atual do app usando o
getIamPolicy
método. Recomendamos buscar a política atual primeiro para evitar a substituição de permissões atuais.
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"
Substitua:
PROJECT_ID: ID do projeto.ENDPOINT_LOCATION: a multirregião da sua solicitação de API. Especifique um dos seguintes valores:uspara a multirregião dos EUAeupara a multirregião da UEglobalpara o local global
LOCATION: a multirregião do seu repositório de dados:global,usoueuAPP_ID: o ID do app que você quer configurar.
Atualizar a política do IAM do app
Para conceder ou revogar o acesso do usuário ao app, atualize a política do IAM
do app usando o
setIamPolicy
método.
A política do IAM usa o usuário do Gemini Enterprise
(roles/discoveryengine.agentspaceUser) para conceder aos usuários acesso direto ao
app.
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"
Substitua:
ETAG: o valoretagque você recebeu como resposta ao usar o métodogetIamPolicy.USER_EMAIL,GROUP_EMAIL: um ou mais endereços de e-mail de usuário ou grupo. Além deuseregroup,principaleprincipalSetsão tipos de membros válidos para a federação de identidade da carga de trabalho.Para conceder acesso, adicione principais à matriz
members. Por exemplo,"user:cloudysanfrancisco@gmail.com"ou"group:mcymbalgroup@google.com".Para revogar o acesso, remova os principais da matriz
members.
POOL_ID: o ID do pool de Identidade da carga de trabalho.SUBJECT_ID: o identificador de assunto para uma identidade específica.NAME: o nome de um atributo.VALUE: o valor de um atributo.PROJECT_ID: ID do projeto.ENDPOINT_LOCATION: a multirregião da sua solicitação de API. Especifique um dos seguintes valores:uspara a multirregião dos EUAeupara a multirregião da UEglobalpara o local global
LOCATION: a multirregião do seu repositório de dados:global,usoueu.APP_ID: o ID do app que você quer configurar.
A seguir
Se você quiser excluir um app com uma política do IAM, remova os usuários da política antes de excluir o app. Para mais informações, consulte Práticas recomendadas para excluir um app com uma política do IAM.