Configurar controles de acesso granulares para apps e repositórios de dados

Nesta página, explicamos como um administrador do Gemini Enterprise pode configurar permissões granulares do IAM no nível do recurso para restringir o acesso a apps e repositórios de dados específicos do Gemini Enterprise usando o console doGoogle Cloud , a Google Cloud CLI ou a API REST.

Se você só precisar restringir o acesso do usuário final no nível do app sem configurar permissões de repositório de dados ou papéis personalizados para envolvidos no projeto, consulte Configurar controles de acesso para apps.

Visão geral

Por padrão, as permissões do IAM concedidas no nível do projeto do Google Cloud se aplicam a todos os apps do Gemini Enterprise e repositórios de dados no projeto. Se a organização precisar restringir os usuários a apps ou repositórios de dados específicos em um único projeto, use os controles de acesso no nível do recurso.

Os controles de acesso no nível do recurso permitem que os administradores:

  • Conceda aos usuários acesso a apps específicos e repositórios de dados vinculados sem expor outros apps no mesmo projeto.
  • Delegue a administração de apps ou o monitoramento somente leitura para apps específicos sem conceder direitos administrativos amplos em todo o projeto.
  • Aplicar limites de dados organizacionais e políticas de compliance.

Como funcionam os controles de acesso

Para conceder acesso no nível do recurso, os administradores precisam configurar duas vinculações de papel para cada usuário ou grupo de destino. As permissões são avaliadas de forma independente: para receber respostas de um repositório de dados em um app, o usuário precisa receber permissões no app e no repositório de dados de destino.

Nível de vinculação de papéis Tipo de papel Finalidade, escopo e exemplos de papéis
Nível do projeto Função personalizada

Os papéis personalizados criados neste guia concedem as permissões necessárias para que o usuário autentique ou carregue páginas de listagem do console em todo o projeto sem expor conteúdo específico do app ou do repositório de dados.

Exemplos de funções:

Nível do recurso Papel predefinido

Os papéis predefinidos que você atribui ao recurso do app ou do repositório de dados concedem permissões operacionais, como conversar, definir configurações ou visualizar análises, estritamente nesse recurso.

Exemplos de funções:

Exemplo de cenário

Considere um projeto do Google Cloud na Cymbal chamado cymbal-ai-project com dois apps e vários repositórios de dados:

Exemplo de cenário: restringir o acesso em apps e repositórios de dados
Contexto Um projeto do Google Cloud na Cymbal chamado cymbal-ai-project contém dois apps:
  • App de finanças Cymbal, que está conectado a dois repositórios de dados: o repositório de dados de finanças gerais e o repositório de dados de folha de pagamento confidencial.
  • App Cymbal HR, que está conectado ao repositório de dados Cymbal HR.
Meta Conceda a Alex (alex@cymbal.com) acesso para usar o app de finanças Cymbal e consultar apenas o repositório de dados de finanças gerais, negando acesso ao repositório de dados de folha de pagamento confidencial e ao app Cymbal HR.
Configurações obrigatórias Siga estas etapas para configurar os controles de acesso:
  1. Nível do projeto: ative o controle de acesso a apps e repositório de dados em cymbal-ai-project e conceda a Alex o papel customRestrictedEndUser no projeto para que o navegador dele possa se autenticar com o serviço.
  2. Nível de recurso: conceda a Alex o papel de usuário do Gemini Enterprise (roles/discoveryengine.agentspaceUser) apenas no app Cymbal Finance e no repositório de dados General Finance.
Result Quando Alex faz login, ele pode abrir o app Cymbal Finance e consultar o repositório de dados General Finance. Mesmo que o repositório de dados de folha de pagamento confidencial esteja conectado ao mesmo app, Alex não pode visualizá-lo nem consultá-lo. As tentativas de acessar o app Cymbal HR ou consultar o repositório de dados do Cymbal HR também são negadas.

O diagrama a seguir ilustra como as configurações para envolvidos no projeto e as permissões do IAM independentes no nível do recurso funcionam juntas nesse cenário:

Diagrama da configuração granular da política do IAM em apps e repositórios de dados.

Antes de começar

Ativar o controle de acesso a apps e repositório de dados

Antes de configurar permissões granulares em apps e repositórios de dados ou visualizar a guia Permissões do usuário no console do Google Cloud , ative o controle de acesso a apps e repositório de dados no projeto usando o console do Google Cloud ou a API REST:

Console

Para ativar o controle de acesso a apps e repositório de dados no console do Google Cloud , siga estas etapas:

  1. No console do Google Cloud , acesse a página Gemini Enterprise > Configurações.

    Acesse configurações

  2. Selecione a guia Controle de acesso a recursos.

  3. Ative a opção Controle de acesso a recursos.

  4. Clique em Salvar.

  5. Na caixa de diálogo Ativar o controle de acesso a recursos?, clique em Ativar.

