Quando l'agente orchestratore chiama un agente Agent2Agent (A2A) remoto, l'ambito delle credenziali contribuisce a garantire che l'agente remoto riceva solo le autorizzazioni necessarie per la richiesta. Dopo aver individuato un agente in Agent Registry, puoi includere le credenziali dell'utente o generare token con ambito utilizzando il gestore di autenticazione di Agent Identity con ambiti OAuth limitati o limiti di accesso alle credenziali per Cloud Storage.
Prima di iniziare
Prima di limitare le autorizzazioni dell'agente con credenziali con ambito per le chiamate A2A, completa i seguenti passaggi:
- Configura Agent Registry.
Per una configurazione con un singolo progetto, recupera l'ID progetto del progetto di governance in cui è abilitato Agent Registry. Se hai configurato un confine di gestione per più progetti, utilizza l'ID del progetto di gestione per il rilevamento e la registrazione a livello di confine oppure specifica l'ID di un progetto membro per le operazioni su un singolo progetto.
Se vuoi limitare i token di Cloud Storage, attiva l'API Security Token Service (
sts.googleapis.com) nel tuo progetto.Installa le librerie Python
google-autherequests:pip install --upgrade google-auth requestsConfigura le Credenziali predefinite dell'applicazione (ADC) per lo sviluppo locale. In caso contrario, collega un account di servizio o una configurazione delle credenziali della federazione delle identità per i workload:
gcloud auth application-default login
Ruoli obbligatori
Puoi utilizzare il tuo account utente per lo sviluppo locale oppure un service account o un'entità dell'agente per consentire all'agente orchestratore di rilevare gli agenti registrati e chiamare gli agenti A2A di destinazione. L'account utente, il account di servizio o l'entità dell'agente devono disporre dei ruoli appropriati per completare queste attività.
Per assicurarti che il tuo account utente, account di servizio o entità dell'agente disponga delle autorizzazioni necessarie per scoprire gli agenti A2A in Agent Registry e chiamare gli agenti A2A di destinazione, chiedi all'amministratore di concedere i seguenti ruoli IAM al tuo account utente, account di servizio o entità dell'agente:
-
Per rilevare gli agenti in Agent Registry:
Agent Registry API Viewer (
roles/agentregistry.viewer) nel progetto di governance in cui è abilitato Agent Registry -
Per chiamare un agente A2A di destinazione in fase di runtime:
il ruolo di runtime o gateway per il servizio che ospita l'agente di destinazione, necessario per chiamare l'agente. Ad esempio, se l'agente di destinazione viene eseguito su Cloud Run, l'account o l'entità deve disporre del ruolo Cloud Run Invoker (
roles/run.invoker).
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
L'amministratore potrebbe anche essere in grado di concedere al tuo account utente, account di servizio o entità dell'agente le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.
Come vengono trasmesse le credenziali tra gli agenti
Quando un client A2A o un agente orchestratore invia un messaggio a un agente remoto, i servizi downstream controllano le autorizzazioni in base alla modalità di autenticazione della richiesta:
- Per conto di un utente: un utente accede al tuo agente orchestratore, che passa un token OAuth 2.0 autorizzato dall'utente o un token gestito dal gestore di autenticazione all'agente A2A remoto. Google Cloud Le API verificano il token e controllano le autorizzazioni di Identity and Access Management (IAM) dell'utente in modo che l'agente remoto non possa accedere alle risorse a cui l'utente non è autorizzato ad accedere.
- Utilizzo dell'identità dell'agente: quando un agente orchestratore viene eseguito senza un utente che ha eseguito l'accesso, si autentica con la propria identità agente o il proprio account di servizio. I servizi downstream controllano i ruoli concessi all'entità dell'agente (
principal://), a un set di entità corrispondente (principalSet://) o al suo account di servizio. - Da workload esterni o cross-cloud: gli agenti in esecuzione all'esterno diGoogle Cloud scambiano i token di un provider di identità esterno tramite lafederazione delle identità per i workloadper ottenere token di accesso Google Cloud federati prima di chiamare gli Agent Endpoint degli agenti A2A di destinazione.
Per limitare le autorizzazioni concesse da un token a un agente remoto, puoi limitare l'ambito dei token OAuth con associazioni per gli agenti A2A di terze parti o SaaS.
Puoi anche limitare i token di Cloud Storage utilizzando un limite di accesso alle credenziali per limitare un token di accesso Google Cloud a bucket Cloud Storage o oggetti specifici. I limiti di accesso alle credenziali supportano solo le autorizzazioni di Cloud Storage (storage.googleapis.com). Per altre API Google Cloud e chiamate agentiche A2A, l'accesso all'ambito avviene tramite le associazioni del gestore di autenticazione, le identità degli agenti con privilegio minimo con le policy di autorizzazione e negazione IAM o l'Agent Gateway.
Se queste opzioni non sono adatte al tuo caso d'uso e l'agente orchestratore esegue l'autenticazione con un account di servizio, puoi anche utilizzare la simulazione dell'identità dei service account per richiedere un token di breve durata per un account di servizio dedicato che dispone solo dei ruoli necessari per un'attività specifica.
Definisci l'ambito dei token OAuth con le associazioni
Quando chiami un agente A2A di terze parti o SaaS che utilizza OAuth 2.0 a 2 o 3 vie, crea un provider di autenticazione nel gestore di autenticazione e collega una risorsa Binding in Agent Registry che elenchi solo gli scopes OAuth di cui l'agente remoto ha bisogno. Quando l'Agent Development Kit (ADK) recupera l'agente remoto utilizzando get_remote_a2a_agent(), richiede token limitati agli ambiti di questa associazione. Per i passaggi di configurazione, consulta Autenticati su strumenti e risorse e Gestisci le associazioni.
Limita i token di Cloud Storage
Se l'agente orchestratore passa un token di accesso OAuth 2.0 a un agente o a uno strumento che legge o scrive dati di Cloud Storage, puoi ridurre le autorizzazioni del token per consentire l'accesso solo a bucket o prefissi di oggetti specifici. Utilizza Security Token Service per applicare un limite di accesso alle credenziali prima di inviare la richiesta:
import google.auth
from google.auth import downscoped
from google.auth.transport.requests import Request
source_creds, _ = google.auth.default(
scopes=["https://www.googleapis.com/auth/cloud-platform"]
)
access_boundary_rule = downscoped.AccessBoundaryRule(
available_resource=(
"//storage.googleapis.com/projects/_/buckets/BUCKET_NAME"
),
available_permissions=["inRole:roles/storage.objectViewer"],
)
cab = downscoped.CredentialAccessBoundary(rules=[access_boundary_rule])
downscoped_creds = downscoped.Credentials(
source_credentials=source_creds,
credential_access_boundary=cab,
)
downscoped_creds.refresh(Request())
Sostituisci BUCKET_NAME con il nome del bucket Cloud Storage che l'agente remoto può leggere.
Controlli di sicurezza aggiuntivi
Puoi combinare l'ambito delle credenziali con le policy di rete e l'ispezione dei prompt:
- Policy di accesso alla rete: instrada le chiamate A2A tramite Agent Gateway per applicare le Unified Access Policies (UAP) di Identity-Aware Proxy (IAP) alle risorse
Agentregistrate. - Ispezione di prompt e risposte: configura l'integrazione di Model Armor con Agent Gateway e i binding delle estensioni di servizio per ispezionare i prompt e le risposte A2A supportati per rilevare prompt injection ed esposizione di dati sensibili.
Passaggi successivi
- Configura le associazioni OAuth a due e tre vie in Autenticati per strumenti e risorse.
- Chiama gli Agent Endpoint A2A di destinazione utilizzando i token OAuth 2.0 e OIDC in Crea sistemi multi-agente e chiama gli agenti A2A.
- Esamina i ruoli per chiamare gli agenti A2A e le policy di negazione IAM in Ruoli e autorizzazioni.