Configurer des contrôles d'accès précis pour les applications et les datastores

Cette page explique comment un administrateur Gemini Enterprise peut configurer des autorisations IAM précises au niveau des ressources pour limiter l'accès à des applications et des dépôts de données Gemini Enterprise spécifiques à l'aide de la consoleGoogle Cloud , de la Google Cloud CLI ou de l'API REST.

Si vous n'avez besoin de restreindre l'accès des utilisateurs finaux qu'au niveau de l'application, sans configurer d'autorisations pour le data store ni de rôles personnalisés au niveau du projet, consultez Configurer des contrôles des accès pour les applications.

Présentation

Par défaut, les autorisations IAM accordées au niveau du projet Google Clouds'appliquent à toutes les applications et à tous les dépôts de données Gemini Enterprise du projet. Si votre organisation doit limiter l'accès des utilisateurs à des applications ou des magasins de données spécifiques au sein d'un même projet, vous pouvez utiliser des contrôles d'accès au niveau des ressources.

Les contrôles d'accès au niveau des ressources permettent aux administrateurs :

  • Accorder aux utilisateurs l'accès à des applications et des data stores associés spécifiques sans exposer d'autres applications du même projet.
  • Déléguez l'administration ou la surveillance en lecture seule d'applications spécifiques sans accorder de droits d'administration généraux à l'échelle du projet.
  • Appliquez les limites de données et les règles de conformité de l'organisation.

Fonctionnement des contrôles d'accès

Pour accorder un accès au niveau des ressources, les administrateurs doivent configurer deux liaisons de rôle pour chaque utilisateur ou groupe cible. Les autorisations sont évaluées indépendamment : pour recevoir des réponses d'un data store dans une application, un utilisateur doit disposer d'autorisations à la fois sur l'application cible et sur le data store cible.

Niveau de liaison de rôle Type de rôle Objectif, portée et exemples de rôles
Au niveau du projet Rôle personnalisé

Les rôles personnalisés que vous créez dans ce guide accordent les autorisations requises pour que l'utilisateur puisse s'authentifier ou charger les pages de la fiche de la console dans le projet sans exposer de contenu d'application ou de data store spécifique.

Exemples de rôles :

Niveau de la ressource Rôle prédéfini

Les rôles prédéfinis que vous attribuez à la ressource d'application ou de data store accordent des autorisations opérationnelles, telles que discuter, configurer des paramètres ou afficher des données analytiques, strictement sur cette ressource.

Exemples de rôles :

Exemple de scénario

Prenons l'exemple d'un projet Google Cloud chez Cymbal nommé cymbal-ai-projectcontenant deux applications et plusieurs data stores :

Exemple de scénario : restreindre l'accès aux applications et aux datastores
Contexte Un projet A Google Cloud chez Cymbal nommé cymbal-ai-project contient deux applications :
  • L'application financière Cymbal, qui est connectée à deux datastores : le datastore General Finance et le datastore Confidential Payroll.
  • L'application Cymbal HR, qui est connectée au datastore Cymbal HR.
Objectif Accorde à Alex (alex@cymbal.com) l'accès à l'application Cymbal Finance et autorise-le à interroger uniquement le data store General Finance, tout en lui refusant l'accès au data store Confidential Payroll et à l'application Cymbal HR.
Configurations requises Pour configurer les contrôles d'accès, procédez comme suit :
  1. Au niveau du projet : activez le contrôle des accès aux applications et data store sur cymbal-ai-project, puis accordez à Alex le rôle customRestrictedEndUser sur le projet afin que son navigateur puisse s'authentifier auprès du service.
  2. Niveau de ressource : accordez à Alex le rôle Utilisateur Gemini Enterprise (roles/discoveryengine.agentspaceUser) uniquement pour l'application Cymbal Finance et le data store General Finance.
Résultat Lorsqu'Alex se connecte, il peut ouvrir l'application Cymbal Finance et interroger le datastore General Finance. Même si le datastore de données de paie confidentielles est associé à la même application, Alex ne peut pas le consulter ni l'interroger. Les tentatives d'accès à l'application Cymbal HR ou d'interrogation du datastore Cymbal HR sont également refusées.

Le schéma suivant illustre la façon dont les paramètres au niveau du projet et les autorisations IAM indépendantes au niveau des ressources fonctionnent ensemble dans ce scénario :

Diagramme de la configuration précise des stratégies IAM dans les applications et les datastores.

