Configurer le contrôle des accès pour les applications

Cette page explique comment un administrateur Gemini Enterprise peut utiliser l'API pour gérer le contrôle d'accès précis pour chaque application Gemini Enterprise.

Si vous devez configurer des contrôles des accès précis au niveau des ressources pour les applications et les data stores, consultez Configurer des contrôles des accès précis pour les applications et les data stores.

Par défaut, les autorisations IAM sont souvent gérées au niveau du projet. L'IAM au niveau de l'application permet un contrôle plus précis, ce qui permet aux administrateurs :

  • Restreindre l'accès des utilisateurs à des applications spécifiques au sein du même projet Google Cloud .
  • Alignez les autorisations sur les besoins de votre organisation et les silos de données pour vos déploiements Gemini Enterprise.

Prenons l'exemple d'une organisation disposant d'une application RH et d'une application à l'échelle de l'entreprise. Un membre de l'équipe RH disposant d'autorisations au niveau du projet peut accéder aux deux applications. En revanche, en utilisant une stratégie IAM au niveau de l'application, vous pouvez accorder à un membre de l'équipe commerciale l'accès à l'application à l'échelle de l'entreprise uniquement, ce qui l'empêche d'accéder à l'application RH.

Schéma d'exemples de stratégies IAM au niveau de l'application.

Avant de commencer

  • Vérifiez que vous disposez du rôle Administrateur Gemini Enterprise (roles/discoveryengine.agentspaceAdmin).

  • Vérifiez que tous les utilisateurs Gemini Enterprise disposent d'une licence valide et qu'ils ont le rôle Utilisateur Gemini Enterprise limité (roles/discoveryengine.agentspaceRestrictedUser) au niveau du projet. Pour obtenir des instructions, consultez Accorder des autorisations à vos utilisateurs.

    Ce rôle ne permet pas d'accéder à une application en soi. Il fournit l'accès au niveau du projet dont les utilisateurs ont besoin, puis vous accordez l'accès aux applications individuelles. Si vous utilisez un rôle personnalisé au niveau du projet au lieu du rôle prédéfini roles/discoveryengine.agentspaceRestrictedUser, assurez-vous que votre rôle personnalisé inclut les autorisations discoveryengine.locations.buildAuthorizationUrl, discoveryengine.dataStores.get, discoveryengine.collections.get et discoveryengine.devToolsConfigs.get. Si vous omettez discoveryengine.devToolsConfigs.get, une erreur 403 PERMISSION_DENIED se produit dans Cloud Audit Logs lorsque l'application Web vérifie devToolsConfig.

Passer de l'accès au niveau du projet à l'accès au niveau de l'application

Pour limiter l'accès des utilisateurs à des applications spécifiques, vous devez remplacer leur rôle d'utilisateur Gemini Enterprise au niveau du projet par le rôle d'utilisateur Gemini Enterprise limité, puis attribuer le rôle d'utilisateur Gemini Enterprise au niveau de chaque application.

Pour passer d'un accès au niveau du projet à un accès au niveau de l'application, suivez ces étapes. Vous utilisez la console Google Cloud pour les modifications au niveau du projet et l'API pour l'autorisation au niveau de l'application, que la console Google Cloud ne prend pas en charge.

  1. Dans la console Google Cloud , accédez à la page IAM.
  2. Recherchez l'utilisateur et supprimez le rôle Utilisateur Gemini Enterprise (roles/discoveryengine.agentspaceUser) de ses autorisations au niveau du projet.
  3. Si vous ne l'avez pas encore fait, attribuez à l'utilisateur le rôle d'utilisateur Gemini Enterprise restreint (roles/discoveryengine.agentspaceRestrictedUser) au niveau du projet.
  4. Utilisez la méthode setIamPolicy pour attribuer à l'utilisateur le rôle Utilisateur Gemini Enterprise (roles/discoveryengine.agentspaceUser) pour chaque application spécifique à laquelle il doit accéder. Pour en savoir plus, consultez Gérer les stratégies IAM pour les applications.

Gérer les stratégies IAM pour les applications

Pour gérer l'accès à votre application Gemini Enterprise, vous pouvez utiliser les méthodes d'API getIamPolicy et setIamPolicy.

Les étapes suivantes vous montrent comment récupérer la stratégie actuelle, puis la mettre à jour pour accorder ou révoquer l'accès des utilisateurs.

Obtenir la stratégie IAM de l'application

Obtenez la stratégie IAM actuelle de votre application à l'aide de la méthode getIamPolicy. Nous vous recommandons de récupérer d'abord la stratégie existante pour éviter d'écraser les autorisations actuelles.

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"

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.

Mettre à jour la stratégie IAM de l'application

Pour accorder ou révoquer l'accès des utilisateurs à l'application, mettez à jour la stratégie IAM de l'application à l'aide de la méthode setIamPolicy.

La stratégie IAM utilise le rôle Utilisateur Gemini Enterprise (roles/discoveryengine.agentspaceUser) pour accorder aux utilisateurs un accès direct à l'application.

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"

Remplacez les éléments suivants :

  • ETAG : valeur etag obtenue en réponse lorsque vous avez utilisé la méthode getIamPolicy.

  • USER_EMAIL, GROUP_EMAIL : une ou plusieurs adresses e-mail d'utilisateurs ou de groupes. En plus de user et group, principal et principalSet sont des types de membres valides pour la fédération d'Workload Identity.

    • Pour accorder l'accès, ajoutez des comptes principaux au tableau members. Par exemple, "user:cloudysanfrancisco@gmail.com" ou "group:mcymbalgroup@google.com".

    • Pour révoquer l'accès, supprimez les comptes principaux du tableau members.

  • POOL_ID : ID de votre pool d'identités de charge de travail.

  • SUBJECT_ID : identifiant de sujet pour une identité spécifique.

  • NAME : nom d'un attribut.

  • VALUE : valeur d'un attribut.

  • PROJECT_ID : par l'ID du projet.

  • ENDPOINT_LOCATION : région multiple pour votre requête API. Spécifiez 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.

É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.