Présentation des règles d'accès unifiées IAM

Vous pouvez créer des règles d'accès unifiées (UAP, Unified Access Policies) Identity and Access Management (IAM) pour gérer de manière sécurisée la communication entre les principaux d'agent et les ressources de destination, telles que les agents de destination, les serveurs MCP et les points de terminaison. Ces règles sont liées au projet qui contient vos instances Agent Gateway.

Agent Gateway utilise Identity-Aware Proxy (IAP) pour évaluer et appliquer les règles d'accès unifiées.

IAP s'intègre également à l'accès contextuel pour fournir une authentification et une autorisation de l'identité de l'agent de bout en bout.

Pour configurer des UAP pour Agent Gateway, consultez Configurer des UAP IAM.

Vous pouvez également créer une limite d'accès des principaux (PAB) sur l'identité de l'agent. Agent Gateway peut utiliser IAP pour appliquer des stratégies Limite d'accès des principaux.

Activer la passerelle d'agent

Pour utiliser des règles de communication agentiques, vous devez configurer Agent Gateway.

Nous vous recommandons de configurer Agent Gateway en mode de simulation (DRY_RUN) dans un environnement de préproduction pour vérifier que vos règles fonctionnent comme prévu.

Lorsque vous êtes certain que les règles fonctionnent correctement, vous pouvez mettre à jour la configuration de la passerelle d'agent pour définir le mode d'application sur ENFORCE. Dans ce mode, les communications agentiques qui enfreignent le règlement sont interdites et la communication avec la ressource est bloquée.

Présentation des UAP

Les UAP contrôlent si un ou plusieurs comptes principaux d'agent peuvent accéder à une ou plusieurs ressources de destination. Les UAP étendent le modèle de règles IAM en acceptant plusieurs règles dans une même règle. Contrairement aux stratégies d'autorisation et de refus IAM, chaque règle d'une règle d'administration unifiée peut avoir un effet d'autorisation et un effet de refus. En savoir plus sur les types de stratégies IAM

Les règles contiennent également des conditions exprimées en Common Expression Language (CEL). Les conditions constituent le principal mécanisme de contrôle de l'accès aux ressources post-passerelle. L'application des UAP avec Agent Gateway et IAP permet de contrôler strictement le comportement des agents déployés dans votre entreprise. Vous pouvez représenter des cas d'utilisation concrets et précis de gouvernance des agents dans une seule règle.

Une stratégie type contient au moins deux règles distinctes :

  • Règle d'autorisation : les règles d'autorisation ont un effet d'autorisation qui permet aux comptes principaux de l'agent d'accéder à des opérations spécifiques et sécurisées, comme effectuer une opération de lecture sur un outil pour récupérer des données de suivi ou afficher des entrées de registre.
  • Règle de refus : les règles de refus ont un effet de refus qui empêche l'agent d'exécuter des actions indésirables, comme effectuer une opération de suppression ou de mise à jour non commandée sur une ressource critique.

Prenons l'exemple d'un agent d'assistance client automatisé qui doit interagir avec des outils internes disposant d'un accès privilégié à une base de données client. L'administrateur configure une passerelle d'agent avec IAP pour appliquer les UAP IAM. L'administrateur peut configurer un UAP avec une règle d'autorisation qui autorise le compte principal de l'agent à lire les demandes d'assistance, et une règle de refus qui interdit au compte principal de l'agent de supprimer ou de mettre à jour les enregistrements de la base de données.

En utilisant des UAP contenant à la fois des règles d'autorisation et de refus, les entreprises peuvent déployer une seule stratégie de conformité directement sur l'infrastructure cloud sous-jacente pour limiter le comportement des agents.

Bonnes pratiques

