Questa pagina descrive come instradare il traffico di Agent Runtime tramite Agent Gateway. Agent Gateway è un componente centrale di rete e sicurezza dell'ecosistema della piattaforma agentica Gemini Enterprise. Fornisce una connettività sicura e controllata per tutte le interazioni agentiche, sia tra utenti e agenti, agenti e strumenti o tra gli agenti stessi.
Prima di iniziare
Assicurati di avere familiarità con il deployment degli agenti su Agent Runtime.
Scopri di più su Agent Gateway. Puoi utilizzare Agent Gateway in modalità Da agente a ovunque (in uscita) per proteggere e controllare tutte le comunicazioni in uscita con il traffico in uscita verso strumenti, modelli, API e altri agenti. Utilizza il gateway in modalità Da client ad agente (in entrata) per controllare quali client possono accedere ai tuoi agenti. Il gateway ti consente di scegliere quali policy IAP e modelli di Model Armor devono essere applicati a queste interazioni.
Crea un progetto di test dedicato project per provare questo flusso di lavoro. Evita di utilizzare progetti destinati anche ad altri carichi di lavoro critici.
Limitazioni
- Per un determinato progetto e una determinata regione, può esistere una sola istanza di Agent Gateway in modalità Da agente a ovunque (in uscita) e una sola istanza in modalità Da client ad agente (in entrata). Tutti gli agenti di Agent Runtime all'interno dello stesso progetto e della stessa regione configurati per utilizzare Agent Gateway devono utilizzare queste istanze di gateway specifiche.
- Il servizio di rilevamento delle minacce di Agent Engine di Security Command Center non è disponibile quando Agent Gateway è abilitato per un agente.
- Non puoi annullare l'associazione di un agente Runtime a una risorsa Agent Gateway. Per questo motivo, assicurati di utilizzare un progetto di test dedicato.
Autorizzazioni obbligatorie
Devi concedere all'agente di servizio del motore di ragionamento l'autorizzazione a utilizzare la risorsa Agent Gateway che creerai.
Se non esiste già, crea l'account di servizio. In genere, l'account di servizio del motore di ragionamento viene creato automaticamente quando utilizzi per la prima volta il motore di ragionamento.
gcloud beta services identity create --service=aiplatform.googleapis.com --project=PROJECT_ID
Sostituisci
PROJECT_IDcon l'ID progetto.Per utilizzare il gateway, devi disporre delle seguenti autorizzazioni:
roles/networkservices.agentGateways.getroles/networkservices.agentGateways.useroles/networkservices.operations.get
Crea un ruolo personalizzato con tutte queste autorizzazioni e poi concedi il ruolo all'account di servizio del motore di ragionamento.
gcloud alpha iam roles create AGENT_GATEWAY_ROLE_NAME \ --project=AGENT_PROJECT_ID \ --title="Custom Agent Gateway access role" \ --description="Custom role for Agent Gateway" \ --permissions="networkservices.operations.get,networkservices.agentGateways.get,networkservices.agentGateways.use"
Sostituisci quanto segue:
AGENT_GATEWAY_ROLE_NAME: il nome del ruolo personalizzato.AGENT_PROJECT_ID: l'ID progetto del progetto in cui intendi eseguire il deployment dell'agente.
Assegna il ruolo all'account di servizio di Agent Runtime.
gcloud alpha projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-aiplatform-re.iam.gserviceaccount.com" \ --role="projects/PROJECT_ID/roles/AGENT_GATEWAY_ROLE_NAME"Sostituisci quanto segue:
PROJECT_ID: il tuo ID progetto.PROJECT_NUMBER: il tuo numero di progetto.AGENT_GATEWAY_ROLE_NAME: il nome del ruolo personalizzato che hai creato.
Inoltre, se intendi utilizzare i template di Model Armor per l'autorizzazione e questi template si trovano in un progetto diverso dall'agente (e dal gateway), devi concedere le seguenti autorizzazioni sia al service agent del motore di ragionamento sia all'account di servizio di Agent Gateway:
gcloud alpha projects add-iam-policy-binding AGENT_PROJECT_ID \ --member=serviceAccount:service-AGENT_PROJECT_NUMBER@gcp-sa-aiplatform-re.iam.gserviceaccount.com \ --role=roles/modelarmor.calloutUser gcloud alpha projects add-iam-policy-binding MODEL_ARMOR_PROJECT_ID \ --member=serviceAccount:service-AGENT_PROJECT_NUMBER@gcp-sa-aiplatform-re.iam.gserviceaccount.com \ --role=roles/modelarmor.user gcloud alpha projects add-iam-policy-binding AGENT_PROJECT_ID \ --member=serviceAccount:service-AGENT_PROJECT_NUMBER@gcp-sa-dep.iam.gserviceaccount.com \ --role=roles/modelarmor.calloutUser gcloud alpha projects add-iam-policy-binding MODEL_ARMOR_PROJECT_ID \ --member=serviceAccount:service-AGENT_PROJECT_NUMBER@gcp-sa-dep.iam.gserviceaccount.com \ --role=roles/modelarmor.userSostituisci quanto segue:
AGENT_PROJECT_ID: l'ID progetto del progetto in cui intendi eseguire il deployment dell'agente.AGENT_PROJECT_NUMBER: il numero di progetto del progetto in cui intendi eseguire il deployment dell'agente.MODEL_ARMOR_PROJECT_ID: l'ID progetto del progetto in cui vengono creati i modelli di Model Armor.
Instradare il traffico di Agent Runtime tramite Agent Gateway
Per instradare il traffico di Agent Runtime tramite Agent Gateway:
Crea una risorsa Agent Gateway e collega le policy di autorizzazione in base alle esigenze. Puoi creare un gateway in modalità Da agente a ovunque (in uscita) o Da client ad agente (in entrata). Tieni presente che l'agente e il gateway devono essere creati nello stesso progetto e nella stessa regione. Per istruzioni, consulta Configurare Agent Gateway.
Assicurati che il gateway sia configurato in modo da soddisfare le esigenze del deployment. Ad esempio, se l'agente richiede l'accesso LLM, configura il gateway per consentire questo accesso per evitare potenziali errori di deployment di Agent Runtime.
Specifica la risorsa gateway durante il deployment dell'agente. Ad esempio, per eseguire il deployment dell'agente su Agent Runtime, utilizza
client.agent_engines.createper trasmettere l'oggettolocal_agentinsieme a eventuali configurazionifacoltative.remote_agent = client.agent_engines.create( agent=local_agent, config={ "agent_gateway_config": { "agent_to_anywhere_config": {"agent_gateway": AGENT_GATEWAY_TO_ANYWHERE_RESOURCE_ID}, # "client_to_agent_config": {"agent_gateway": AGENT_GATEWAY_CLIENT_TO_AGENT_RESOURCE_ID} }, "identity_type": types.IdentityType.AGENT_IDENTITY, # Other optional configuration ... # "requirements": requirements, # "gcs_dir_name": gcs_dir_name, }, )
Sostituisci
AGENT_GATEWAY_TO_ANYWHERE_RESOURCE_IDcon il percorso completo di Agent Gateway creato in modalità Da agente a ovunque (in uscita). Ad esempio,projects/PROJECT_NAME/locations/REGION/agentGateways/AGENT_GATEWAY_NAME.Se hai creato un gateway in modalità Da client ad agente (in entrata), utilizza il campo
client_to_agent_confige sostituisciAGENT_GATEWAY_CLIENT_TO_AGENT_RESOURCE_IDcon il percorso completo di Agent Gateway creato per l'ingresso.Registra l'agente con l'istanza di Agent Registry nello stesso progetto e nella stessa regione dell'agente e del gateway. Per ulteriori informazioni, consulta Registrare un agente.
Limitare Agent Runtime ai gateway dell'agente approvati
Puoi creare vincoli personalizzati delle policy dell'organizzazione per definire l'insieme di risorse Agent Gateway idonee che possono essere utilizzate durante il deployment degli agenti.
Crea vincoli personalizzati delle policy dell'organizzazione
Questo esempio crea vincoli personalizzati che consentono il traffico solo da e verso un elenco di gateway pre-approvati.
Da agente a ovunque
Per definire un vincolo personalizzato per la modalità Da agente a ovunque (in uscita), crea un file denominato
constraint-agent-gateway-egress.yaml.Nell'esempio seguente, il campo
conditionspecifica che l'operazione è consentita solo se viene specificata una risorsa Agent Gateway (il campo è presente e non è vuoto) e se il gateway specificato è nell'elenco pre-approvato.name: organizations/ORGANIZATION_ID/customConstraints/custom.allowlistedEgressAgentGatewaysForAgentEngine resource_types: - aiplatform.googleapis.com/ReasoningEngine condition: >- has(resource.spec.deploymentSpec.agentGatewayConfig.agentToAnywhereConfig.agentGateway) && resource.spec.deploymentSpec.agentGatewayConfig.agentToAnywhereConfig.agentGateway != '' && (resource.spec.deploymentSpec.agentGatewayConfig.agentToAnywhereConfig.agentGateway in [ 'projects/PROJECT_ID_1/locations/REGION/agentGateways/AGENT_GATEWAY_NAME_1', 'projects/PROJECT_ID_2/locations/REGION/agentGateways/AGENT_GATEWAY_NAME_2', ]) method_types: - CREATE - UPDATE action_type: ALLOW display_name: Restrict Reasoning Engine Egress to Approved Agent Gateways description: Reasoning Engines can only be bound to a pre-approved list of Agent Gateway instances. Binding to any other gateway is denied.Sostituisci quanto segue:
- ORGANIZATION_ID: l'ID organizzazione.
- PROJECT_ID: il tuo ID progetto.
- REGION: la regione in cui è stato creato il gateway.
- AGENT_GATEWAY_NAME: il nome del gateway.
Applica il vincolo personalizzato.
gcloud alpha org-policies set-custom-constraint EGRESS_CONSTRAINT_PATH
Sostituisci EGRESS_CONSTRAINT_PATH con il percorso completo del file del vincolo personalizzato creato nel passaggio precedente.
Crea la policy dell'organizzazione per applicare il vincolo. Per definire la policy dell'organizzazione, crea un file YAML della policy denominato
policy-agent-gateway-egress.yaml. In questo esempio applichiamo questo vincolo a livello di progetto, ma puoi impostarlo anche a livello di organizzazione o cartella.name: projects/PROJECT_ID/policies/custom.allowlistedEgressAgentGatewaysForAgentEngine spec: rules: - enforce: trueSostituisci
PROJECT_IDcon l'ID progetto.Applica la policy dell'organizzazione.
gcloud alpha org-policies set-policy EGRESS_POLICY_PATH
Sostituisci EGRESS_POLICY_PATH con il percorso completo del file YAML della policy dell'organizzazione creato nel passaggio precedente. L'applicazione della policy può richiedere fino a 15 minuti.
Da client ad agente
Per definire un vincolo personalizzato per la modalità Da client ad agente (in entrata), crea un file denominato
constraint-agent-gateway-ingress.yaml.Nell'esempio seguente, il campo
conditionspecifica che l'operazione è consentita solo se viene specificata una risorsa Agent Gateway (il campo è presente e non è vuoto) e se il gateway specificato è nell'elenco pre-approvato.name: organizations/ORGANIZATION_ID/customConstraints/custom.allowlistedIngressAgentGatewaysForAgentEngine resource_types: - aiplatform.googleapis.com/ReasoningEngine condition: >- has(resource.spec.deploymentSpec.agentGatewayConfig.clientToAgentConfig.agentGateway) && resource.spec.deploymentSpec.agentGatewayConfig.clientToAgentConfig.agentGateway != '' && (resource.spec.deploymentSpec.agentGatewayConfig.clientToAgentConfig.agentGateway in [ 'projects/PROJECT_ID_1/locations/REGION/agentGateways/AGENT_GATEWAY_NAME_1', 'projects/PROJECT_ID_2/locations/REGION/agentGateways/AGENT_GATEWAY_NAME_2', ]) method_types: - CREATE - UPDATE action_type: ALLOW display_name: Restrict Reasoning Engine Ingress to Approved Agent Gateways description: Reasoning Engines can only be bound to a pre-approved list of Agent Gateway instances. Binding to any other gateway is denied.Sostituisci quanto segue:
- ORGANIZATION_ID: l'ID organizzazione.
- PROJECT_ID: il tuo ID progetto.
- REGION: la regione in cui è stato creato il gateway.
- AGENT_GATEWAY_NAME: il nome del gateway.
Applica il vincolo personalizzato.
gcloud alpha org-policies set-custom-constraint INGRESS_CONSTRAINT_PATH
Sostituisci INGRESS_CONSTRAINT_PATH con il percorso completo del file del vincolo personalizzato creato nel passaggio precedente.
Crea la policy dell'organizzazione per applicare il vincolo. Per definire la policy dell'organizzazione, crea un file YAML della policy denominato
policy-agent-gateway-ingress.yaml. In questo esempio applichiamo questo vincolo a livello di progetto, ma puoi impostarlo anche a livello di organizzazione o cartella.name: projects/PROJECT_ID/policies/custom.allowlistedIngressAgentGatewaysForAgentEngine spec: rules: - enforce: trueSostituisci
PROJECT_IDcon l'ID progetto.Applica la policy dell'organizzazione.
gcloud alpha org-policies set-policy INGRESS_POLICY_PATH
Sostituisci INGRESS_POLICY_PATH con il percorso completo del file YAML della policy dell'organizzazione creato nel passaggio precedente. L'applicazione della policy può richiedere fino a 15 minuti.
Per saperne di più su come utilizzare i vincoli personalizzati delle policy dell'organizzazione, consulta Creare vincoli personalizzati.