REST

Para ativar o controle de acesso a apps e repositório de dados usando a API REST, chame o método projects.patch:

curl -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "x-goog-user-project: PROJECT_ID" \
  "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID?updateMask=customer_provided_config.resource_access_control_config.data_store_access_control_enabled" \
  -d '{
    "customer_provided_config": {
      "resource_access_control_config": {
        "data_store_access_control_enabled": true
      }
    }
  }'

Substitua:

  • PROJECT_ID: o ID do seu projeto do Google Cloud .
  • ENDPOINT_LOCATION: a multirregião da sua solicitação de API. Especifique um dos seguintes valores:
    • us para a multirregião dos EUA
    • eu para a multirregião da UE
    • global para o local global
    Para mais informações, consulte Especificar uma multirregião para seu repositório de dados.

Criar papéis personalizados para envolvidos no projeto

Os papéis personalizados para envolvidos no projeto concedem permissões sem expor todos os recursos do projeto. Você só precisa criar cada papel personalizado uma vez por projeto doGoogle Cloud .

Criar uma função personalizada de usuário final restrito

O papel customRestrictedEndUser concede permissões no nível do projeto necessárias para que os usuários finais carreguem o endpoint de autorização do Gemini Enterprise e a configuração das ferramentas para desenvolvedores (discoveryengine.locations.buildAuthorizationUrl e discoveryengine.devToolsConfigs.get). Ele não concede acesso para inspecionar ou consultar apps ou repositórios de dados específicos.

Console

Para criar o papel personalizado no console do Google Cloud , siga estas etapas:

  1. No Google Cloud console, acesse a página Papéis.

    Acessar "Papéis"

  2. Selecionar o projeto Google Cloud .

  3. Clique em + Criar função personalizada.

  4. Insira os detalhes do papel:

    • Título: Custom Gemini Enterprise Restricted End User
    • Descrição: Base project-level permissions to access Gemini Enterprise apps.
    • ID do papel: customRestrictedEndUser
    • Etapa da criação do papel: selecione Disponibilidade geral.
  5. Clique em + Adicionar permissões.

  6. Filtre e selecione as seguintes permissões:

    • discoveryengine.devToolsConfigs.get
    • discoveryengine.locations.buildAuthorizationUrl
  7. Clique em Adicionar.

  8. Clique em Criar.

gcloud

Para criar o papel personalizado usando a Google Cloud CLI, siga estas etapas:

  1. Execute gcloud iam roles describe para verificar se o papel existe no projeto:

    gcloud iam roles describe customRestrictedEndUser --project=PROJECT_ID
    

    Substitua PROJECT_ID pelo ID do seu projeto doGoogle Cloud .

  2. Execute gcloud iam roles create para criar o papel:

    gcloud iam roles create customRestrictedEndUser \
      --project=PROJECT_ID \
      --title="Custom Gemini Enterprise Restricted End User" \
      --description="Base project-level permissions to access Gemini Enterprise apps." \
      --stage=GA \
      --permissions=discoveryengine.devToolsConfigs.get,discoveryengine.locations.buildAuthorizationUrl
    

    Substitua PROJECT_ID pelo ID do seu projeto doGoogle Cloud .

REST

Para criar o papel personalizado usando a API REST, chame o método roles.create:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "roleId": "customRestrictedEndUser",
    "role": {
      "title": "Custom Gemini Enterprise Restricted End User",
      "description": "Base project-level permissions to access Gemini Enterprise apps.",
      "stage": "GA",
      "includedPermissions": [
        "discoveryengine.devToolsConfigs.get",
        "discoveryengine.locations.buildAuthorizationUrl"
      ]
    }
  }' \
  "https://iam.googleapis.com/v1/projects/PROJECT_ID/roles"

Substitua PROJECT_ID pelo ID do seu projeto do Google Cloud.

Criar uma função de administrador restrita personalizada

O papel customRestrictedAdmin concede permissões para envolvidos no projeto necessárias para que administradores e leitores delegados visualizem listagens de recursos e barras laterais no console do Google Cloud sem conceder acesso para visualizar ou modificar conteúdos específicos de apps ou repositório de dados. Para delegar o controle administrativo de um app ou repositório de dados específico, atribua esse papel personalizado no nível do projeto e, em seguida, atribua o papel de Administrador do Gemini Enterprise (roles/discoveryengine.agentspaceAdmin) diretamente no recurso de destino.

Console

