Limita le autorizzazioni degli agenti con credenziali con ambito

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:

  1. Configura Agent Registry.
  2. 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.

  3. Se vuoi limitare i token di Cloud Storage, attiva l'API Security Token Service (sts.googleapis.com) nel tuo progetto.

  4. Installa le librerie Python google-auth e requests:

    pip install --upgrade google-auth requests
    
  5. Configura 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:

Passaggi successivi