Avant de commencer

Activer le contrôle des accès aux applications et data store

Avant de pouvoir configurer des autorisations précises sur les applications et les datastores, ou afficher l'onglet Autorisations utilisateur dans la console Google Cloud , activez le contrôle des accès aux applications et data store dans votre projet à l'aide de la console Google Cloud ou de l'API REST :

Console

Pour activer le contrôle des accès aux applications et data store dans la console Google Cloud , procédez comme suit :

  1. Dans la console Google Cloud , accédez à Gemini Enterprise > Paramètres.

    Accéder aux paramètres

  2. Sélectionnez l'onglet Contrôle des accès aux ressources.

  3. Activez l'option Contrôle des accès aux ressources.

  4. Cliquez sur Enregistrer.

  5. Dans la boîte de dialogue Activer le contrôle des accès aux ressources ?, cliquez sur Activer.

REST

Pour activer le contrôle des accès aux applications et data store à l'aide de l'API REST, appelez la méthode 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
      }
    }
  }'

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet Google Cloud .
  • ENDPOINT_LOCATION : région multiple pour votre requête API. Spécifiez l'une des valeurs suivantes :
    • us pour l'emplacement multirégional US
    • eu pour l'emplacement multirégional EU
    • global pour l'emplacement mondial
    Pour en savoir plus, consultez Spécifier un emplacement multirégional pour votre datastore.

Créer des rôles personnalisés au niveau du projet

Les rôles personnalisés au niveau du projet accordent des autorisations sans exposer toutes les ressources du projet. Vous ne devez créer chaque rôle personnalisé qu'une seule fois par projetGoogle Cloud .

Créer un rôle utilisateur final restreint personnalisé

Le rôle customRestrictedEndUser accorde les autorisations au niveau du projet requises pour que les utilisateurs finaux chargent le point de terminaison d'autorisation Gemini Enterprise et la configuration des outils pour les développeurs (discoveryengine.locations.buildAuthorizationUrl et discoveryengine.devToolsConfigs.get). Il n'accorde pas l'accès pour inspecter ou interroger des applications ou des datastores spécifiques.

Console

Pour créer le rôle personnalisé dans la console Google Cloud  :

  1. Dans la console Google Cloud , accédez à la page Rôles.

    Accéder à la page "Rôles"

  2. Sélectionnez votre projet Google Cloud .

  3. Cliquez sur + Créer un rôle personnalisé.

  4. Saisissez les détails du rôle :

    • Titre : Custom Gemini Enterprise Restricted End User
    • Description : Base project-level permissions to access Gemini Enterprise apps.
    • ID du rôle : customRestrictedEndUser
    • Étape de lancement du rôle : sélectionnez Disponibilité générale.
  5. Cliquez sur + Ajouter des autorisations.

  6. Filtrez et sélectionnez les autorisations suivantes :

    • discoveryengine.devToolsConfigs.get
    • discoveryengine.locations.buildAuthorizationUrl
  7. Cliquez sur Ajouter.

  8. Cliquez sur Créer.

gcloud

Pour créer le rôle personnalisé à l'aide de la Google Cloud CLI, procédez comme suit :

  1. Exécutez gcloud iam roles describe pour vérifier si le rôle existe dans votre projet :

    gcloud iam roles describe customRestrictedEndUser --project=PROJECT_ID
    

    Remplacez PROJECT_ID par l'ID de votre projetGoogle Cloud .

  2. Exécutez gcloud iam roles create pour créer le rôle :

    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
    

    Remplacez PROJECT_ID par l'ID de votre projetGoogle Cloud .

REST

Pour créer le rôle personnalisé à l'aide de l'API REST, appelez la méthode 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"

Remplacez PROJECT_ID par l'ID de votre projet Google Cloud.

Créer un rôle d'administrateur restreint personnalisé

Le rôle customRestrictedAdmin accorde les autorisations au niveau du projet requises pour que les administrateurs et les lecteurs délégués puissent afficher les listes de ressources et les barres latérales dans la console Google Cloud sans leur accorder l'accès pour afficher ou modifier le contenu d'applications ou de data store spécifiques. Pour déléguer le contrôle administratif d'une application ou d'un data store spécifiques, attribuez ce rôle personnalisé au niveau du projet, puis attribuez le rôle Administrateur Gemini Enterprise (roles/discoveryengine.agentspaceAdmin) directement à la ressource cible.