Para criar o papel personalizado no console do Google Cloud , siga estas etapas:

  1. No Google Cloud console, acesse a página Papéis.

    Acessar "Papéis"

  2. Selecionar o projeto Google Cloud .

  3. Clique em + Criar papel.

  4. Insira os detalhes do papel:

    • Título: Custom Gemini Enterprise Restricted Admin
    • Descrição: Base project-level permissions to list and view Gemini Enterprise configuration pages.
    • ID do papel: customRestrictedAdmin
    • Estágio de lançamento do papel: selecione Disponibilidade geral.
  5. Clique em + Adicionar permissões.

  6. Filtre e selecione as seguintes permissões:

    • discoveryengine.aclConfigs.get
    • discoveryengine.collections.list
    • discoveryengine.dataStores.list
    • discoveryengine.devToolsConfigs.get
    • discoveryengine.engines.list
    • discoveryengine.licenseConfigs.list
    • discoveryengine.locations.buildAuthorizationUrl
    • discoveryengine.locations.getConnectorSource
    • discoveryengine.locations.listConnectorSources
    • discoveryengine.projects.get
    • discoveryengine.userStores.listUserLicenses
    • resourcemanager.projects.get
  7. Clique em Adicionar.

  8. Clique em Criar.

gcloud

Para criar o papel personalizado usando a Google Cloud CLI, siga estas etapas:

  1. Execute gcloud iam roles describe para verificar se o papel existe no projeto:

    gcloud iam roles describe customRestrictedAdmin --project=PROJECT_ID
    

    Substitua PROJECT_ID pelo ID do seu projeto doGoogle Cloud .

  2. Execute gcloud iam roles create para criar o papel:

    gcloud iam roles create customRestrictedAdmin \
      --project=PROJECT_ID \
      --title="Custom Gemini Enterprise Restricted Admin" \
      --description="Base project-level permissions to list and view Gemini Enterprise configuration pages." \
      --stage=GA \
      --permissions=discoveryengine.aclConfigs.get,discoveryengine.collections.list,discoveryengine.dataStores.list,discoveryengine.devToolsConfigs.get,discoveryengine.engines.list,discoveryengine.licenseConfigs.list,discoveryengine.locations.buildAuthorizationUrl,discoveryengine.locations.getConnectorSource,discoveryengine.locations.listConnectorSources,discoveryengine.projects.get,discoveryengine.userStores.listUserLicenses,resourcemanager.projects.get
    

    Substitua PROJECT_ID pelo ID do seu projeto doGoogle Cloud .

REST

Para criar o papel personalizado usando a API REST, chame o método roles.create:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "roleId": "customRestrictedAdmin",
    "role": {
      "title": "Custom Gemini Enterprise Restricted Admin",
      "description": "Base project-level permissions to list and view Gemini Enterprise configuration pages.",
      "stage": "GA",
      "includedPermissions": [
        "discoveryengine.aclConfigs.get",
        "discoveryengine.collections.list",
        "discoveryengine.dataStores.list",
        "discoveryengine.devToolsConfigs.get",
        "discoveryengine.engines.list",
        "discoveryengine.licenseConfigs.list",
        "discoveryengine.locations.buildAuthorizationUrl",
        "discoveryengine.locations.getConnectorSource",
        "discoveryengine.locations.listConnectorSources",
        "discoveryengine.projects.get",
        "discoveryengine.userStores.listUserLicenses",
        "resourcemanager.projects.get"
      ]
    }
  }' \
  "https://iam.googleapis.com/v1/projects/PROJECT_ID/roles"

Substitua PROJECT_ID pelo ID do seu projeto do Google Cloud.

atualizar um papel personalizado

Se já houver um papel personalizado no projeto e você precisar adicionar permissões ausentes, atualize o papel:

Console

Para atualizar um papel personalizado no console do Google Cloud , siga estas etapas:

  1. No Google Cloud console, acesse a página Papéis.

    Acessar "Papéis"

  2. Selecione o projeto do Google Cloud em que você criou o papel personalizado.

  3. Selecione a guia Personalizado ou filtre a lista para localizar seu papel personalizado (customRestrictedEndUser ou customRestrictedAdmin).

  4. Clique no nome do papel personalizado.

  5. Clique em Editar papel.

  6. Clique em + Adicionar permissões.

  7. Pesquise e selecione as permissões que você quer adicionar e clique em Adicionar.

  8. Clique em Salvar.

gcloud

Para atualizar um papel personalizado existente usando a Google Cloud CLI, execute gcloud iam roles update:

  • Para o função do usuário final restrito, execute o seguinte comando:

    gcloud iam roles update customRestrictedEndUser \
      --project=PROJECT_ID \
      --add-permissions=discoveryengine.devToolsConfigs.get,discoveryengine.locations.buildAuthorizationUrl
    

    Substitua PROJECT_ID pelo ID do seu projeto doGoogle Cloud .

  • Para o papel de administrador restrito, execute o seguinte comando:

    gcloud iam roles update customRestrictedAdmin \
      --project=PROJECT_ID \
      --add-permissions=discoveryengine.locations.buildAuthorizationUrl,discoveryengine.locations.listConnectorSources
    

    Substitua PROJECT_ID pelo ID do seu projeto doGoogle Cloud .