Suivez ces bonnes pratiques lorsque vous configurez des règles de sortie d'agent :

  • Utilisez le mode dry run : déployez d'abord les règles nouvelles ou modifiées en mode dry run pour vous assurer qu'elles fonctionnent comme prévu, sans bloquer le trafic d'agents actifs.
  • Appliquez le principe du moindre privilège : n'accordez que les autorisations nécessaires. Utilisez des noms ou des chemins d'outils spécifiques dans les conditions CEL plutôt que des caractères génériques.
  • Utilisez des règles de refus pour les garde-fous : utilisez des règles de refus explicites pour implémenter des garde-fous critiques, comme le blocage des outils destructifs sur les points de terminaison de production. L'utilisation de règles de refus pour les garde-fous est efficace, car elles remplacent les règles d'autorisation.
  • Effectuez des audits réguliers : examinez régulièrement les journaux Cloud Audit Logs et les configurations des règles pour vérifier qu'ils sont conformes aux règles de sécurité de votre organisation.

Composants UAP

Les UAP contiennent une ou plusieurs règles. Les règles se composent des éléments suivants :

Entités principales de l'agent

Dans vos UAP IAM, vous définissez un ou plusieurs principaux d'agent. Les comptes principaux d'agent sont les membres auxquels vous accordez l'accès. Vous spécifiez les agents par leur identité, c'est-à-dire l'identité de l'agent qui initie la communication avec une ressource. Pour en savoir plus sur la façon dont les différents types d'agents reçoivent des identités, consultez Identité de l'agent. Les identités d'agent sont représentées par des identifiants de principal qui contiennent l'identité de l'agent au format SPIFFE (par exemple, principal://agents.global.org-...).

Vous pouvez spécifier un tableau d'identités d'agents individuelles ou un tableau d'ensembles de comptes principaux.

Les identités d'agent intégrées sont provisionnées dans les services Cloud de Confiance tels que Agent Runtime (Reasoning Engine), Gemini Enterprise (Discovery Engine) et les services Cloud Run configurés avec une identité d'agent. Ces principaux d'agent se présentent sous la forme principal://TRUST_DOMAIN/AGENT_UNIQUE_IDENTIFIER, où l'identifiant représente le chemin d'accès à la ressource de l'agent sur son service d'hébergement. Vous pouvez également spécifier des agents à l'aide d'identifiants principaux de fédération d'identité de charge de travail.

Effet de la règle

L'effet de la règle définit si elle autorise ou non les comptes principaux des agents à accéder à une ressource.

Ressources de destination

Les UAP IAM gèrent l'accès des comptes principaux d'agent aux ressources de destination. Les ressources de destination sont celles auxquelles les principaux de l'agent tentent d'accéder. Les ressources de destination sont spécifiées dans les conditions de la règle. Les ressources de destination peuvent être des ressources enregistrées ou des ressources non enregistrées.

Ressources enregistrées

Les ressources enregistrées sont celles qui sont enregistrées dans un registre Agent Registry.

Les ressources enregistrées incluent les éléments suivants :

  • Registres : registres d'agents entiers dans un projet.
  • Serveurs MCP : serveurs MCP enregistrés dans un registre d'agents.
  • Agents : agents enregistrés dans un registre d'agents. Les agents individuels peuvent être spécifiés individuellement par leur identité d'agent. Un groupe d'agents peut être spécifié par un identifiant d'ensemble de comptes principaux.
  • Points de terminaison : points de terminaison enregistrés dans un registre d'agents.

Les services individuels peuvent être enregistrés dans Agent Registry. Si vous régionalisez vos registres d'agents et que votre règle gère l'accès aux ressources enregistrées, vos UAP ne s'appliquent qu'aux ressources qui se trouvent dans la région du registre.

Ressources non enregistrées

Les ressources non enregistrées sont celles qui ne sont pas enregistrées dans un registre d'agents. Pour accorder ou refuser l'accès aux ressources non enregistrées dans vos règles UAP, vous devez spécifier les ressources non enregistrées dans les conditions de votre règle à l'aide d'expressions CEL (Common Expression Language) contenant des attributs d'hôte et de chemin d'accès non enregistrés.

Conditions

