Panoramica delle policy di accesso unificato IAM

Puoi creare policy di accesso unificato (UAP) di Identity and Access Management (IAM) per gestire in modo sicuro la comunicazione tra le entità agente e le risorse di destinazione, come agenti di destinazione, server MCP ed endpoint. Queste norme sono vincolate al progetto che contiene le istanze di Agent Gateway.

Agent Gateway utilizza Identity-Aware Proxy (IAP) per valutare e applicare le UAP.

IAP si integra anche con l'accesso sensibile al contesto per fornire autenticazione e autorizzazione dell'identità dell'agente end-to-end.

Per configurare i progetti di accesso unificato per Agent Gateway, vedi Configura i progetti di accesso unificato IAM.

Puoi anche creare un confine di accesso dell'entità (PAB) sull'identità dell'agente. Agent Gateway può utilizzare IAP per applicare le policy sul confine di accesso dell'entità.

Attiva Agent Gateway

Per utilizzare le policy di comunicazione agentica, devi configurare Agent Gateway.

Ti consigliamo di configurare Agent Gateway in modalità dry run (DRY_RUN) in un ambiente di staging per verificare che le policy funzionino come previsto.

Quando hai la certezza che le policy funzionano correttamente, puoi aggiornare la configurazione di Agent Gateway per impostare la modalità di applicazione forzata su ENFORCE. In questa modalità, le comunicazioni agentiche che violano le norme non sono consentite e la comunicazione con la risorsa viene bloccata.

Panoramica delle UAP

Le UAP controllano se una o più entità dell'agente possono accedere a una o più risorse di destinazione. Le UAP estendono il modello di policy IAM supportando più regole in una singola policy. A differenza dei criteri di autorizzazione e di negazione IAM, ogni regola in un criterio di accesso uniforme può avere sia un effetto di autorizzazione che di negazione. Scopri di più sui tipi di policy IAM.

Le regole contengono anche condizioni espresse in Common Expression Language (CEL). Le condizioni fungono da meccanismo principale per controllare l'accesso alle risorse post-gateway. L'applicazione delle UAP con Agent Gateway e IAP offre un controllo comportamentale rigoroso sugli agenti distribuiti nella tua azienda. Puoi rappresentare casi d'uso di governance degli agenti nel mondo reale e granulari in un unico criterio.

Una policy tipica contiene almeno due regole distinte:

  • Regola di autorizzazione:le regole di autorizzazione hanno un effetto di autorizzazione che consente ai entità dell'agente di accedere a operazioni specifiche e sicure, ad esempio eseguire un'operazione di lettura su uno strumento per recuperare i dati di monitoraggio o visualizzare le voci del registro.
  • Regola di negazione:le regole di negazione hanno un effetto di negazione che impedisce all'agente di eseguire azioni indesiderate, ad esempio un'operazione di eliminazione o aggiornamento non comandata su una risorsa critica.

Ad esempio, considera un agente di assistenza clienti automatizzato che deve interagire con strumenti interni che hanno accesso privilegiato a un database clienti. L'amministratore configura un Agent Gateway con IAP per applicare le UAP IAM. L'amministratore può configurare un UAP con una regola di autorizzazione che autorizza l'entità dell'agente a leggere le richieste di assistenza e una regola di negazione che impedisce all'entità dell'agente di eliminare o aggiornare i record del database.

Utilizzando le UAP che contengono regole di autorizzazione e negazione, le organizzazioni possono implementare una singola policy di conformità aziendale direttamente sull'infrastruttura cloud sottostante per limitare il comportamento dell'agente.

Best practice

Segui queste best practice quando configuri i criteri di uscita dell'agente:

  • Utilizza la modalità dry run:esegui il deployment delle policy nuove o modificate prima in modalità dry run per assicurarti che funzionino come previsto, senza bloccare il traffico degli agenti attivi.
  • Applica il principio del privilegio minimo: concedi solo le autorizzazioni necessarie. Utilizza nomi o percorsi di strumenti specifici nelle condizioni CEL anziché caratteri jolly.
  • Utilizza regole di negazione per le misure di protezione:utilizza regole di negazione esplicite per implementare misure di protezione fondamentali, ad esempio il blocco di strumenti distruttivi sugli endpoint di produzione. L'utilizzo di regole di negazione per le misure di salvaguardia è efficace perché le regole di negazione ignorano le regole di autorizzazione.
  • Esegui controlli regolari:rivedi periodicamente i log di Cloud Audit Logs e le configurazioni dei criteri per verificare che siano conformi alle norme di sicurezza della tua organizzazione.

Componenti UAP

I criteri di accesso uniforme contengono una o più regole. Le regole hanno i seguenti componenti:

Entità dell'agente

Nelle UAP IAM, definisci una o più entità dell'agente. Le entità dell'agente sono i membri a cui concedi l'accesso. Specifichi gli agenti in base alla loro identità, ovvero l'identità dell'agente che avvia la comunicazione con una risorsa. Per saperne di più su come i diversi tipi di agenti ricevono le identità, consulta Identità dell'agente. Le identità dell'agente sono rappresentate da identificatori entità che contengono l'identità dell'agente in formato SPIFFE (ad esempio, principal://agents.global.org-...).