REST

Para atualizar um papel personalizado usando a API REST, chame o método roles.patch. Observe que roles.patch substitui a lista includedPermissions. Especifique todas as permissões que você quer que o papel inclua:

  • Para o função do usuário final restrito, execute o seguinte comando:

    curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "includedPermissions": [
          "discoveryengine.devToolsConfigs.get",
          "discoveryengine.locations.buildAuthorizationUrl"
        ]
      }' \
      "https://iam.googleapis.com/v1/projects/PROJECT_ID/roles/customRestrictedEndUser?updateMask=includedPermissions"
    

    Substitua PROJECT_ID pelo ID do seu projeto doGoogle Cloud .

  • Para o papel de administrador restrito, execute o seguinte comando:

    curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "includedPermissions": [
          "discoveryengine.aclConfigs.get",
          "discoveryengine.collections.list",
          "discoveryengine.dataStores.list",
          "discoveryengine.devToolsConfigs.get",
          "discoveryengine.engines.list",
          "discoveryengine.licenseConfigs.list",
          "discoveryengine.locations.buildAuthorizationUrl",
          "discoveryengine.locations.getConnectorSource",
          "discoveryengine.locations.listConnectorSources",
          "discoveryengine.projects.get",
          "discoveryengine.userStores.listUserLicenses",
          "resourcemanager.projects.get"
        ]
      }' \
      "https://iam.googleapis.com/v1/projects/PROJECT_ID/roles/customRestrictedAdmin?updateMask=includedPermissions"
    

    Substitua PROJECT_ID pelo ID do seu projeto doGoogle Cloud .

Atribuir um papel personalizado no nível do projeto

Atribua os papéis personalizados do projeto a um usuário ou grupo de destino.

Console

Para atribuir o papel personalizado usando o console do Google Cloud , siga estas etapas:

  1. No console do Google Cloud , acesse a página IAM.

    Acessar IAM

  2. Selecione o projeto do Google Cloud em que você criou o papel personalizado.

  3. Clique em Conceder acesso para adicionar um novo principal ou editar um atual.

  4. Em Novos principais, insira o endereço de e-mail do usuário ou grupo.

  5. Selecione o papel personalizado criado para sua persona, como um dos seguintes:

    • Usuário final restrito personalizado do Gemini Enterprise
    • Administrador restrito personalizado do Gemini Enterprise
  6. Clique em Salvar.

gcloud

Para atribuir o papel personalizado usando a Google Cloud CLI, execute o seguinte comando:

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:USER_EMAIL" \
  --role="projects/PROJECT_ID/roles/CUSTOM_ROLE_ID"

Substitua:

  • PROJECT_ID: o ID do seu projeto do Google Cloud .
  • CUSTOM_ROLE_ID: o ID do papel personalizado que você quer atribuir: customRestrictedEndUser ou customRestrictedAdmin.
  • USER_EMAIL: o endereço de e-mail do usuário ou grupo.

REST

Para atribuir o papel personalizado usando a API Cloud Resource Manager, conclua as seguintes etapas usando um padrão de leitura-modificação-gravação:

  1. Use o método getIamPolicy para recuperar a política atual do IAM e o etag dela:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{}' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy"
    

    Substitua PROJECT_ID pelo ID do seu projeto doGoogle Cloud .

  2. Defina a política do IAM atualizada usando o método setIamPolicy com o payload da política atualizada:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "policy": {
          "etag": "ETAG",
          "bindings": [
            {
              "role": "EXISTING_ROLE",
              "members": [
                "user:EXISTING_USER_EMAIL"
              ]
            },
            {
              "role": "projects/PROJECT_ID/roles/CUSTOM_ROLE_ID",
              "members": [
                "user:USER_EMAIL"
              ]
            }
          ]
        }
      }' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy"
    

    Substitua:

    • ETAG: o valor de etag que você recebeu como resposta ao usar o método getIamPolicy.
    • EXISTING_ROLE e EXISTING_USER_EMAIL: o papel atual e as vinculações de principal retornadas pelo método getIamPolicy que você quer manter.
    • PROJECT_ID: ID do seu projeto do Google Cloud.
    • CUSTOM_ROLE_ID: o ID do papel personalizado para envolvidos no projeto que você quer atribuir. Especifique uma destas opções:
      • customRestrictedEndUser: concede as permissões do projeto para que os usuários finais autentiquem e acessem apps.
      • customRestrictedAdmin: concede as permissões do projeto para que os administradores visualizem as listagens de recursos no console do Google Cloud .
    • USER_EMAIL: o endereço de e-mail do usuário ou grupo.

Configurar permissões do app