Dans les règles UAP, vous utilisez des expressions CEL (Common Expression Language) dans le bloc conditions pour définir à la fois le champ d'application de la ressource cible et les critères d'accès précis :

  • Champ d'application de la ressource cible : identifie lesquelles des ressources de destination sont régies par la règle. Dans les fichiers de règles au format JSON, vous spécifiez des attributs de destination, tels que destination.agent_registry.mcp_server.name ou destination.unregistered.host. Dans la console Cloud de Confiance , la sélection de destinations sous Ressources cibles ajoute automatiquement ces critères de ressources à l'expression de condition de la règle.

  • Critères d'accès : utilisez une expression booléenne pour déterminer quand et sous quelles contraintes l'effet de la règle s'applique. Par exemple, vous pouvez restreindre l'accès en fonction des noms d'outils, de l'état en lecture seule, des méthodes HTTP ou des préfixes de chemin d'accès à l'aide des attributs CEL UAP. L'effet de la règle (autoriser ou refuser) ne prend effet que lorsque l'ensemble de l'expression CEL est évalué sur true.

Dans gcloud CLI et l'API REST, vous spécifiez ces expressions CEL dans le champ conditions de la définition de la règle.

Dans la console Cloud de Confiance , vous pouvez configurer des règles standards à l'aide du Générateur de conditions ou écrire des expressions CEL personnalisées directement dans l'Éditeur de conditions.

Autorisations

Dans IAP V2 avec les UAP IAM, l'autorisation iap.googleapis.com/resources.egressViaIAP est toujours accordée sur la ressource de destination. Dans gcloud CLI et l'API REST, vous spécifiez l'autorisation dans le champ operation.permissions de votre fichier de stratégie.

Options de création de règles

Sur la page Stratégies de la console Cloud de Confiance , vous pouvez créer des UAP IAM. Nous vous recommandons de ne créer que des UAP (stratégies IAM v3).

Dans gcloud CLI et l'API REST, vous pouvez configurer les UAP IAM en créant d'abord un fichier au format JSON. Nous vous recommandons de ne créer que des UAP.

Authentification et autorisation de bout en bout

IAP et l'accès contextuel fournissent une authentification et une autorisation par défaut de l'identité de l'agent de bout en bout à l'aide des protocoles suivants :

  • TLS mutuelle (mTLS)
  • Démontrer la preuve de possession (DPoP)

Les identités d'agent sont provisionnées avec un certificat X.509 et un jeton lié à un certificat. IAP exige que les identités d'agent utilisent le protocole TLS mutuel (mTLS) pour s'authentifier auprès d'Agent Gateway. Lorsque la passerelle autorise l'agent à sortir et à accéder aux API Cloud de Confiance , aux serveurs MCP, aux autres agents et aux points de terminaison, l'agent tente d'accéder en dehors de la limite mTLS. Pour protéger les communications, l'accès contextuel applique une règle d'accès contextuel gérée par Google. La règle exige que DPoP valide le jeton lié au certificat qui est lié à l'identité de l'agent. Pour en savoir plus sur la façon dont l'accès contextuel utilise mTLS et DPoP, consultez Sécurité de l'agent d'accès contextuel.

Attributs UAP CEL

Dans vos UAP, vous pouvez définir des conditions avec des expressions conditionnelles. Les expressions peuvent contenir plusieurs sous-expressions. Le type de ressource de destination que vous utilisez dans chaque sous-condition relationnelle détermine les attributs que vous pouvez utiliser.

Par exemple, dans la condition suivante, dans la sous-expression destination.unregistered.path.startsWith('/v1/statements'), le type de ressource est une destination non enregistrée, l'attribut est destination.unregistered.path et startsWith() est la fonction CEL.

destination.unregistered.host == 'finance.example.com' &&
destination.unregistered.path.startsWith('/v1/statements')

Les attributs décrits dans le tableau suivant sont disponibles pour chaque type de ressource :

Type de ressource de destination Attribut Détails

Agent Registry