Puoi specificare un array di identità di singoli agenti o un array di set di entità di servizio.

Le identità agente integrate vengono sottoposte a provisioning in tutti i Cloud de Confiance servizi, ad esempio Agent Runtime (motore di ragionamento), Gemini Enterprise (motore di rilevamento) e i servizi Cloud Run configurati con l'identità agente. Questi agent principals assumono la forma principal://TRUST_DOMAIN/AGENT_UNIQUE_IDENTIFIER, dove l'identificatore rappresenta il percorso della risorsa dell'agente sul suo servizio di hosting. Puoi anche specificare gli agenti utilizzando gli identificatori di entità della federazione delle identità per i workload.

Effetto regola

L'effetto della regola definisce se la regola consente o impedisce alle entità dell'agente di accedere a una risorsa.

Risorse di destinazione

Le UAP IAM gestiscono l'accesso dalle entità dell'agente alle risorse di destinazione. Le risorse di destinazione sono le risorse a cui le entità agente stanno tentando di accedere. Le risorse di destinazione sono specificate nelle condizioni della regola. Le risorse di destinazione possono essere risorse registrate o risorse non registrate.

Risorse registrate

Le risorse registrate sono risorse registrate in un registro Agent Registry.

Le risorse registrate includono:

  • Registri: tutti i registri degli agenti all'interno di un progetto.
  • Server MCP: server MCP registrati in un registry degli agenti.
  • Agenti: agenti registrati in un registry di agenti. I singoli agenti possono essere specificati singolarmente in base alla loro identità. Un gruppo di agenti può essere specificato da un identificatore del set di entità.
  • Endpoint: endpoint registrati in un registro degli agenti.

I singoli servizi possono essere registrati in Agent Registry. Se regionalizzi i registri degli agenti e la tua regola gestisce l'accesso alle risorse registrate, allora le tue UAP si applicano solo alle risorse che si trovano nella regione del registro.

Risorse non registrate

Le risorse non registrate sono risorse che non sono registrate in un registro agenti. Per concedere o negare l'accesso alle risorse non registrate nelle regole UAP, devi specificare le risorse non registrate nelle condizioni della regola utilizzando espressioni Common Expression Language (CEL) che contengono attributi di host e percorso non registrati.

Condizioni

Nelle regole UAP, utilizzi le espressioni Common Expression Language (CEL) nel blocco conditions per definire sia l'ambito delle risorse di destinazione sia i criteri di accesso granulare:

  • Ambito della risorsa di destinazione: identifica quali risorse di destinazione sono regolate dalla regola. Nei file di criteri in formato JSON, devi specificare gli attributi di destinazione, ad esempio destination.agent_registry.mcp_server.name o destination.unregistered.host. Nella console Cloud de Confiance , la selezione delle destinazioni in Risorse di destinazione aggiunge automaticamente questi criteri delle risorse all'espressione della condizione della regola.

  • Criteri di accesso: utilizza un'espressione booleana per determinare quando e con quali vincoli si applica l'effetto della regola. Ad esempio, puoi limitare l'accesso in base ai nomi degli strumenti, allo stato di sola lettura, ai metodi HTTP o ai prefissi dei percorsi utilizzando gli attributi CEL UAP. L'effetto della regola (consenti o nega) viene applicato solo quando l'intera espressione CEL restituisce true.

In gcloud CLI e nell'API REST, specifica queste espressioni CEL nel campo conditions della definizione della regola.

Nella console Cloud de Confiance , puoi configurare le regole standard utilizzando il generatore di condizioni oppure scrivere espressioni CEL personalizzate direttamente nell'editor delle condizioni.

Autorizzazioni

In IAP V2 con UAP IAM, l'autorizzazione iap.googleapis.com/resources.egressViaIAP viene sempre concessa sulla risorsa di destinazione. In gcloud CLI e nell'API REST, specifica l'autorizzazione nel campo operation.permissions del file della policy.

Opzioni di creazione delle policy

Nella pagina Policy della console Cloud de Confiance , puoi creare UAP IAM. Ti consigliamo di creare solo UAP (policy IAM v3).

Sia in gcloud CLI che nell'API REST, puoi configurare le UAP IAM creando prima un file in formato JSON. Ti consigliamo di creare solo UAP.

Autenticazione e autorizzazione end-to-end

IAP e l'accesso sensibile al contesto forniscono l'autenticazione e l'autorizzazione end-to-end predefinite dell'identità dell'agente utilizzando i seguenti protocolli:

  • mutual TLS (mTLS)
  • Dimostrazione della prova di possesso (DPoP)