Conceda permissões no nível do recurso no recurso do app de destino usando o console doGoogle Cloud ou a API REST.

Se você quiser atribuir um papel personalizado em vez de um predefinido na política do IAM no nível do app, verifique se o papel personalizado inclui todas as permissões do papel predefinido correspondente, como Usuário do Gemini Enterprise (roles/discoveryengine.agentspaceUser) ou Administrador do Gemini Enterprise (roles/discoveryengine.agentspaceAdmin).

Console

Para configurar as permissões do app no console do Google Cloud , siga estas etapas:

  1. No console do Google Cloud , acesse a página Gemini Enterprise > Apps.

    Acessar "Apps".

  2. Selecione o app de destino.

  3. Clique em Permissões do usuário e em Adicionar usuário.

  4. Selecione o papel do usuário ou grupo:

  5. Clique em Salvar.

REST

Para configurar as permissões do app usando a API REST, siga as etapas abaixo com um padrão de leitura-modificação-gravação:

  1. Use o método getIamPolicy para recuperar a política atual do IAM e o etag dela:

    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:
      • us para a multirregião dos EUA
      • eu para a multirregião da UE
      • global para o local global
      Para mais informações, consulte Especificar uma multirregião para seu repositório de dados.
    • LOCATION: a multirregião do seu repositório de dados: global, us ou eu.
    • APP_ID: o ID do app que você quer configurar.
  2. Defina a política do IAM atualizada usando o método setIamPolicy com o payload da política atualizada:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "policy": {
          "etag": "ETAG",
          "bindings": [
            {
              "role": "EXISTING_ROLE",
              "members": [
                "user:EXISTING_USER_EMAIL"
              ]
            },
            {
              "role": "PREDEFINED_ROLE",
              "members": [
                "user:USER_EMAIL"
              ]
            }
          ]
        }
      }' \
      "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID:setIamPolicy"
    

    Substitua:

    • ETAG: o valor de etag que você recebeu como resposta ao usar o método getIamPolicy.
    • EXISTING_ROLE e EXISTING_USER_EMAIL: o papel atual e as vinculações de principal retornadas pelo método getIamPolicy que você quer manter.
    • USER_EMAIL: o endereço de e-mail do usuário ou grupo (por exemplo, alex@example.com).
      • Para conceder acesso, adicione os e-mails dos usuários à matriz members, cada um com o prefixo user:. Evite espaços extras antes ou depois do endereço de e-mail.
      • Para revogar o acesso, remova o endereço de e-mail do usuário da matriz members.
    • PREDEFINED_ROLE: o papel predefinido que você quer atribuir ao app. Por exemplo, Usuário corporativo do Gemini Enterprise (roles/discoveryengine.agentspaceUser) para usuários finais, Administrador do Gemini Enterprise (roles/discoveryengine.agentspaceAdmin) para administradores ou Leitor do Gemini Enterprise (roles/discoveryengine.agentspaceViewer) para leitores. Para mais informações, consulte Papéis predefinidos.
    • PROJECT_ID: o ID do seu projeto do Google Cloud .
    • ENDPOINT_LOCATION: a multirregião da sua solicitação de API. Especifique um dos seguintes valores:
      • us para a multirregião dos EUA
      • eu para a multirregião da UE
      • global para o local global
      Para mais informações, consulte Especificar uma multirregião para seu repositório de dados.
    • LOCATION: a multirregião do seu repositório de dados: global, us ou eu.
    • APP_ID: o ID do app que você quer configurar.

Configurar permissões do repositório de dados

Para configurar as permissões de dados, conceda permissões no nível do recurso no repositório de dados de destino usando o console do Google Cloud ou a API REST. Os usuários finais só podem se conectar e consultar repositórios de dados para os quais receberam permissões explícitas.

Se você quiser atribuir um papel personalizado em vez de um predefinido na política de IAM do repositório de dados, verifique se o papel personalizado inclui todas as permissões do papel predefinido correspondente, como Usuário do Gemini Enterprise (roles/discoveryengine.agentspaceUser) ou Administrador do Gemini Enterprise (roles/discoveryengine.agentspaceAdmin).

Para conectores de terceiros que aplicam permissões de documentos do usuário final, o acesso do usuário final a documentos individuais continua sendo regido pelas listas de controle de acesso (ACLs) sincronizadas do sistema de origem. Conceder acesso ao IAM não ignora as ACLs de origem.

Para encontrar repositórios de dados, coleções e IDs de entidade, consulte Receber detalhes do repositório de dados e da entidade.

Console