destination.is_registered
Type de valeur Booléen
Valeurs acceptées true, false
Opérations prises en charge ==, !=
destination.agent_registry.resource_type
Type de valeur Chaîne
Valeurs acceptées 'AGENT', 'ENDPOINT', 'MCP_SERVER', 'SKILL'
Opérations prises en charge ==, !=, in
destination.agent_registry.location
Type de valeur Chaîne
Valeurs acceptées ID de zone géographique Google Cloud (par exemple, 'global', 'us-central1')
Opérations prises en charge ==, !=, in
destination.agent_registry.project_id
Type de valeur Chaîne
Valeurs acceptées ID de projet Google Cloud
Opérations prises en charge ==, !=, in

Agent

destination.agent_registry.agent.name
Type de valeur Chaîne
Valeurs acceptées Nom de ressource de l'agent (projects/PROJECT_ID/locations/LOCATION/agents/AGENT_NAME)
Opérations prises en charge ==, !=, in

Serveur MCP

destination.agent_registry.mcp_server.name
Type de valeur Chaîne
Valeurs acceptées Nom de ressource du serveur MCP (projects/PROJECT_ID/locations/LOCATION/mcpServers/MCP_SERVER_NAME)
Opérations prises en charge ==, !=, in
destination.agent_registry.mcp_server.method
Type de valeur Chaîne
Valeurs acceptées Nom de la méthode MCP (par exemple, 'tools', 'prompts', 'resources')
Opérations prises en charge ==, !=, in
destination.agent_registry.mcp_server.tool.name
Type de valeur Chaîne
Valeurs acceptées Nom de l'outil (par exemple, 'search_code', 'execute')
Opérations prises en charge ==, !=, in
destination.agent_registry.mcp_server.tool.annotations.read_only_hint
Type de valeur Booléen
Valeurs acceptées true, false
Opérations prises en charge ==, !=
destination.agent_registry.mcp_server.tool.annotations.destructive_hint
Type de valeur Booléen
Valeurs acceptées true, false
Opérations prises en charge ==, !=
destination.agent_registry.mcp_server.tool.annotations.idempotent_hint
Type de valeur Booléen
Valeurs acceptées true, false
Opérations prises en charge ==, !=
destination.agent_registry.mcp_server.tool.annotations.open_world_hint
Type de valeur Booléen
Valeurs acceptées true, false
Opérations prises en charge ==, !=
destination.agent_registry.mcp_server.prompt.name
Type de valeur Chaîne
Valeurs acceptées Nom du prompt
Opérations prises en charge ==, !=, in
destination.agent_registry.mcp_server.resource.name
Type de valeur Chaîne
Valeurs acceptées Nom de la ressource
Opérations prises en charge ==, !=, in

Point de terminaison

destination.agent_registry.endpoint.name
Type de valeur Chaîne
Valeurs acceptées Nom de ressource du point de terminaison (projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_NAME)
Opérations prises en charge ==, !=, in

Destination non enregistrée

destination.unregistered.host
Type de valeur Chaîne
Valeurs acceptées Nom d'hôte (par exemple, 'google.com', 'example.com')
Opérations prises en charge ==, !=, in, .startsWith(), .endsWith(), .contains()
destination.unregistered.path
Type de valeur Chaîne
Valeurs acceptées Chemin de requête (par exemple, '/admin', '/api/v1')
Opérations prises en charge ==, !=, in, .startsWith(), .endsWith(), .contains()
destination.unregistered.method
Type de valeur Chaîne
Valeurs acceptées Méthode HTTP (par exemple, 'get', 'post', 'put', 'delete')
Opérations prises en charge ==, !=, in

Étapes suivantes

Atelier de programmation

Découvrez comment sécuriser vos applications agentiques dans l'atelier de programmation "Sécuriser les applications d'IA agentiques cross-cloud".

Présentation

Obtenez une présentation d'Agent Gateway.

Guide

Découvrez les contrôles de sécurité pour Google Agent Platform.