Console

Pour créer le rôle personnalisé dans la console Google Cloud  :

  1. Dans la console Google Cloud , accédez à la page Rôles.

    Accéder à la page "Rôles"

  2. Sélectionnez votre projet Google Cloud .

  3. Cliquez sur + Créer un rôle.

  4. Saisissez les détails du rôle :

    • Titre : Custom Gemini Enterprise Restricted Admin
    • Description : Base project-level permissions to list and view Gemini Enterprise configuration pages.
    • ID du rôle : customRestrictedAdmin
    • Étape de lancement du rôle : sélectionnez Disponibilité générale.
  5. Cliquez sur + Ajouter des autorisations.

  6. Filtrez et sélectionnez les autorisations suivantes :

    • 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. Cliquez sur Ajouter.

  8. Cliquez sur Créer.

gcloud

Pour créer le rôle personnalisé à l'aide de la Google Cloud CLI, procédez comme suit :

  1. Exécutez gcloud iam roles describe pour vérifier si le rôle existe dans votre projet :

    gcloud iam roles describe customRestrictedAdmin --project=PROJECT_ID
    

    Remplacez PROJECT_ID par l'ID de votre projetGoogle Cloud .

  2. Exécutez gcloud iam roles create pour créer le rôle :

    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
    

    Remplacez PROJECT_ID par l'ID de votre projetGoogle Cloud .

REST

Pour créer le rôle personnalisé à l'aide de l'API REST, appelez la méthode 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"

Remplacez PROJECT_ID par l'ID de votre projet Google Cloud.

Mettre à jour un rôle personnalisé existant

Si un rôle personnalisé existe déjà dans votre projet et que vous devez ajouter des autorisations manquantes, mettez à jour le rôle :

Console

Pour modifier un rôle personnalisé dans la console Google Cloud , procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Rôles.

    Accéder à la page "Rôles"

  2. Sélectionnez le projet Google Cloud dans lequel vous avez créé le rôle personnalisé.

  3. Sélectionnez l'onglet Personnalisé ou filtrez la liste pour trouver votre rôle personnalisé (customRestrictedEndUser ou customRestrictedAdmin).

  4. Cliquez sur le nom du rôle personnalisé.

  5. Cliquez sur Modifier le rôle.

  6. Cliquez sur + Ajouter des autorisations.

  7. Recherchez et sélectionnez les autorisations que vous souhaitez ajouter, puis cliquez sur Ajouter.

  8. Cliquez sur Enregistrer.

gcloud

Pour mettre à jour un rôle personnalisé existant à l'aide de Google Cloud CLI, exécutez gcloud iam roles update :

  • Pour le rôle d'utilisateur final restreint, exécutez la commande suivante :

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

    Remplacez PROJECT_ID par l'ID de votre projetGoogle Cloud .

  • Pour le rôle d'administrateur limité, exécutez la commande suivante :

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

    Remplacez PROJECT_ID par l'ID de votre projetGoogle Cloud .

REST

Pour mettre à jour un rôle personnalisé à l'aide de l'API REST, appelez la méthode roles.patch. Notez que roles.patch remplace la liste includedPermissions. Spécifiez toutes les autorisations que vous souhaitez inclure dans le rôle :

  • Pour le rôle d'utilisateur final restreint, exécutez la commande suivante :

    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"
    

    Remplacez PROJECT_ID par l'ID de votre projetGoogle Cloud .

  • Pour le rôle d'administrateur limité, exécutez la commande suivante :

    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"
    

    Remplacez PROJECT_ID par l'ID de votre projetGoogle Cloud .

Attribuer un rôle personnalisé au niveau du projet

Attribuez les rôles de projet personnalisés à un utilisateur ou un groupe cible.

Console

Pour attribuer le rôle personnalisé à l'aide de la console Google Cloud , procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page IAM.

    Accéder à IAM

  2. Sélectionnez le projet Google Cloud dans lequel vous avez créé le rôle personnalisé.

  3. Cliquez sur Accorder l'accès pour ajouter un compte principal ou en modifier un.

  4. Dans Nouveaux comptes principaux, saisissez l'adresse e-mail de l'utilisateur ou du groupe.

  5. Sélectionnez le rôle personnalisé créé pour votre persona, par exemple l'un des suivants :

    • Utilisateur final Gemini Enterprise restreint personnalisé
    • Administrateur Gemini Enterprise restreint personnalisé
  6. Cliquez sur Enregistrer.