Para configurar as permissões do repositório de dados no console do Google Cloud , siga estas etapas. As permissões atribuídas a um repositório de dados no console do Google Cloud são propagadas automaticamente para todas as entidades filhas:

  1. No console do Google Cloud , acesse a página Gemini Enterprise > Repositórios de dados.

    Acesse a página Repositório de dados

  2. Clique no nome do seu repositório de dados.

  3. Clique em Permissões do usuário > Adicionar usuário.

  4. Selecione o papel do usuário ou grupo:

  5. Clique em Salvar.

REST

Para configurar as permissões do repositório de dados usando a API REST, expanda a seção que corresponde à configuração do repositório de dados:

Repositórios de dados com entidades

Use essa opção para conectores de terceiros que contêm vários tipos de entidade, como Jira, Salesforce, Confluence ou SharePoint Online. Ao usar a API REST, as permissões não são transmitidas automaticamente da coleção de conectores pai para as entidades filhas. É necessário conceder as mesmas permissões no recurso de coleção pai e em todos os repositórios de dados de entidade subjacentes. Não configure permissões apenas para um subconjunto de entidades.

Siga estas etapas para configurar permissões para repositórios de dados com entidades:

  1. Acesse a política do IAM atual para a coleção de conectores de dados:

    Chame getIamPolicy para recuperar a política atual e o etag dela:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID:getIamPolicy"

    Substitua:

  2. Defina a política do IAM atualizada na coleção do conector de dados:

    Chame setIamPolicy, incluindo o etag e a vinculação de papel:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{
      "policy": {
        "etag": "ETAG",
        "bindings": [
          {
            "role": "EXISTING_ROLE",
            "members": [
              "user:EXISTING_USER_EMAIL"
            ]
          },
          {
            "role": "PREDEFINED_ROLE",
            "members": [
              "user:USER_EMAIL"
            ]
          }
        ]
      }
    }' \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID:setIamPolicy"

    Substitua:

    • ETAG: o valor de etag que você recebeu como resposta ao usar o método getIamPolicy na etapa 1.
    • EXISTING_ROLE e EXISTING_USER_EMAIL: as vinculações de papel e principal atuais retornadas pelo método getIamPolicy que você quer manter.
    • USER_EMAIL: o endereço de e-mail do usuário ou grupo.
    • PREDEFINED_ROLE: o papel predefinido que você quer atribuir à coleção. Por exemplo, Usuário corporativo do Gemini Enterprise (roles/discoveryengine.agentspaceUser) para usuários finais, Administrador do Gemini Enterprise (roles/discoveryengine.agentspaceAdmin) para administradores ou Leitor do Gemini Enterprise (roles/discoveryengine.agentspaceViewer) para leitores. Para mais informações, consulte Papéis predefinidos.
    • PROJECT_ID: ID do seu projeto do Google Cloud .
    • ENDPOINT_LOCATION: a multirregião da sua solicitação de API. Especifique um dos seguintes valores:
      • us para a multirregião dos EUA
      • eu para a multirregião da UE
      • global para o local global
      Para mais informações, consulte Especificar uma multirregião para seu repositório de dados.
    • LOCATION: a multirregião do seu repositório de dados: global, us ou eu.
    • COLLECTION_ID: o ID da coleção do conector de dados.
  3. Acesse a política atual do IAM para um repositório de dados de entidade:

    No Gemini Enterprise, os repositórios de dados de entidades filhas residem em default_collection e têm o prefixo do ID da coleção do conector. Chame getIamPolicy no repositório de dados da entidade em default_collection:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ENTITY_ID:getIamPolicy"

    Substitua:

    • PROJECT_ID: ID do seu projeto do Google Cloud .
    • ENDPOINT_LOCATION: a multirregião da sua solicitação de API. Especifique um dos seguintes valores:
      • us para a multirregião dos EUA
      • eu para a multirregião da UE
      • global para o local global
      Para mais informações, consulte Especificar uma multirregião para seu repositório de dados.
    • LOCATION: a multirregião do seu repositório de dados: global, us ou eu.
    • DATA_STORE_ENTITY_ID: o ID do repositório de dados da entidade (por exemplo, DataConnector3_entityA). Para mais informações, consulte Receber detalhes do repositório de dados e da entidade.
  4. Defina a política do IAM atualizada no repositório de dados da entidade:

    Chame setIamPolicy no repositório de dados da entidade, incluindo o etag:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{
      "policy": {
        "etag": "ETAG",
        "bindings": [
          {
            "role": "EXISTING_ROLE",
            "members": [
              "user:EXISTING_USER_EMAIL"
            ]
          },
          {
            "role": "PREDEFINED_ROLE",
            "members": [
              "user:USER_EMAIL"
            ]
          }
        ]
      }
    }' \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ENTITY_ID:setIamPolicy"

    Substitua:

    • ETAG: o valor de etag que você recebeu como resposta ao usar o método getIamPolicy na etapa 3.
    • EXISTING_ROLE e EXISTING_USER_EMAIL: as vinculações de papel e principal atuais retornadas pelo método getIamPolicy que você quer manter.
    • USER_EMAIL: o endereço de e-mail do usuário ou grupo.
    • PREDEFINED_ROLE: o papel predefinido que você quer atribuir ao repositório de dados da entidade. Por exemplo, Usuário corporativo do Gemini Enterprise (roles/discoveryengine.agentspaceUser) para usuários finais, Administrador do Gemini Enterprise (roles/discoveryengine.agentspaceAdmin) para administradores ou Leitor do Gemini Enterprise (roles/discoveryengine.agentspaceViewer) para leitores. Para mais informações, consulte Papéis predefinidos.
    • PROJECT_ID: ID do seu projeto do Google Cloud .
    • ENDPOINT_LOCATION: a multirregião da sua solicitação de API. Especifique um dos seguintes valores:
      • us para a multirregião dos EUA
      • eu para a multirregião da UE
      • global para o local global
      Para mais informações, consulte Especificar uma multirregião para seu repositório de dados.
    • LOCATION: a multirregião do seu repositório de dados: global, us ou eu.
    • DATA_STORE_ENTITY_ID: o ID do repositório de dados de entidade.

