Puoi creare policy di accesso unificato (UAP) di Identity and Access Management (IAM) che regolano la comunicazione tra agenti e risorse di destinazione, come registri degli agenti, server MCP, agenti ed endpoint registrati e non registrati.
Agent Gateway utilizza Identity-Aware Proxy (IAP) per valutare e applicare le UAP.
Nella console Google Cloud , puoi utilizzare la pagina Policy per creare UAP IAM di Agent Gateway. Le UAP possono contenere regole di autorizzazione, regole di negazione o entrambe.
Puoi utilizzare Google Cloud CLI, l'API REST o Terraform per creare UAP IAM e associarli ai progetti che contengono le tue istanze di Agent Gateway.
Per scoprire come aggiornare ed eliminare gli UAP, consulta Gestisci gli UAP IAM.
Prima di iniziare
Prima di creare un UAP IAM, segui questi passaggi:
Devi disattivare l'applicazione del vincolo gestito Disabilita l'accesso alle risorse tramite policy di associazione (
constraints/iam.managed.disableAccessPolicyBindings). Per impostazione predefinita, questo vincolo booleano è abilitato per le nuove organizzazioni e impedisce di associare una policy di accesso all'API IAM v3 a una risorsa. Per saperne di più, consulta Aggiornamento delle policy con regole booleane.Configurare un progetto di fatturazione Google Cloud .
Abilita le API richieste:
gcloud services enable \ agentregistry.googleapis.com \ aiplatform.googleapis.com \ iam.googleapis.com \ networkservices.googleapis.comAssicurati di aver configurato un Agent Gateway e IAP utilizzando una policy IAP v2. Ti consigliamo di configurare inizialmente Agent Gateway in modalità dry run. Per saperne di più su Agent Gateway, consulta la panoramica di Agent Gateway.
Compila il tuo Agent Registry con le risorse di destinazione, come agenti, server MCP ed endpoint.
Determina le identità degli agenti di origine per cui vuoi gestire l'accesso. Per gestire l'accesso da un intero registry utilizzando la console Google Cloud , seleziona il progetto che contiene il registry.
Consulta le best practice per IAP e UAP.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare Agent Platform per gli agenti AI, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto:
-
Crea istanze di Agent Gateway:
IAP Policy Admin (
roles/iap.admin) o Network Security Admin (roles/networksecurity.admin) -
Creare e associare UAP:
Access Policy Admin (
roles/iam.accessPolicyAdmin) -
Associazione della policy a un progetto:
Project IAM Admin (
roles/resourcemanager.projectIamAdmin)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Crea UAP IAM
I criteri di accesso degli utenti consentono di configurare più regole. Ogni regola può avere un effetto di autorizzazione o di negazione.
Crea un criterio di accesso utente con una regola di autorizzazione
Puoi creare un UAP con una regola di autorizzazione utilizzando la consoleGoogle Cloud , gcloud CLI, l'API REST o Terraform.
Console
Per creare uno UAP nella console Google Cloud , procedi come segue:
-
Nella console Google Cloud , vai alla pagina Policy:
- Nel selettore dei progetti, seleziona il progetto che contiene gli Agent Gateway che utilizzeranno l'UAP.
- Per aggiungere un criterio di accesso utente IAM per il traffico in uscita di Agent Gateway, fai clic su Crea.
-
In Dettagli policy, segui questi passaggi:
- Fai clic sul campo Policy.
- Nell'elenco a discesa, seleziona Crea nuova policy.
- Nel campo Nome policy, inserisci il nome della policy. L'ID della policy viene generato automaticamente in base al nome della policy.
- (Facoltativo) Fai clic su Modifica per modificare l'ID policy. Nel campo ID policy, puoi modificare il nome dell'ID policy.
- In Aggiungi regole, espandi la regola predefinita, Regola 1 o fai clic su Aggiungi una regola.
- Crea una o più regole per la tua UAP. Visualizza esempi di norme diverse.
- Per creare la policy, fai clic su Crea.
Dopo aver salvato la policy, si verifica quanto segue:
L'autorizzazione IAM
iap.resources.egressViaIAPviene concessa alle entità nella policy.La policy viene associata automaticamente al progetto selezionato.
Tutte le istanze di Agent Gateway in questo progetto possono applicare qualsiasi policy associata al progetto.
gcloud
Per creare un UAP in gcloud CLI, segui questi passaggi:
Crea un file delle policy in formato JSON. Le policy di accesso utente possono contenere una o più regole. Ogni regola controlla l'accesso di una o più entità dell'agente a una o più risorse di destinazione.
[ { "description": "RULE_DESCRIPTION", "effect": "RULE_EFFECT", "principals": [ AGENT_PRINCIPALS ], "operation": { "permissions": ["iap.googleapis.com/resources.egressViaIAP"] }, "conditions": { "iap.googleapis.com": { "expression": "CEL_EXPRESSION" } } } ]Sostituisci quanto segue:
-
RULE_DESCRIPTION: la descrizione della regola -
RULE_EFFECT: l'effetto della regola, che èALLOWoDENY -
AGENT_PRINCIPALS: le entità per l'identità dell'agente di origine. Le entità dell'agente possono essere un array di una o più entità singole o set di entità:-
Identità degli agenti integrate:
principal://TRUST_DOMAIN/AGENT_UNIQUE_IDENTIFIERLa struttura di
AGENT_UNIQUE_IDENTIFIERdipende dal servizio Google Cloud che ospita l'agente:- Agent Runtime (Reasoning Engine):
principal://agents.global.org-123456789012.system.id.goog/resources/aiplatform/projects/9876543210/locations/us-central1/reasoningEngines/my-agent - Gemini Enterprise (Discovery Engine):
principal://agents.global.org-123456789012.system.id.goog/resources/discoveryengine/projects/9876543210/locations/global/engines/my-engine/assistants/default_assistant/agents/default/core_assistant - Cloud Run (identità agente):
principal://agents.global.org-123456789012.system.id.goog/resources/run/projects/9876543210/locations/us-central1/services/my-cloud-run-agent
Sostituisci quanto segue:
-
TRUST_DOMAIN: il dominio di attendibilità del progetto o dell'organizzazione che contiene l'entità dell'agente (ad esempio,agents.global.org-ORGANIZATION_ID.system.id.googoagents.global.proj-PROJECT_NUMBER.system.id.goog) -
AGENT_UNIQUE_IDENTIFIER: il percorso URI della risorsa dell'istanza dell'agente
- Agent Runtime (Reasoning Engine):
-
Federazione delle identità per i workload (agenti personalizzati o esterni):
principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT, ad esempioprincipal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-agent-identity/subject/ns/default/sa/my-agentSostituisci quanto segue:
-
PROJECT_NUMBER: il numero del progetto che contiene il pool di identità del workload -
POOL_ID: l'ID del pool di identità del workload -
SUBJECT: l'identificatore del soggetto dell'entità dell'agente
-
-
Identità degli agenti integrate:
-
CONDITION: il parametro della condizione, formattato come segue:"conditions": { "iap.googleapis.com": { "expression": "CEL_EXPRESSION" } }Sostituisci
CEL_EXPRESSIONcon un'espressione condizionale, ad esempio:"destination.agent_registry.mcp_server.name == 'projects/corp-apim-prod/locations/us-east1/mcpServers/finance-data-service' && destination.agent_registry.mcp_server.tool.name == 'updateRecord'"
Questa espressione deve essere un'espressione CEL valida. Per consentire l'accesso, deve essere valutata come
true.
In tutte le policy in uscita dell'agente, devi impostare l'autorizzazione su
iap.resources.egressViaIAP.Per saperne di più, consulta Regole UAP e Policy di esempio.
-
Per creare l'UAP, esegui questo comando:
gcloud iam access-policies create POLICY_NAME \ --details-rules=POLICY_FILE \ --project=PROJECT_ID \ --location=globalSostituisci quanto segue:
-
POLICY_NAME: il nome della policy -
POLICY_FILE: il percorso del file di policy, ad esempio:my-policy.json PROJECT_ID: l'ID progetto che contiene la policy
-
API REST
Per creare e associare una policy utilizzando l'API REST, segui questi passaggi:
Salva i dettagli della policy in formato JSON in un file denominato
agent-access-policy.json:{ "details": { "rules": [ RULES ] } }Sostituisci
RULEScon una o più regole.Per creare la policy di accesso utente, invia una richiesta
POSTall'endpointaccessPolicies:curl -X POST \ "https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies?accessPolicyId=POLICY_NAME" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @agent-access-policy.json
Sostituisci quanto segue:
PROJECT_ID: l'ID progettoPOLICY_NAME: il nome della policy
Terraform
Per creare in modo dichiarativo una policy di accesso utente e associarla al progetto che ospita l'Agent Gateway, configura le risorse google_iam_project_access_policy e google_iam_projects_policy_binding:
resource "google_iam_project_access_policy" "agent_egress_policy" { project = "PROJECT_ID" location = "global" access_policy_id = "POLICY_NAME" display_name = "POLICY_DISPLAY_NAME" details { rules { effect = "ALLOW" description = "Allow runtime agents to call registered MCP tool" principals = [ "principalSet://agents.global.org-ORGANIZATION_ID.system.id.goog/attribute.platformContainer/aiplatform/projects/AGENT_RUNTIME_PROJECT_NUMBER" ] operation { permissions = ["iap.googleapis.com/resources.egressViaIAP"] } conditions { service = "iap.googleapis.com" expression = "destination.agent_registry.mcp_server.name == 'projects/PROJECT_ID/locations/REGION/mcpServers/MCP_SERVER_ID' && destination.agent_registry.mcp_server.tool.name == 'TOOL_NAME'" } } } } resource "google_iam_projects_policy_binding" "agent_egress_binding" { project = "PROJECT_ID" location = "global" policy_binding_id = "POLICY_BINDING_ID" policy_kind = "ACCESS" policy = "projects/PROJECT_ID/locations/global/accessPolicies/${google_iam_project_access_policy.agent_egress_policy.access_policy_id}" target { resource = "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID" } }
Sostituisci quanto segue:
PROJECT_ID: l'ID del progetto che ospita l'Agent Gateway e l'Agent RegistryPOLICY_NAME: l'ID della policy di accessoPOLICY_DISPLAY_NAME: una descrizione leggibile della policy di accessoORGANIZATION_ID: ID organizzazioneAGENT_RUNTIME_PROJECT_NUMBER: il numero di progetto del progetto che ospita i tuoi agentiREGION: la località del registryMCP_SERVER_ID: l'ID del server MCP registratoTOOL_NAME: il nome dello strumento MCP consentitoPOLICY_BINDING_ID: l'ID dell'associazione della policy del progetto
Crea una combinazione di UAP di autorizzazione e negazione
Puoi configurare una policy di accesso utente contenente regole di autorizzazione e di negazione utilizzando la console Google Cloud , gcloud CLI e l'API REST.
Console
Per creare una policy di accesso unificato con regole di autorizzazione e di negazione nella consoleGoogle Cloud , segui questi passaggi:
-
In Aggiungi regole, configura la regola di autorizzazione:
- In Descrizione regola, inserisci la descrizione della regola di autorizzazione.
- In Effetto regola, seleziona Consenti.
- Seleziona le entità dell'agente e le risorse di destinazione e aggiungi le condizioni CEL di autorizzazione.
- Per salvare la regola di autorizzazione, fai clic su Salva.
-
Per aggiungere la regola di negazione, fai clic su Aggiungi una regola:
- In Descrizione regola, inserisci la descrizione della regola di negazione.
- In Effetto regola, seleziona Nega.
- Seleziona le entità dell'agente e le risorse di destinazione e aggiungi le condizioni CEL di negazione.
- Per salvare la regola di negazione, fai clic su Salva.
- Per creare la policy, fai clic su Crea.
gcloud
Per creare un file UAP contenente regole di autorizzazione e di negazione, segui questi passaggi:
Salva quanto segue nel file delle policy in formato JSON:
[ { "description": "ALLOW_RULE_DESCRIPTION", "effect": "ALLOW", "principals": [ "AGENT_PRINCIPALS_ALLOW" ], "operation": { "permissions": ["iap.googleapis.com/resources.egressViaIAP"] }, "conditions": { "iap.googleapis.com": { "expression": "CEL_EXPRESSION_ALLOW" } } }, { "description": "DENY_RULE_DESCRIPTION", "effect": "DENY", "principals": [ "AGENT_PRINCIPALS_DENY" ], "operation": { "permissions": ["iap.googleapis.com/resources.egressViaIAP"] }, "conditions": { "iap.googleapis.com": { "expression": "CEL_EXPRESSION_DENY" } } } ]Sostituisci quanto segue:
ALLOW_RULE_DESCRIPTION: la descrizione della regola di autorizzazioneDENY_RULE_DESCRIPTION: la descrizione della regola di negazioneAGENT_PRINCIPALS_ALLOW: le entità dell'agente che vuoi consentire, ad esempioprincipal://agents.global.proj-PROJECT_NUMBER.system.id.goog/resources/aiplatform/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_NAMEAGENT_PRINCIPALS_DENY: le entità dell'agente che vuoi negare, ad esempioprincipal://agents.global.proj-PROJECT_NUMBER.system.id.goog/resources/aiplatform/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_NAMECEL_EXPRESSION_ALLOW: l'espressione CEL per la regola di autorizzazione, ad esempiodestination.agent_registry.mcp_server.name == "projects/my-project/locations/us-east1/mcpServers/finance-data-service" && destination.agent_registry.mcp_server.tool.name == "getStatements"CEL_EXPRESSION_DENY: l'espressione CEL per la regola di negazione, ad esempiodestination.agent_registry.mcp_server.name == "projects/my-project/locations/us-east1/mcpServers/finance-data-service" && destination.agent_registry.mcp_server.tool.name == "updateRecord"
Per creare l'UAP, esegui questo comando:
gcloud iam access-policies create POLICY_NAME \ --details-rules=POLICY_FILE \ --project=PROJECT_ID \ --location=globalSostituisci quanto segue:
-
POLICY_NAME: il nome della policy -
POLICY_FILE: il percorso del file di policy, ad esempio:my-policy.json PROJECT_ID: l'ID progetto che contiene la policy
-
Per attivare la policy, associa la UAP al tuo progetto.
API REST
Per creare una policy di accesso unificato contenente regole di autorizzazione e di negazione utilizzando l'API REST, segui questi passaggi:
Salva quanto segue in un file delle policy in formato JSON denominato
agent-access-policy.json:{ "details": { "rules": [ { "description": "ALLOW_RULE_DESCRIPTION", "effect": "ALLOW", "principals": [ "AGENT_PRINCIPALS_ALLOW" ], "operation": { "permissions": ["iap.googleapis.com/resources.egressViaIAP"] }, "conditions": { "iap.googleapis.com": { "expression": "CEL_EXPRESSION_ALLOW" } } }, { "description": "DENY_RULE_DESCRIPTION", "effect": "DENY", "principals": [ "AGENT_PRINCIPALS_DENY" ], "operation": { "permissions": ["iap.googleapis.com/resources.egressViaIAP"] }, "conditions": { "iap.googleapis.com": { "expression": "CEL_EXPRESSION_DENY" } } } ] } }Sostituisci quanto segue:
ALLOW_RULE_DESCRIPTION: la descrizione della regola di autorizzazioneDENY_RULE_DESCRIPTION: la descrizione della regola di negazioneAGENT_PRINCIPALS_ALLOW: le entità dell'agente che vuoi consentireAGENT_PRINCIPALS_DENY: le entità dell'agente che vuoi negareCEL_EXPRESSION_ALLOW: l'espressione CEL per la regola di autorizzazioneCEL_EXPRESSION_DENY: l'espressione CEL per la regola di negazione
Per creare la policy, esegui questo comando
curl:curl -X POST \ "https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies?accessPolicyId=POLICY_NAME" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @agent-access-policy.json
Sostituisci quanto segue:
PROJECT_ID: l'ID progettoPOLICY_NAME: il nome della policy
Per attivare la policy, associa la UAP al tuo progetto.
Associa un UAP a un progetto
Console
Dopo aver salvato la policy, si verifica quanto segue:
L'autorizzazione IAM
iap.resources.egressViaIAPviene concessa alle entità nella policy.La policy viene associata automaticamente al progetto selezionato.
Tutte le istanze di Agent Gateway in questo progetto possono applicare qualsiasi policy associata al progetto.
gcloud
Per associare la policy alla risorsa di destinazione, esegui questo comando:
gcloud iam policy-bindings create BINDING_NAME \
--policy="projects/PROJECT_ID/locations/global/accessPolicies/POLICY_NAME" \
--target-resource="TARGET_RESOURCE" \
--project=PROJECT_ID \
--location=global
Sostituisci quanto segue:
BINDING_NAME: il nome dell'associazione della policy-
PROJECT_ID: il tuo ID progetto Google Cloud -
POLICY_NAME: il nome della policy di accesso -
TARGET_RESOURCE: l'URI completo della risorsa per il progetto, formattato come segue://cloudresourcemanager.googleapis.com/projects/PROJECT_ID
API REST
Per associare la policy alla risorsa di destinazione, invia una richiesta POST all'endpoint policyBindings:
curl -X POST \
"https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/policyBindings?policyBindingId=BINDING_NAME" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"policy": "projects/PROJECT_ID/locations/global/accessPolicies/POLICY_NAME",
"target": {
"resource": "TARGET_RESOURCE"
}
}'
Sostituisci quanto segue:
PROJECT_ID: l'ID progettoBINDING_NAME: un nome per l'associazionePOLICY_NAME: il nome della policy creata in precedenza in questo documentoTARGET_RESOURCE: l'URI completo della risorsa per la destinazione dell'associazione, che può essere uno dei seguenti:- Progetto:
//cloudresourcemanager.googleapis.com/projects/PROJECT_ID - Agent Gateway:
//networkservices.googleapis.com/projects/PROJECT_ID/locations/LOCATION/agentGateways/GATEWAY_NAME
- Progetto:
Creare regole
Le policy di accesso utente possono contenere una o più regole. Ogni regola controlla l'accesso di una o più entità dell'agente a una o più risorse di destinazione.
Console
Nella console Google Cloud , modifica la tua UAP e segui questi passaggi:
- Modifica la regola esistente. Per aggiungere una regola, fai clic su Aggiungi una regola.
- Descrizione della regola: una descrizione leggibile di questa regola
-
Seleziona entità: le entità dell'agente di origine da cui la regola gestisce l'accesso. Le entità possono essere una delle seguenti:
- Tutti gli agenti in questo progetto: tutti gli agenti presenti nel progetto attuale.
- Singoli agenti: una o più entità specifiche che puoi selezionare. Gli agenti sono definiti dalle loro identità.
-
Set di entità personalizzato: uno o più set di entità che puoi specificare inserendo un identificatore di entità.
Gli identificatori delle entità devono iniziare con
principalSet://e fare riferimento alle identità degli agenti.
-
Effetto: l'effetto della regola, che può essere uno dei seguenti:
- Consenti: consente alle entità di accedere alle risorse
- Nega: non consente alle entità di accedere alle risorse
-
Seleziona risorse: uno o più tipi di risorse di destinazione che puoi selezionare. I tipi di risorse includono:
- Registry: tutte le risorse registrate in una località di Agent Registry
- Agente: un agente di destinazione registrato in Agent Registry
-
Server MCP: un server MCP di destinazione registrato in Agent Registry. Puoi utilizzare le condizioni per controllare ulteriormente l'accesso al server MCP.
- Endpoint: Un endpoint di destinazione registrato nel Registro degli agenti
-
Endpoint non registrato: un endpoint di destinazione non registrato in Agent Registry a cui si accede tramite un URL esterno. Puoi utilizzare le condizioni per controllare ulteriormente l'accesso degli endpoint non registrati.
gcloud
Le regole in un file in formato JSON hanno il seguente formato generale:
{
"description": "RULE_DESCRIPTION",
"effect": "EFFECT",
"principals": [
"AGENT_PRINCIPALS"
],
"operation": {
"permissions": ["iap.googleapis.com/resources.egressViaIAP"]
},
"conditions": {
"iap.googleapis.com": {
"expression": "CONDITION"
}
}
}
Il file delle policy contiene quanto segue:
RULE_DESCRIPTION: una descrizione leggibile di questa regolaEFFECT: l'effetto della regola, che può essere uno dei seguenti:ALLOWconsente all'entità di accedere alle risorseDENYnon consente all'entità di accedere alle risorseCONDITION: un'espressione CEL che restituisce in modo condizionale true o false. Se l'espressione restituisce true, la regola viene applicata. Le condizioni possono anche contenere riferimenti a risorse specifiche a cui le entità possono accedere:destination.agent_registry: la risorsa di destinazione è registrata in Agent Registry.destination.unregistered: la registrazione della risorsa di destinazione viene annullata. È accessibile tramite un URL. L'accesso può essere controllato nella condizione.
Per scoprire di più sulle condizioni, consulta Condizioni. Scopri di più sugli attributi delle condizioni in Attributi CEL.
API REST
Per creare e associare una policy utilizzando l'API REST, segui questi passaggi:
Salva i dettagli della policy in formato JSON in un file denominato
agent-access-policy.json:{ "details": { "rules": [ { "description": "RULE_DESCRIPTION", "effect": "EFFECT", "principals": [ "AGENT_PRINCIPALS" ], "operation": { "permissions": ["iap.googleapis.com/resources.egressViaIAP"] }, "conditions": { "iap.googleapis.com": { "expression": "CONDITION" } } } ] } }Aggiungi una o più regole al campo
details. In ogni regola, sostituisci quanto segue:RULE_DESCRIPTION: una o più regoleEFFECT: l'effetto della regola, che può essere uno dei seguenti:ALLOWconsente all'entità di accedere alle risorseDENYnon consente all'entità di accedere alle risorse
AGENT_PRINCIPALS: le entità dell'agente a cui vuoi concedere l'accesso.CONDITION: un'espressione CEL che restituisce in modo condizionale true o false. Se l'espressione restituisce il valore true, la regola viene applicata. Le condizioni possono anche contenere riferimenti a risorse specifiche a cui le entità possono accedere:destination.agent_registry: la risorsa di destinazione è registrata in Agent Registry.destination.unregistered: la registrazione della risorsa di destinazione viene annullata. È accessibile tramite un URL. L'accesso può essere controllato nella condizione.
Per scoprire di più sulle condizioni, consulta Condizioni. Scopri di più sugli attributi delle condizioni in Attributi CEL.
Per creare la policy di accesso utente, invia una richiesta
POSTall'endpointaccessPolicies:curl -X POST \ "https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies?accessPolicyId=POLICY_NAME" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @agent-access-policy.json
Sostituisci quanto segue:
PROJECT_ID: l'ID progettoPOLICY_NAME: il nome della policy
Per associare la policy alla risorsa di destinazione, invia una richiesta
POSTall'endpointpolicyBindings:curl -X POST \ "https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/policyBindings?policyBindingId=BINDING_NAME" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "policy": "projects/PROJECT_ID/locations/global/accessPolicies/POLICY_NAME", "target": { "resource": "TARGET_RESOURCE" } }'Sostituisci quanto segue:
PROJECT_ID: l'ID progettoBINDING_NAME: un nome per l'associazionePOLICY_NAME: il nome della policy creata in precedenza in questo documentoTARGET_RESOURCE: l'URI completo della risorsa per il progetto, formattato come segue://cloudresourcemanager.googleapis.com/projects/PROJECT_ID
Crea condizioni
Le condizioni sono espressioni CEL booleane che determinano l'accesso delle entità dell'agente a determinate risorse.
Console
Nella console Google Cloud puoi creare condizioni seguendo questi passaggi:
Nella sezione Seleziona risorse della regola, seleziona una delle seguenti schede:
Standard: nella scheda Standard, seleziona uno o più tipi di risorse, quindi utilizza il generatore di condizioni o l'editor delle condizioni per creare una condizione.
Personalizzata: nella scheda Personalizzata, puoi utilizzare l'editor delle condizioni per creare una condizione personalizzata in cui puoi utilizzare gli attributi CEL per specificare le risorse di destinazione e altre condizioni.
Per salvare la condizione insieme alla regola, fai clic su Salva.
gcloud
Nel file della policy, le condizioni determinano a quali risorse di destinazione possono accedere le entità dell'agente e in quali condizioni.
Le condizioni sono definite nel campo conditions di una regola. Ad esempio:
"conditions": {
"iap.googleapis.com": {
"expression": "destination.agent_registry.mcp_server.name == 'projects/my-project/locations/us-east1/mcpServers/finance-data-service' && destination.agent_registry.mcp_server.tool.name == 'getStatements'"
}
}
Per saperne di più, consulta Esempi di policy.
API REST
Nel file della policy, le condizioni determinano a quali risorse di destinazione possono accedere le entità dell'agente e in quali condizioni.
Le condizioni sono definite nel campo conditions di una regola. Ad esempio:
"conditions": {
"iap.googleapis.com": {
"expression": "destination.agent_registry.mcp_server.name == 'projects/my-project/locations/us-east1/mcpServers/finance-data-service' && destination.agent_registry.mcp_server.tool.name == 'getStatements'"
}
}
Per saperne di più, consulta Esempi di policy.
Testa e verifica le UAP
Dopo aver creato e associato le policy, verifica che l'agente possa accedere alle risorse seguendo questi passaggi:
Attiva le azioni degli agenti per testare le regole nella tua UAP. Assicurati di verificare che le regole con effetto di autorizzazione e quelle con effetto di negazione funzionino come previsto.
Esamina gli audit log di Cloud per le voci IAP filtrando i log con la seguente query:
protoPayload.metadata.iapPolicyVersion="v2" protoPayload.serviceName="iap.googleapis.com" resource.labels.project_id="PROJECT_ID"
Sostituisci
PROJECT_IDcon l'ID progetto.Le voci di log mostrano la decisione di accesso, l'entità, la destinazione e i dettagli della valutazione dell'espressione CEL. Durante i test, ti consigliamo di utilizzare la modalità
DRY_RUNin modo che le violazioni delle policy non blocchino l'accesso.Modifica le regole delle policy in base ai risultati della valutazione negli audit log.
Dopo aver verificato che le regole funzionano come previsto, aggiorna i metadati dell'estensione dei servizi del gateway e imposta
iamEnforcementModesu"ENFORCE".
Criteri di esempio
Di seguito sono riportati alcuni esempi di policy in uscita per le interazioni con l'entità dell'agente:
- Da agente a registry
- Da agente ad agente
- Da agente a server MCP
- Da agente a endpoint
- Da agente a endpoint non registrato
Per istruzioni sulla creazione e sull'associazione delle policy, consulta Crea UAP.
Crea un UAP da agente a registry
Una policy da agente a registry consente al tuo agente di accedere a tutti gli agenti, i server MCP e gli endpoint in una posizione specifica di Agent Registry in un progetto.
Console
Per creare una policy da agente a registry nella console Google Cloud , segui questi passaggi:
-
Nella console Google Cloud , vai alla pagina Policy:
- Nel selettore dei progetti, seleziona il progetto che contiene gli Agent Gateway che utilizzeranno l'UAP.
-
In Dettagli policy, seleziona una policy o creane una nuova. Se stai creando una nuova policy, inserisci un nome, ad esempio
allow-registry-access. -
In Aggiungi regole, configura la regola:
- Descrizione della regola:
Allow all agents in project to access us-central1 registry - Effetto della regola: Consenti
- Seleziona entità: in Set di entità, seleziona Tutti gli agenti in questo progetto.
- Seleziona risorse: seleziona Standard > Registry e seleziona
us-central1.
- Descrizione della regola:
- Per salvare la regola, fai clic su Salva.
- Per creare la policy, fai clic su Crea.
Per scoprire come creare e associare le policy, consulta Crea policy di accesso uniforme IAM.
gcloud
La seguente policy di esempio mostra una regola UAP che consente a tutti gli agenti di un progetto di accedere a tutte le risorse di destinazione in un registry specifico:
{
[
{
"description": "Allow all agents in project 9876543210 to access all destination resources in the us-central1 registry",
"effect": "ALLOW",
"principals": [
"principalSet://agents.global.org-123456789012.system.id.goog/attribute.platformContainer/aiplatform/projects/9876543210"
],
"operation": {
"permissions": ["iap.googleapis.com/resources.egressViaIAP"]
},
"conditions": {
"iap.googleapis.com": {
"expression": "destination.is_registered == true && destination.agent_registry.location == 'us-central1'"
}
}
}
]
}
Per attivare la policy, associa la UAP al tuo progetto.
API REST
Per creare un UAP che consenta a tutti gli agenti di un progetto di accedere a tutte le risorse di destinazione in un registry specifico, segui questi passaggi:
Salva quanto segue in un file delle policy in formato JSON denominato
agent-access-policy.json:{ "details": { "rules": [ { "description": "Allow all agents in project 9876543210 to access all destination resources in the us-central1 registry", "effect": "ALLOW", "principals": [ "principalSet://agents.global.org-123456789012.system.id.goog/attribute.platformContainer/aiplatform/projects/9876543210" ], "operation": { "permissions": ["iap.googleapis.com/resources.egressViaIAP"] }, "conditions": { "iap.googleapis.com": { "expression": "destination.is_registered == true && destination.agent_registry.location == 'us-central1'" } } } ] } }Per creare la policy, esegui questo comando
curl:curl -X POST \ "https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies?accessPolicyId=POLICY_NAME" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @agent-access-policy.json
Sostituisci quanto segue:
PROJECT_ID: l'ID progettoPOLICY_NAME: il nome della policy
Per attivare la policy, associa la UAP al tuo progetto.
Attributi CEL da agente a registry
La tabella seguente descrive gli attributi CEL che puoi utilizzare in una condizione della regola da agente a registry:
| Attributo | Dettagli | ||||||
|---|---|---|---|---|---|---|---|
destination.is_registered |
|
||||||
destination.agent_registry.resource_type |
|
||||||
destination.agent_registry.location |
|
||||||
destination.agent_registry.project_id |
|
Cuga un UAP in uscita da agente ad agente
Una policy da agente ad agente consente a un agente di origine di richiamare un agente di destinazione registrato in Agent Registry.
Console
Per creare una policy da agente ad agente nella console Google Cloud , segui questi passaggi:
-
Nella console Google Cloud , vai alla pagina Policy:
- Nel selettore dei progetti, seleziona il progetto che contiene gli Agent Gateway che utilizzeranno l'UAP.
-
In Dettagli policy, seleziona una policy o creane una nuova. Se stai creando una nuova policy, inserisci un nome, ad esempio
allow-orchestrator-to-support-agent. -
In Aggiungi regole, configura la regola:
- Descrizione della regola:
Allow orchestrator agent to invoke customer-support agent - Effetto della regola: Consenti
- Seleziona entità: seleziona Agenti specifici e seleziona
orchestrator-agent. - Seleziona risorse: seleziona Standard > Agente, quindi seleziona
customer-support-agent.
- Descrizione della regola:
- Per salvare la regola, fai clic su Salva.
- Per creare la policy, fai clic su Crea.
Per attivare la policy, associa la UAP al tuo progetto.
gcloud
La seguente policy di esempio mostra una regola di autorizzazione IAM che consente a un agente orchestratore di richiamare un subagente specifico registrato nel Registro degli agenti:
{
[
{
"description": "Allow orchestrator agent to invoke customer-support agent",
"effect": "ALLOW",
"principals": [
"principal://agents.global.org-123456789012.system.id.goog/resources/aiplatform/projects/9876543210/locations/us-central1/reasoningEngines/orchestrator-agent"
],
"operation": {
"permissions": ["iap.googleapis.com/resources.egressViaIAP"]
},
"conditions": {
"iap.googleapis.com": {
"expression": "destination.agent_registry.agent.name == 'projects/9876543210/locations/us-central1/agents/customer-support-agent'"
}
}
}
]
}
Per creare e associare la policy utilizzando gcloud CLI, consulta Crea policy di accesso utente IAM.
API REST
Per creare una policy IAM con una regola di autorizzazione che consenta a un agente orchestratore di richiamare un subagente specifico registrato nel registro degli agenti, segui questi passaggi:
Salva quanto segue in un file delle policy in formato JSON denominato
agent-access-policy.json:{ "details": { "rules": [ { "description": "Allow orchestrator agent to invoke customer-support agent", "effect": "ALLOW", "principals": [ "principal://agents.global.org-123456789012.system.id.goog/resources/aiplatform/projects/9876543210/locations/us-central1/reasoningEngines/orchestrator-agent" ], "operation": { "permissions": ["iap.googleapis.com/resources.egressViaIAP"] }, "conditions": { "iap.googleapis.com": { "expression": "destination.agent_registry.agent.name == 'projects/9876543210/locations/us-central1/agents/customer-support-agent'" } } } ] } }Per creare la policy, esegui questo comando
curl:curl -X POST \ "https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies?accessPolicyId=POLICY_NAME" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @agent-access-policy.json
Sostituisci quanto segue:
PROJECT_ID: l'ID progettoPOLICY_NAME: il nome della policy
Per attivare la policy, associa la UAP al tuo progetto.
Attributi CEL da agente ad agente
La tabella seguente descrive gli attributi CEL che puoi utilizzare in una condizione della policy da agente ad agente:
| Attributo | Dettagli | ||||||
|---|---|---|---|---|---|---|---|
destination.agent_registry.agent.name |
|
Crea un criterio di accesso utente (UAP) in uscita da agente a server MCP
Una policy di traffico in uscita da agente a server MCP controlla l'accesso di un agente a strumenti o annotazioni specifici su un server Model Context Protocol (MCP).
Console
Per creare una policy dei server agent-to-MCP nella console Google Cloud , segui questi passaggi:
-
Nella console Google Cloud , vai alla pagina Policy:
- Nel selettore dei progetti, seleziona il progetto che contiene gli Agent Gateway che utilizzeranno l'UAP.
-
In Dettagli policy, seleziona una policy o creane una nuova. Se stai creando una nuova policy, inserisci un nome, ad esempio
allow-github-read-only. -
In Aggiungi regole, configura la regola:
- Descrizione della regola:
Allow read-only access to GitHubTool on MCP server - Effetto della regola: Consenti
- Seleziona entità: seleziona l'entità dell'agente, ad esempio
my-ae-agent. - Seleziona risorse: seleziona la scheda Personalizzato.
-
Condizioni: nell'editor condizioni, inserisci:
destination.agent_registry.mcp_server.tool.name == 'GitHubTool' && destination.agent_registry.mcp_server.tool.annotations.read_only_hint == true
- Descrizione della regola:
- Per salvare la regola, fai clic su Salva.
- Per creare la policy, fai clic su Crea.
Per attivare la policy, associa la UAP al tuo progetto.
gcloud
La seguente policy di esempio mostra una regola di autorizzazione IAM che consente a un'entità dell'agente formattata per la federazione delle identità per i workload l'accesso di sola lettura a uno strumento denominato GitHubTool:
{
[
{
"description": "Allow read-only access to GitHubTool on MCP server",
"effect": "ALLOW",
"principals": [
"principal://iam.googleapis.com/projects/9876543210/locations/global/workloadIdentityPools/POOL_ID/subject/ns/default/sa/my-ae-agent"
],
"operation": {
"permissions": ["iap.googleapis.com/resources.egressViaIAP"]
},
"conditions": {
"iap.googleapis.com": {
"expression": "destination.agent_registry.mcp_server.tool.name == 'GitHubTool' && destination.agent_registry.mcp_server.tool.annotations.read_only_hint == true"
}
}
}
]
}
Sostituisci quanto segue:
POOL_ID: l'ID del pool di identità del workload. A seconda del tipo di pool, formatta l'ID come segue:- Pool gestito da Google:
PROJECT_ID.svc.id.goog - Pool autogestito:
POOL_NAME.global.POOL_HOST_PROJECT_NUMBER.workload.id.goog
Per creare e associare la policy utilizzando gcloud CLI, consulta Crea policy di accesso utente IAM.
API REST
Per creare una policy di accesso IAM che consenta a un agente che utilizza la federazione delle identità per i workload l'accesso di sola lettura a uno strumento denominato GitHubTool, segui questi passaggi:
Salva quanto segue in un file delle policy in formato JSON denominato
agent-access-policy.json:{ "details": { "rules": [ { "description": "Allow read-only access to GitHubTool on MCP server", "effect": "ALLOW", "principals": [ "principal://iam.googleapis.com/projects/9876543210/locations/global/workloadIdentityPools/POOL_ID/subject/ns/default/sa/my-ae-agent" ], "operation": { "permissions": ["iap.googleapis.com/resources.egressViaIAP"] }, "conditions": { "iap.googleapis.com": { "expression": "destination.agent_registry.mcp_server.tool.name == 'GitHubTool' && destination.agent_registry.mcp_server.tool.annotations.read_only_hint == true" } } } ] } }Per creare la policy, esegui questo comando
curl:curl -X POST \ "https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies?accessPolicyId=POLICY_NAME" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @agent-access-policy.json
Sostituisci quanto segue:
POOL_ID: l'ID del pool di identità del workload. A seconda del tipo di pool, formatta l'ID come segue:- Pool gestito da Google:
PROJECT_ID.svc.id.goog - Pool autogestito:
POOL_NAME.global.POOL_HOST_PROJECT_NUMBER.workload.id.goog PROJECT_ID: l'ID progettoPOLICY_NAME: il nome della policy
Per creare e associare la policy utilizzando l'API REST, consulta Crea policy di accesso utente.
Attributi CEL da agente a MCP
La tabella seguente descrive gli attributi CEL che puoi utilizzare in una condizione della policy del server da agente a MCP:
| Attributo | Dettagli | ||||||
|---|---|---|---|---|---|---|---|
destination.agent_registry.mcp_server.name |
|
||||||
destination.agent_registry.mcp_server.method |
|
||||||
destination.agent_registry.mcp_server.tool.name |
|
||||||
destination.agent_registry.mcp_server.tool.annotations.read_only_hint
|
|
||||||
destination.agent_registry.mcp_server.tool.annotations.destructive_hint
|
|
||||||
destination.agent_registry.mcp_server.tool.annotations.idempotent_hint
|
|
||||||
destination.agent_registry.mcp_server.tool.annotations.open_world_hint
|
|
||||||
destination.agent_registry.mcp_server.prompt.name |
|
||||||
destination.agent_registry.mcp_server.resource.name |
|
Crea un criterio di accesso utente (UAP) in uscita da agente a endpoint
Una policy di traffico in uscita da agente a endpoint consente a un agente di accedere a un endpoint di servizio registrato in Agent Registry.
Console
Per creare una policy da agente a endpoint nella console Google Cloud , segui questi passaggi:
-
Nella console Google Cloud , vai alla pagina Policy:
- Nel selettore dei progetti, seleziona il progetto che contiene gli Agent Gateway che utilizzeranno l'UAP.
-
In Dettagli policy, seleziona una policy o creane una nuova. Se stai creando una nuova policy, inserisci un nome, ad esempio
allow-translator-to-endpoint. -
In Aggiungi regole, configura la regola:
-
Descrizione della regola:
Allow translator agent to access translation endpoint - Effetto della regola: Consenti
-
Seleziona entità: seleziona Agenti specifici e seleziona
translator-agent. - Seleziona risorse: seleziona la scheda Personalizzato.
-
Condizioni: nell'editor condizioni, inserisci:
destination.agent_registry.endpoint.name == 'projects/9876543210/locations/us-central1/endpoints/translation-service'
-
Descrizione della regola:
- Per salvare la regola, fai clic su Salva.
- Per creare la policy, fai clic su Crea.
Per attivare la policy, associa la UAP al tuo progetto.
gcloud
L'esempio seguente mostra una policy di autorizzazione IAM che consente a un agente di accedere a un endpoint di servizio registrato:
[
{
"description": "Allow translator agent access to registered translation endpoint",
"effect": "ALLOW",
"principals": [
"principal://agents.global.org-123456789012.system.id.goog/resources/aiplatform/projects/9876543210/locations/us-central1/reasoningEngines/translator-agent"
],
"operation": {
"permissions": ["iap.googleapis.com/resources.egressViaIAP"]
},
"conditions": {
"iap.googleapis.com": {
"expression": "destination.agent_registry.endpoint.name == 'projects/9876543210/locations/us-central1/endpoints/translation-service'"
}
}
}
]
Per attivare la policy, associa la UAP al tuo progetto.
API REST
Per creare una policy di autorizzazione IAM che consenta a un agente di accedere a un endpoint di servizio registrato, segui questi passaggi:
Salva quanto segue in un file delle policy in formato JSON denominato
agent-access-policy.json:{ "details": { "rules": [ { "description": "Allow translator agent access to registered translation endpoint", "effect": "ALLOW", "principals": [ "principal://agents.global.org-123456789012.system.id.goog/resources/aiplatform/projects/9876543210/locations/us-central1/reasoningEngines/translator-agent" ], "operation": { "permissions": ["iap.googleapis.com/resources.egressViaIAP"] }, "conditions": { "iap.googleapis.com": { "expression": "destination.agent_registry.endpoint.name == 'projects/9876543210/locations/us-central1/endpoints/translation-service'" } } } ] } }Per creare la policy, esegui questo comando
curl:curl -X POST \ "https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies?accessPolicyId=POLICY_NAME" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @agent-access-policy.json
Sostituisci quanto segue:
PROJECT_ID: l'ID progettoPOLICY_NAME: il nome della policy
Per attivare la policy, associa la UAP al tuo progetto.
Attributi CEL da agente a endpoint
La tabella seguente descrive gli attributi CEL che puoi utilizzare in una condizione della policy da agente a endpoint:
| Attributo | Dettagli | ||||||
|---|---|---|---|---|---|---|---|
destination.agent_registry.endpoint.name |
|
Crea un criterio di accesso utente (UAP) da agente a endpoint non registrato
Una policy da agente a endpoint non registrato consente a un agente di accedere ad API ed endpoint esterni di terze parti non registrati in Agent Registry.
Console
Per creare una policy per endpoint da agente a non registrato nella consoleGoogle Cloud , segui questi passaggi:
-
Nella console Google Cloud , vai alla pagina Policy:
- Nel selettore dei progetti, seleziona il progetto che contiene gli Agent Gateway che utilizzeranno l'UAP.
-
In Dettagli policy, seleziona una policy o creane una nuova. Se stai creando una nuova policy, inserisci un nome, ad esempio
allow-ocr-api-access. -
In Aggiungi regole, configura la regola:
- Descrizione della regola:
Allow POST access to external OCR service - Effetto della regola: Consenti
- Seleziona entità: seleziona l'entità dell'agente (ad esempio
my-ae-agent). - Seleziona risorse: seleziona Standard > Endpoint non registrato.
- Condizioni: fai clic sulla scheda Personalizzate.
- Nell'editor condizioni, inserisci:
destination.unregistered.host.endsWith('example-ocr.com') && destination.unregistered.path.startsWith('/v2/process') && destination.unregistered.method == 'POST'
- Descrizione della regola:
- Per salvare la regola, fai clic su Salva.
- Per creare la policy, fai clic su Crea.
Per attivare la policy, associa la UAP al tuo progetto.
gcloud
L'esempio seguente mostra una UAP che consente a un agente di accedere a un endpoint non registrato con un percorso che inizia con /v2/process e termina con example-ocr.com:
[
{
"description": "Allow POST access to unregistered OCR endpoint",
"effect": "ALLOW",
"principals": [
"principal://iam.googleapis.com/projects/9876543210/locations/global/workloadIdentityPools/POOL_ID/subject/ns/default/sa/my-ae-agent"
],
"operation": {
"permissions": ["iap.googleapis.com/resources.egressViaIAP"]
},
"conditions": {
"iap.googleapis.com": {
"expression": "destination.unregistered.host.endsWith('example-ocr.com') && destination.unregistered.path.startsWith('/v2/process') && destination.unregistered.method == 'POST'"
}
}
}
]
Sostituisci quanto segue:
POOL_ID: l'ID del pool di identità del workload. A seconda del tipo di pool, formatta l'ID come segue:- Pool gestito da Google:
PROJECT_ID.svc.id.goog - Pool autogestito:
POOL_NAME.global.POOL_HOST_PROJECT_NUMBER.workload.id.goog
Per attivare la policy, associa la UAP al tuo progetto.
API REST
Per creare un UAP che consenta a un agente di accedere a un endpoint non registrato con un percorso che inizia con /v2/process e termina con example-ocr.com, segui questi passaggi:
Salva quanto segue in un file delle policy in formato JSON denominato
agent-access-policy.json:{ "details": { "rules": [ { "description": "Allow POST access to unregistered OCR endpoint", "effect": "ALLOW", "principals": [ "principal://iam.googleapis.com/projects/9876543210/locations/global/workloadIdentityPools/POOL_ID/subject/ns/default/sa/my-ae-agent" ], "operation": { "permissions": ["iap.googleapis.com/resources.egressViaIAP"] }, "conditions": { "iap.googleapis.com": { "expression": "destination.unregistered.host.endsWith('example-ocr.com') && destination.unregistered.path.startsWith('/v2/process') && destination.unregistered.method == 'POST'" } } } ] } }Per creare la policy, esegui questo comando
curl:curl -X POST \ "https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies?accessPolicyId=POLICY_NAME" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @agent-access-policy.json
Sostituisci quanto segue:
POOL_ID: l'ID del pool di identità del workload. A seconda del tipo di pool, formatta l'ID come segue:- Pool gestito da Google:
PROJECT_ID.svc.id.goog - Pool autogestito:
POOL_NAME.global.POOL_HOST_PROJECT_NUMBER.workload.id.goog PROJECT_ID: l'ID progettoPOLICY_NAME: il nome della policy
Per attivare la policy, associa la UAP al tuo progetto.
Attributi CEL per endpoint non registrati da agente
La tabella seguente descrive gli attributi CEL che puoi utilizzare in una condizione della policy da agente a endpoint non registrato:
| Attributo | Dettagli | ||||||
|---|---|---|---|---|---|---|---|
destination.unregistered.host |
|
||||||
destination.unregistered.path |
|
||||||
destination.unregistered.method |
|
Passaggi successivi
- Attributi CEL per le policy di accesso degli utenti
- Gestisci i criteri di accesso degli utenti IAM
- Risolvi i problemi relativi alle policy di accesso degli utenti IAM
Configura le norme relative ai contenuti e le norme aziendali
Scopri come configurare le norme relative ai contenuti e alle attività.