gcloud

Pour attribuer le rôle personnalisé à l'aide de Google Cloud CLI, exécutez la commande suivante :

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet Google Cloud .
  • CUSTOM_ROLE_ID : ID du rôle personnalisé que vous souhaitez attribuer : customRestrictedEndUser ou customRestrictedAdmin.
  • USER_EMAIL : adresse e-mail de l'utilisateur ou du groupe.

REST

Pour attribuer le rôle personnalisé à l'aide de l'API Cloud Resource Manager, procédez comme suit à l'aide d'un schéma lire-modifier-écrire :

  1. Obtenez la stratégie IAM actuelle à l'aide de la méthode getIamPolicy pour récupérer la stratégie actuelle et son etag :

    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"
    

    Remplacez PROJECT_ID par l'ID de votre projetGoogle Cloud .

  2. Définissez la stratégie IAM mise à jour à l'aide de la méthode setIamPolicy avec la charge utile de votre stratégie mise à jour :

    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"
    

    Remplacez les éléments suivants :

    • ETAG : valeur etag obtenue en réponse lorsque vous avez utilisé la méthode getIamPolicy.
    • EXISTING_ROLE et EXISTING_USER_EMAIL : liaisons de rôle et de principal existantes renvoyées par la méthode getIamPolicy que vous souhaitez conserver.
    • PROJECT_ID : ID de votre projet Google Cloud.
    • CUSTOM_ROLE_ID : ID du rôle personnalisé au niveau du projet que vous souhaitez attribuer. Spécifiez l'une des options suivantes :
      • customRestrictedEndUser : accorde aux utilisateurs finaux les autorisations de projet nécessaires pour s'authentifier et accéder aux applications.
      • customRestrictedAdmin : accorde aux administrateurs les autorisations de projet nécessaires pour afficher les listes de ressources dans la console Google Cloud .
    • USER_EMAIL : adresse e-mail de l'utilisateur ou du groupe.

Configurer les autorisations de l'application

Accordez des autorisations au niveau des ressources sur la ressource d'application cible à l'aide de la consoleGoogle Cloud ou de l'API REST.

Si vous souhaitez attribuer un rôle personnalisé au lieu d'un rôle prédéfini dans la règle IAM au niveau de l'application, assurez-vous que le rôle personnalisé inclut toutes les autorisations du rôle prédéfini correspondant, telles que Utilisateur Gemini Enterprise (roles/discoveryengine.agentspaceUser) ou Administrateur Gemini Enterprise (roles/discoveryengine.agentspaceAdmin).

Console

Pour configurer les autorisations d'application dans la console Google Cloud , procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Gemini Enterprise > Applications.

    Accédez à "Applications".

  2. Sélectionnez votre application cible.

  3. Cliquez sur Autorisations utilisateur, puis sur Ajouter un utilisateur.

  4. Sélectionnez le rôle de l'utilisateur ou du groupe :

  5. Cliquez sur Enregistrer.

REST