Repita as etapas 3 e 4 para cada repositório de dados de entidade no conector de dados. Se você configurar o conector para sincronizar outros tipos de entidade, configure as políticas do IAM em cada repositório de dados de entidade recém-criado.

Repositórios de dados sem entidades

Use essa opção para repositórios de dados independentes, como o Cloud Storage, o BigQuery ou fontes de dados que não contêm entidades. Defina permissões diretamente no recurso de repositório de dados único em default_collection.

Siga estas etapas para configurar permissões para repositórios de dados sem entidades:

  1. Acesse a política atual do IAM para o repositório de dados:

    Chame getIamPolicy para recuperar a política atual e o etag dela:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ID:getIamPolicy"

    Substitua:

  2. Defina a política do IAM atualizada no repositório de dados:

    Chame setIamPolicy, incluindo o etag e a vinculação de papel:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{
      "policy": {
        "etag": "ETAG",
        "bindings": [
          {
            "role": "EXISTING_ROLE",
            "members": [
              "user:EXISTING_USER_EMAIL"
            ]
          },
          {
            "role": "PREDEFINED_ROLE",
            "members": [
              "user:USER_EMAIL"
            ]
          }
        ]
      }
    }' \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ID:setIamPolicy"

    Substitua:

    • ETAG: o valor de etag que você recebeu como resposta ao usar o método getIamPolicy na etapa 1.
    • EXISTING_ROLE e EXISTING_USER_EMAIL: as vinculações de papel e principal atuais retornadas pelo método getIamPolicy que você quer manter.
    • USER_EMAIL: o endereço de e-mail do usuário ou grupo.
    • PREDEFINED_ROLE: o papel predefinido que você quer atribuir ao repositório de dados. Por exemplo, Usuário corporativo do Gemini Enterprise (roles/discoveryengine.agentspaceUser) para usuários finais, Administrador do Gemini Enterprise (roles/discoveryengine.agentspaceAdmin) para administradores ou Leitor do Gemini Enterprise (roles/discoveryengine.agentspaceViewer) para leitores. Para mais informações, consulte Papéis predefinidos.
    • PROJECT_ID: ID do seu projeto do Google Cloud .
    • ENDPOINT_LOCATION: a multirregião da sua solicitação de API. Especifique um dos seguintes valores:
      • us para a multirregião dos EUA
      • eu para a multirregião da UE
      • global para o local global
      Para mais informações, consulte Especificar uma multirregião para seu repositório de dados.
    • LOCATION: a multirregião do seu repositório de dados: global, us ou eu.
    • DATA_STORE_ID: o ID do repositório de dados.

Conceder acesso aos recursos do Gemini Notebook Enterprise e das ferramentas de IA para desenvolvedores

Os usuários restritos que recebem customRestrictedEndUser no nível do projeto perdem o acesso a recursos como ferramentas para desenvolvedores de IA e Gemini Notebook Enterprise porque o papel do projeto contém apenas permissões de autorização básicas.

Conceder a função completa de Usuário corporativo do Gemini Enterprise (roles/discoveryengine.agentspaceUser) no nível do projeto substitui o isolamento e expõe todos os apps e repositórios de dados no projeto. Em vez disso, os administradores podem conceder papéis específicos de recursos no nível do projeto.

Conceder acesso ao Gemini Notebook Enterprise

Conceda o papel de Usuário do Cloud NotebookLM (roles/discoveryengine.notebookLmUser) para permitir que usuários restritos criem e usem notebooks sem expor apps ou repositórios de dados:

Console