Le identità degli agenti vengono sottoposte al provisioning con un certificato X.509 e un token associato al certificato. IAP impone che le identità dell'agente utilizzino mutual TLS (mTLS) per l'autenticazione all'Agent Gateway. Quando il gateway consente all'agente di uscire e accedere alle API Cloud de Confiance , ai server MCP, ad altri agenti e ad altri endpoint, l'agente tenta di accedere al di fuori del limite mTLS. Per contribuire a proteggere la comunicazione, l'accesso sensibile al contesto applica un criterio di accesso sensibile al contesto gestito da Google. Il criterio richiede a DPoP di convalidare il token associato al certificato che è associato all'identità dell'agente. Per ulteriori informazioni su come l'accesso sensibile al contesto utilizza mTLS e DPoP, vedi Sicurezza dell'agente di accesso sensibile al contesto.

Attributi CEL UAP

Nelle UAP, puoi definire le condizioni con espressioni condizionali. Le espressioni possono contenere più sottoespressioni. Il tipo di risorsa di destinazione che utilizzi in ogni condizione secondaria relazionale determina quali attributi puoi utilizzare.

Ad esempio, nella seguente condizione, nella sottoespressione destination.unregistered.path.startsWith('/v1/statements'), il tipo di risorsa è una destinazione non registrata, l'attributo è destination.unregistered.path e startsWith() è la funzione CEL.

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

Gli attributi descritti nella tabella seguente sono disponibili per ogni tipo di risorsa:

Tipo di risorsa di destinazione Attributo Dettagli

Agent Registry

destination.is_registered
Tipo di valore Booleano
Valori supportati true, false
Operazioni supportate ==, !=
destination.agent_registry.resource_type
Tipo di valore Stringa
Valori supportati 'AGENT', 'ENDPOINT', 'MCP_SERVER', 'SKILL'
Operazioni supportate ==, !=, in
destination.agent_registry.location
Tipo di valore Stringa
Valori supportati ID località Google Cloud (ad esempio, 'global', 'us-central1')
Operazioni supportate ==, !=, in
destination.agent_registry.project_id
Tipo di valore Stringa
Valori supportati ID progetto Google Cloud
Operazioni supportate ==, !=, in

Agente

destination.agent_registry.agent.name
Tipo di valore Stringa
Valori supportati Nome risorsa agente (projects/PROJECT_ID/locations/LOCATION/agents/AGENT_NAME)
Operazioni supportate ==, !=, in

Server MCP

destination.agent_registry.mcp_server.name
Tipo di valore Stringa
Valori supportati Nome risorsa server MCP (projects/PROJECT_ID/locations/LOCATION/mcpServers/MCP_SERVER_NAME)
Operazioni supportate ==, !=, in
destination.agent_registry.mcp_server.method
Tipo di valore Stringa
Valori supportati Nome del metodo MCP (ad esempio, 'tools', 'prompts', 'resources')
Operazioni supportate ==, !=, in
destination.agent_registry.mcp_server.tool.name
Tipo di valore Stringa
Valori supportati Nome dello strumento (ad esempio, 'search_code', 'execute')
Operazioni supportate ==, !=, in
destination.agent_registry.mcp_server.tool.annotations.read_only_hint
Tipo di valore Booleano
Valori supportati true, false
Operazioni supportate ==, !=
destination.agent_registry.mcp_server.tool.annotations.destructive_hint
Tipo di valore Booleano
Valori supportati true, false
Operazioni supportate ==, !=
destination.agent_registry.mcp_server.tool.annotations.idempotent_hint
Tipo di valore Booleano
Valori supportati true, false
Operazioni supportate ==, !=
destination.agent_registry.mcp_server.tool.annotations.open_world_hint
Tipo di valore Booleano
Valori supportati true, false
Operazioni supportate ==, !=
destination.agent_registry.mcp_server.prompt.name
Tipo di valore Stringa
Valori supportati Nome del prompt
Operazioni supportate ==, !=, in
destination.agent_registry.mcp_server.resource.name
Tipo di valore Stringa
Valori supportati Nome della risorsa
Operazioni supportate ==, !=, in

Endpoint

destination.agent_registry.endpoint.name
Tipo di valore Stringa
Valori supportati Nome risorsa endpoint (projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_NAME)
Operazioni supportate ==, !=, in

Destinazione non registrata

destination.unregistered.host
Tipo di valore Stringa
Valori supportati Nome host (ad esempio, 'google.com', 'example.com')
Operazioni supportate ==, !=, in, .startsWith(), .endsWith(), .contains()
destination.unregistered.path
Tipo di valore Stringa
Valori supportati Percorso della richiesta (ad esempio, '/admin', '/api/v1')
Operazioni supportate ==, !=, in, .startsWith(), .endsWith(), .contains()
destination.unregistered.method
Tipo di valore Stringa
Valori supportati Metodo HTTP (ad esempio, 'get', 'post', 'put', 'delete')
Operazioni supportate ==, !=, in

Passaggi successivi

Codelab

Scopri come proteggere le tue applicazioni agentiche nel codelab Protezione delle applicazioni di AI agentica cross-cloud.

Panoramica

Ottieni una panoramica di Agent Gateway.

Guida

Scopri di più sui controlli di sicurezza per Google Agent Platform.