Pour configurer les autorisations d'application à l'aide de l'API REST, procédez comme suit en utilisant un schéma lire-modifier-écrire :

  1. Obtenez la stratégie IAM actuelle à l'aide de la méthode getIamPolicy pour récupérer la stratégie actuelle et son etag :

    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"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : l'ID du projet.
    • ENDPOINT_LOCATION : région multiple pour votre requête API. Spécifiez l'une des valeurs suivantes :
      • us pour l'emplacement multirégional US
      • eu pour l'emplacement multirégional EU
      • global pour l'emplacement mondial
      Pour en savoir plus, consultez Spécifier un emplacement multirégional pour votre datastore.
    • LOCATION : emplacement multirégional de votre data store : global, us ou eu.
    • APP_ID : ID de l'application que vous souhaitez configurer.
  2. Définissez la stratégie IAM mise à jour à l'aide de la méthode setIamPolicy avec la charge utile de votre stratégie mise à jour :

    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"
    

    Remplacez les éléments suivants :

    • ETAG : valeur etag obtenue en réponse lorsque vous avez utilisé la méthode getIamPolicy.
    • EXISTING_ROLE et EXISTING_USER_EMAIL : liaisons de rôle et de principal existantes renvoyées par la méthode getIamPolicy que vous souhaitez conserver.
    • USER_EMAIL : adresse e-mail de l'utilisateur ou du groupe (par exemple, alex@example.com).
      • Pour accorder l'accès, ajoutez les adresses e-mail des utilisateurs au tableau members, chacune précédée de user:. Évitez les espaces superflus avant ou après l'adresse e-mail.
      • Pour révoquer l'accès, supprimez l'adresse e-mail de l'utilisateur du tableau members.
    • PREDEFINED_ROLE : rôle prédéfini que vous souhaitez attribuer à l'application. Par exemple, Utilisateur Gemini Enterprise (roles/discoveryengine.agentspaceUser) pour les utilisateurs finaux, Administrateur Gemini Enterprise (roles/discoveryengine.agentspaceAdmin) pour les administrateurs ou Lecteur Gemini Enterprise (roles/discoveryengine.agentspaceViewer) pour les lecteurs. Pour en savoir plus, consultez Rôles prédéfinis.
    • PROJECT_ID : ID de votre projetGoogle Cloud .
    • ENDPOINT_LOCATION : région multiple pour votre requête API. Spécifiez l'une des valeurs suivantes :
      • us pour l'emplacement multirégional US
      • eu pour l'emplacement multirégional EU
      • global pour l'emplacement mondial
      Pour en savoir plus, consultez Spécifier un emplacement multirégional pour votre datastore.
    • LOCATION : emplacement multirégional de votre data store : global, us ou eu.
    • APP_ID : ID de l'application que vous souhaitez configurer.

Configurer les autorisations du data store

Pour configurer les autorisations d'accès aux données, accordez des autorisations au niveau des ressources sur le data store cible à l'aide de la console Google Cloud ou de l'API REST. Les utilisateurs finaux ne peuvent se connecter aux data stores et les interroger que s'ils ont reçu explicitement les autorisations nécessaires.

Si vous souhaitez attribuer un rôle personnalisé au lieu d'un rôle prédéfini dans le règlement IAM du data store, assurez-vous que le rôle personnalisé inclut toutes les autorisations du rôle prédéfini correspondant, telles que Utilisateur Gemini Enterprise (roles/discoveryengine.agentspaceUser) ou Administrateur Gemini Enterprise (roles/discoveryengine.agentspaceAdmin).

Pour les connecteurs tiers qui appliquent les autorisations d'accès aux documents des utilisateurs finaux, l'accès des utilisateurs finaux aux documents individuels continue d'être régi par les listes de contrôle des accès (LCA) synchronisées à partir du système source (l'octroi d'un accès IAM ne contourne pas les LCA sources).

Pour trouver des datastores, des collections et des ID d'entité, consultez Obtenir des data store et les entités.

Console

Pour configurer les autorisations du data store dans la console Google Cloud , procédez comme suit. Les autorisations attribuées à un data store dans la console Google Cloud se propagent automatiquement à toutes les entités enfants sous-jacentes :

  1. Dans la console Google Cloud , accédez à la page Gemini Enterprise > Datastores.

    Accéder à la page "Datastores"

  2. Cliquez sur le nom de votre data store.

  3. Cliquez sur Autorisations utilisateur > Ajouter un utilisateur.

  4. Sélectionnez le rôle de l'utilisateur ou du groupe :

  5. Cliquez sur Enregistrer.

REST

Pour configurer les autorisations du data store à l'aide de l'API REST, développez la section correspondant à la configuration de votre data store :

Data stores avec des entités

Utilisez cette option pour les connecteurs tiers qui contiennent plusieurs types d'entités, comme Jira, Salesforce, Confluence ou SharePoint Online. Lorsque vous utilisez l'API REST, les autorisations ne sont pas automatiquement propagées de la collection de connecteurs parents aux entités enfants. Vous devez accorder les mêmes autorisations sur la ressource de collection parente et sur tous les magasins de données d'entités sous-jacents (ne configurez pas les autorisations pour un sous-ensemble d'entités uniquement).