Para conceder acesso usando o console do Google Cloud , siga estas etapas:

  1. No console do Google Cloud , acesse a página IAM.

    Acessar IAM

  2. Selecionar o projeto Google Cloud .

  3. Localize o usuário ou grupo na lista de permissões e clique em Editar principal. Como alternativa, clique em Conceder acesso para adicionar um novo usuário.

  4. Na seção Atribuir papéis, clique em Adicionar outro papel.

  5. No campo Selecionar um papel, pesquise e selecione Usuário do Cloud NotebookLM (roles/discoveryengine.notebookLmUser).

  6. Clique em Salvar.

gcloud

Para conceder acesso usando a Google Cloud CLI, execute o seguinte comando:

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:USER_EMAIL" \
  --role="roles/discoveryengine.notebookLmUser"

Substitua:

  • PROJECT_ID: o ID do seu projeto do Google Cloud .
  • USER_EMAIL: o endereço de e-mail do usuário ou grupo.

REST

Para conceder acesso usando a API REST, atualize a política do IAM do projeto usando o método setIamPolicy:

  1. Use o método getIamPolicy para recuperar a política atual do IAM e o etag dela:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{}' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy"
    

    Substitua PROJECT_ID pelo ID do seu projeto doGoogle Cloud .

  2. Defina a política do IAM atualizada usando o método setIamPolicy com o papel roles/discoveryengine.notebookLmUser:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "policy": {
          "etag": "ETAG",
          "bindings": [
            {
              "role": "EXISTING_ROLE",
              "members": [
                "user:EXISTING_USER_EMAIL"
              ]
            },
            {
              "role": "roles/discoveryengine.notebookLmUser",
              "members": [
                "user:USER_EMAIL"
              ]
            }
          ]
        }
      }' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy"
    

    Substitua:

    • ETAG: o valor de etag da resposta getIamPolicy.
    • EXISTING_ROLE e EXISTING_USER_EMAIL: o papel atual e as vinculações de principal retornadas pelo método getIamPolicy que você quer manter.
    • PROJECT_ID: ID do seu projeto do Google Cloud.
    • USER_EMAIL: o endereço de e-mail do usuário ou grupo.

Conceder acesso às ferramentas de IA para desenvolvedores

Conceda os papéis Usuário do Gemini para Google Cloud (roles/cloudaicompanion.user) e Papel de usuário da API Business AI Code (roles/businessaicode.user) para ativar as ferramentas para desenvolvedores de IA sem expor os apps do Gemini Enterprise ou repositórios de dados:

Console

Para conceder acesso usando o console do Google Cloud , siga estas etapas:

  1. No console do Google Cloud , acesse a página IAM.

    Acessar IAM

  2. Selecionar o projeto Google Cloud .

  3. Localize o usuário ou grupo na lista de permissões e clique em Editar principal. Como alternativa, clique em Conceder acesso para adicionar um novo usuário.

  4. Na seção Atribuir papéis, atribua cada um dos seguintes papéis:

    • Usuário do Gemini para Google Cloud (roles/cloudaicompanion.user)
    • Função de usuário da API Business AI Code (roles/businessaicode.user)
  5. Clique em Salvar.

gcloud

Para conceder acesso usando a Google Cloud CLI, execute os seguintes comandos:

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:USER_EMAIL" \
  --role="roles/cloudaicompanion.user"

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:USER_EMAIL" \
  --role="roles/businessaicode.user"

Substitua:

  • PROJECT_ID: o ID do seu projeto do Google Cloud .
  • USER_EMAIL: o endereço de e-mail do usuário ou grupo.

REST

Para conceder acesso usando a API REST, atualize a política do IAM do projeto usando o método setIamPolicy:

  1. Use o método getIamPolicy para recuperar a política atual do IAM e o etag dela:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{}' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy"
    

    Substitua PROJECT_ID pelo ID do seu projeto doGoogle Cloud .

  2. Defina a política do IAM atualizada usando o método setIamPolicy com os papéis roles/cloudaicompanion.user e roles/businessaicode.user:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "policy": {
          "etag": "ETAG",
          "bindings": [
            {
              "role": "EXISTING_ROLE",
              "members": [
                "user:EXISTING_USER_EMAIL"
              ]
            },
            {
              "role": "roles/cloudaicompanion.user",
              "members": [
                "user:USER_EMAIL"
              ]
            },
            {
              "role": "roles/businessaicode.user",
              "members": [
                "user:USER_EMAIL"
              ]
            }
          ]
        }
      }' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy"
    

    Substitua:

    • ETAG: o valor de etag da resposta getIamPolicy.
    • EXISTING_ROLE e EXISTING_USER_EMAIL: o papel atual e as vinculações de principal retornadas pelo método getIamPolicy que você quer manter.
    • PROJECT_ID: ID do seu projeto do Google Cloud.
    • USER_EMAIL: o endereço de e-mail do usuário ou grupo.

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.