Attributs CEL pour les règles d'accès unifiées IAM

Ce document décrit les attributs et les fonctions du Common Expression Language (CEL) que vous pouvez utiliser lorsque vous écrivez des expressions conditionnelles dans les stratégies d'accès unifiées (UAP) IAM pour Agent Gateway.

Pour en savoir plus sur les concepts liés aux UAP, consultez la présentation des UAP IAM. Pour savoir comment configurer des UAP, consultez Créer des UAP IAM.

Attributs CEL disponibles

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

Présentation

Obtenez une présentation d'Agent Gateway.

Guide

Découvrez comment configurer les règles relatives au contenu et à l'activité.

Guide

Découvrez comment tester les règles.