Suivez ces étapes pour configurer les autorisations pour les data stores avec des entités :

  1. Obtenez la stratégie IAM actuelle pour la collection de connecteurs de données :

    Appelez getIamPolicy pour récupérer la stratégie actuelle et son etag :

    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"

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet Google Cloud .
    • ENDPOINT_LOCATION : région multiple pour votre requête API. Spécifiez l'une des valeurs suivantes :
      • us pour l'emplacement multirégional US
      • eu pour l'emplacement multirégional EU
      • global pour l'emplacement mondial
      Pour en savoir plus, consultez Spécifier un emplacement multirégional pour votre datastore.
    • LOCATION : emplacement multirégional de votre data store : global, us ou eu.
    • COLLECTION_ID : ID de la collection du connecteur de données. Pour en savoir plus, consultez Obtenir des informations data store et une entité.
  2. Définissez la stratégie IAM mise à jour sur la collection de connecteurs de données :

    Appelez setIamPolicy en incluant etag et la liaison de rôle :

    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"

    Remplacez les éléments suivants :

    • ETAG : valeur etag obtenue en réponse lorsque vous avez utilisé la méthode getIamPolicy à l'étape 1.
    • EXISTING_ROLE et EXISTING_USER_EMAIL : liaisons de rôle et de compte principal existantes renvoyées par la méthode getIamPolicy que vous souhaitez conserver.
    • USER_EMAIL : adresse e-mail de l'utilisateur ou du groupe.
    • PREDEFINED_ROLE : rôle prédéfini que vous souhaitez attribuer à la collection. Par exemple, Utilisateur Gemini Enterprise (roles/discoveryengine.agentspaceUser) pour les utilisateurs finaux, Administrateur Gemini Enterprise (roles/discoveryengine.agentspaceAdmin) pour les administrateurs ou Lecteur Gemini Enterprise (roles/discoveryengine.agentspaceViewer) pour les lecteurs. Pour en savoir plus, consultez Rôles prédéfinis.
    • PROJECT_ID : ID de votre projet Google Cloud .
    • ENDPOINT_LOCATION : région multiple pour votre requête API. Spécifiez l'une des valeurs suivantes :
      • us pour l'emplacement multirégional US
      • eu pour l'emplacement multirégional EU
      • global pour l'emplacement mondial
      Pour en savoir plus, consultez Spécifier un emplacement multirégional pour votre datastore.
    • LOCATION : emplacement multirégional de votre data store : global, us ou eu.
    • COLLECTION_ID : ID de la collection du connecteur de données.
  3. Obtenez la stratégie IAM actuelle pour un data store d'entités :

    Dans Gemini Enterprise, les datastores d'entités enfants se trouvent sous default_collection et sont précédés de l'ID de la collection de connecteurs. Appelez getIamPolicy sur le data store d'entités sous 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"

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet Google Cloud .
    • ENDPOINT_LOCATION : région multiple pour votre requête API. Spécifiez l'une des valeurs suivantes :
      • us pour l'emplacement multirégional US
      • eu pour l'emplacement multirégional EU
      • global pour l'emplacement mondial
      Pour en savoir plus, consultez Spécifier un emplacement multirégional pour votre datastore.
    • LOCATION : emplacement multirégional de votre data store : global, us ou eu.
    • DATA_STORE_ENTITY_ID : ID du data store d'entités (par exemple, DataConnector3_entityA). Pour en savoir plus, consultez Obtenir des informations data store et les entités.
  4. Définissez la stratégie IAM mise à jour sur le data store d'entités :

    Appelez setIamPolicy sur le data store d'entités, y compris 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"

    Remplacez les éléments suivants :

    • ETAG : valeur etag que vous avez obtenue en réponse lorsque vous avez utilisé la méthode getIamPolicy à l'étape 3.
    • EXISTING_ROLE et EXISTING_USER_EMAIL : liaisons de rôle et de compte principal existantes renvoyées par la méthode getIamPolicy que vous souhaitez conserver.
    • USER_EMAIL : adresse e-mail de l'utilisateur ou du groupe.
    • PREDEFINED_ROLE : rôle prédéfini que vous souhaitez attribuer au data store d'entités. Par exemple, Utilisateur Gemini Enterprise (roles/discoveryengine.agentspaceUser) pour les utilisateurs finaux, Administrateur Gemini Enterprise (roles/discoveryengine.agentspaceAdmin) pour les administrateurs ou Lecteur Gemini Enterprise (roles/discoveryengine.agentspaceViewer) pour les lecteurs. Pour en savoir plus, consultez Rôles prédéfinis.
    • PROJECT_ID : ID de votre projet Google Cloud .
    • ENDPOINT_LOCATION : région multiple pour votre requête API. Spécifiez l'une des valeurs suivantes :
      • us pour l'emplacement multirégional US
      • eu pour l'emplacement multirégional EU
      • global pour l'emplacement mondial
      Pour en savoir plus, consultez Spécifier un emplacement multirégional pour votre datastore.
    • LOCATION : emplacement multirégional de votre data store : global, us ou eu.
    • DATA_STORE_ENTITY_ID : ID du data store d'entités.

Répétez les étapes 3 et 4 pour chaque data store d'entité sous le connecteur de données. Si vous configurez ultérieurement le connecteur pour synchroniser des types d'entités supplémentaires, configurez des stratégies IAM sur chaque data store d'entités nouvellement créé.

Data stores sans entités

Utilisez cette option pour les magasins de données autonomes, tels que Cloud Storage ou BigQuery, ou les sources de données qui ne contiennent pas d'entités. Définissez les autorisations directement sur la ressource de data store unique sous default_collection.

Suivez ces étapes pour configurer les autorisations pour les data stores sans entités :

  1. Obtenez la stratégie IAM actuelle pour le data store :

    Appelez getIamPolicy pour récupérer la stratégie actuelle et son etag :

    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"

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet Google Cloud .
    • ENDPOINT_LOCATION : région multiple pour votre requête API. Spécifiez l'une des valeurs suivantes :
      • us pour l'emplacement multirégional US
      • eu pour l'emplacement multirégional EU
      • global pour l'emplacement mondial
      Pour en savoir plus, consultez Spécifier un emplacement multirégional pour votre datastore.
    • LOCATION : emplacement multirégional de votre data store : global, us ou eu.
    • DATA_STORE_ID : ID du data store. Pour en savoir plus, consultez Obtenir des informations data store et une entité.
  2. Définissez la stratégie IAM mise à jour sur le data store :

    Appelez setIamPolicy en incluant etag et la liaison de rôle :

    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"

    Remplacez les éléments suivants :

    • ETAG : valeur etag obtenue en réponse lorsque vous avez utilisé la méthode getIamPolicy à l'étape 1.
    • EXISTING_ROLE et EXISTING_USER_EMAIL : liaisons de rôle et de compte principal existantes renvoyées par la méthode getIamPolicy que vous souhaitez conserver.
    • USER_EMAIL : adresse e-mail de l'utilisateur ou du groupe.
    • PREDEFINED_ROLE : rôle prédéfini que vous souhaitez attribuer au data store. Par exemple, Utilisateur Gemini Enterprise (roles/discoveryengine.agentspaceUser) pour les utilisateurs finaux, Administrateur Gemini Enterprise (roles/discoveryengine.agentspaceAdmin) pour les administrateurs ou Lecteur Gemini Enterprise (roles/discoveryengine.agentspaceViewer) pour les lecteurs. Pour en savoir plus, consultez Rôles prédéfinis.
    • PROJECT_ID : ID de votre projet Google Cloud .
    • ENDPOINT_LOCATION : région multiple pour votre requête API. Spécifiez l'une des valeurs suivantes :
      • us pour l'emplacement multirégional US
      • eu pour l'emplacement multirégional EU
      • global pour l'emplacement mondial
      Pour en savoir plus, consultez Spécifier un emplacement multirégional pour votre datastore.
    • LOCATION : emplacement multirégional de votre data store : global, us ou eu.
    • DATA_STORE_ID : ID du data store.

Accorder l'accès aux fonctionnalités de Gemini Notebook Enterprise et aux outils pour les développeurs d'IA

Les utilisateurs disposant d'un accès restreint auxquels le rôle customRestrictedEndUser est attribué au niveau du projet perdent l'accès à des fonctionnalités telles que les outils de développement de l'IA et Gemini Notebook Enterprise, car leur rôle de projet ne contient que des autorisations de base.

Si vous attribuez le rôle complet Utilisateur Gemini Enterprise (roles/discoveryengine.agentspaceUser) au niveau du projet, l'isolation est remplacée et tous les datastores et applications du projet sont exposés. À la place, les administrateurs peuvent attribuer des rôles spécifiques aux fonctionnalités au niveau du projet.

Accorder l'accès à Gemini Notebook Enterprise

Attribuez le rôle Utilisateur de Cloud NotebookLM (roles/discoveryengine.notebookLmUser) pour permettre aux utilisateurs restreints de créer et d'utiliser des notebooks sans exposer les applications ni les dépôts de données :

Console

Pour accorder l'accès à l'aide de la console Google Cloud  :

  1. Dans la console Google Cloud , accédez à la page IAM.

    Accéder à IAM

  2. Sélectionnez votre projet Google Cloud .

  3. Recherchez l'utilisateur ou le groupe dans la liste des autorisations, puis cliquez sur Modifier le compte principal. Vous pouvez également cliquer sur Accorder l'accès pour ajouter un utilisateur.

  4. Dans la section Attribuer des rôles, cliquez sur Ajouter un autre rôle.

  5. Dans le champ Sélectionner un rôle, recherchez et sélectionnez Utilisateur Cloud NotebookLM (roles/discoveryengine.notebookLmUser).

  6. Cliquez sur Enregistrer.

gcloud

Pour accorder l'accès à l'aide de Google Cloud CLI, exécutez la commande suivante :

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet Google Cloud .
  • USER_EMAIL : adresse e-mail de l'utilisateur ou du groupe.

REST

Pour accorder l'accès à l'aide de l'API REST, mettez à jour la stratégie IAM du projet à l'aide de la méthode setIamPolicy :

  1. Obtenez la stratégie IAM actuelle à l'aide de la méthode getIamPolicy pour récupérer la stratégie actuelle et son etag :

    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"
    

    Remplacez PROJECT_ID par l'ID de votre projetGoogle Cloud .

  2. Définissez la stratégie IAM mise à jour à l'aide de la méthode setIamPolicy avec le rôle 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"
    

    Remplacez les éléments suivants :

    • ETAG : valeur etag de la réponse getIamPolicy.
    • EXISTING_ROLE et EXISTING_USER_EMAIL : liaisons de rôle et de principal existantes renvoyées par la méthode getIamPolicy que vous souhaitez conserver.
    • PROJECT_ID : ID de votre projet Google Cloud.
    • USER_EMAIL : adresse e-mail de l'utilisateur ou du groupe.

Accorder l'accès aux outils IA pour les développeurs

Attribuez les rôles Utilisateur de Gemini for Google Cloud (roles/cloudaicompanion.user) et Rôle utilisateur pour l'API Business AI Code (roles/businessaicode.user) pour activer les outils de développement de l'IA sans exposer les applications ni les dépôts de données Gemini Enterprise :

Console

Pour accorder l'accès à l'aide de la console Google Cloud  :

  1. Dans la console Google Cloud , accédez à la page IAM.

    Accéder à IAM

  2. Sélectionnez votre projet Google Cloud .

  3. Recherchez l'utilisateur ou le groupe dans la liste des autorisations, puis cliquez sur Modifier le compte principal. Vous pouvez également cliquer sur Accorder l'accès pour ajouter un utilisateur.

  4. Dans la section Attribuer des rôles, attribuez chacun des rôles suivants :

    • Utilisateur Gemini pour Google Cloud (roles/cloudaicompanion.user)
    • Rôle utilisateur pour l'API Business AI Code (roles/businessaicode.user)
  5. Cliquez sur Enregistrer.

gcloud

Pour accorder l'accès à l'aide de Google Cloud CLI, exécutez les commandes suivantes :

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"

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet Google Cloud .
  • USER_EMAIL : adresse e-mail de l'utilisateur ou du groupe.

REST

Pour accorder l'accès à l'aide de l'API REST, mettez à jour la stratégie IAM du projet à l'aide de la méthode setIamPolicy :

  1. Obtenez la stratégie IAM actuelle à l'aide de la méthode getIamPolicy pour récupérer la stratégie actuelle et son etag :

    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"
    

    Remplacez PROJECT_ID par l'ID de votre projetGoogle Cloud .

  2. Définissez la stratégie IAM mise à jour à l'aide de la méthode setIamPolicy avec les rôles roles/cloudaicompanion.user et 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"
    

    Remplacez les éléments suivants :

    • ETAG : valeur etag de la réponse getIamPolicy.
    • EXISTING_ROLE et EXISTING_USER_EMAIL : liaisons de rôle et de principal existantes renvoyées par la méthode getIamPolicy que vous souhaitez conserver.
    • PROJECT_ID : ID de votre projet Google Cloud.
    • USER_EMAIL : adresse e-mail de l'utilisateur ou du groupe.

Étape suivante

Si vous souhaitez supprimer une application avec une stratégie IAM, vous pouvez supprimer les utilisateurs de la stratégie avant de supprimer l'application. Pour en savoir plus, consultez Bonnes pratiques pour supprimer une application avec une stratégie IAM.