Questa pagina si applica ad Apigee, ma non ad Apigee hybrid.
Visualizza la documentazione di
Apigee Edge.
Questo documento descrive come configurare la connettività privata da un agente di cui è stato eseguito il deployment su Gemini Enterprise Agent Platform Agent Runtime alle API e agli strumenti Model Context Protocol (MCP) pubblicati su Apigee, utilizzando Private Service Connect. Con questo pattern, il traffico dall'agente ad Apigee rimane completamente privato e non attraversa la rete internet pubblica.
Panoramica
Agent Runtime esegue il deployment dell'agente in una rete sicura e gestita da Google senza accesso alla rete Virtual Private Cloud (VPC). Apigee viene eseguito in modo simile in una rete sicura gestita da Google. Quando vuoi che le chiamate di un agente a un modello linguistico di grandi dimensioni (LLM) o agli strumenti MCP esposti tramite Apigee vengano trasmesse privatamente, devi trovare un modo per collegare queste due reti gestite da Google tramite una rete VPC che controlli.
Questo documento descrive il seguente pattern per questo bridge:
- Agent Runtime esegue il provisioning di un'interfaccia Private Service Connect (interfaccia PSC) che si connette a un collegamento di rete in una subnet del tuo VPC consumer. Il traffico in uscita dall'agente esce in questo VPC.
- Nella stessa VPC consumer, crei un endpoint Private Service Connect che ha come target il collegamento al servizio esposto dall'istanza Apigee.
- Crea una zona privata Cloud DNS nel VPC consumer che risolve il nome host del gruppo di ambienti Apigee nell'indirizzo IP dell'endpoint Private Service Connect.
- Agent Runtime utilizza il peering DNS per risolvere il nome host dall'interno dell'ambiente Agent Runtime utilizzando la zona privata nel tuo VPC consumer.
Con questa configurazione, quando l'agente chiama
https://APIGEE_HOSTNAME/..., la richiesta viene risolta nell'IP dell'endpoint Private Service Connect nel tuo VPC, viene inoltrata
tramite il collegamento del servizio all'istanza Apigee ed è
elaborata dal proxy API che corrisponde al percorso della richiesta.
Prima di iniziare
Questo documento utilizza i seguenti segnaposto nei comandi. Sostituiscili con i valori del tuo ambiente.
- APIGEE_PROJECT_ID: l'ID progetto Google Cloud che contiene la tua organizzazione Apigee.
- SERVICE_PROJECT_ID: l' Google Cloud ID progetto in cui esegui il deployment dell'agente su Agent Runtime. Può essere lo stesso di APIGEE_PROJECT_ID o un progetto diverso, a seconda di come organizzi le risorse Google Cloud.
- SERVICE_PROJECT_NUMBER: il numero di progetto numerico per
SERVICE_PROJECT_ID. Puoi recuperarlo con
gcloud projects describe SERVICE_PROJECT_ID --format="value(projectNumber)". - HOST_PROJECT_ID: l'ID progetto Google Cloud che contiene la rete VPC consumer, la subnet e la zona privata Cloud DNS. Questo è uguale a SERVICE_PROJECT_ID, a meno che tu non utilizzi VPC condiviso, nel qual caso si tratta del progetto host a cui si collega il progetto di servizio.
- REGION: la regione dell'istanza Apigee (ad esempio
us-west1). - VPC_NAME: il nome della rete VPC consumer in HOST_PROJECT_ID.
- SUBNET_NAME: il nome di una subnet in VPC_NAME che si trova in REGION.
- APIGEE_HOSTNAME: il nome host che hai configurato nel
gruppo di ambienti Apigee (ad esempio,
api.internal.example.com). - BASE_PATH: il percorso di base del proxy API di cui è stato eseguito il deployment su
Apigee (ad esempio,
/mcpo/orders). - PARENT_DNS_NAME: il dominio DNS principale di
APIGEE_HOSTNAME che vuoi pubblicare dalla zona privata (ad esempio,
internal.example.com.). Il valore deve terminare con un punto. - APIGEE_INSTANCE_NAME: il nome dell'istanza Apigee in REGION.
Ti serviranno:
- Uno o più progetti Google Cloud (come descritto nella nota precedente) con la fatturazione abilitata.
- Un'organizzazione Apigee esistente in APIGEE_PROJECT_ID con almeno un'istanza. Questo documento crea tutte le risorse di networking consumer (collegamento di rete, endpoint Private Service Connect, deployment di Agent Runtime) nella stessa regione dell'istanza Apigee, che è la configurazione più semplice.
- Un gruppo di ambienti i cui ambienti vengono implementati in quell'istanza Apigee e che include il nome host che vuoi che l'agente chiami. Questo documento si riferisce a questo nome host come APIGEE_HOSTNAME.
-
Almeno un proxy API di cui è stato eseguito il deployment in un ambiente del gruppo di ambienti. Tutti i proxy che vuoi che l'agente chiami devono essere raggiungibili all'indirizzo
https://APIGEE_HOSTNAME/BASE_PATH. -
Una rete VPC e una subnet in HOST_PROJECT_ID, nella stessa regione dell'istanza Apigee. Questo documento si riferisce a questi
come VPC_NAME e SUBNET_NAME. Agent Runtime
richiede una subnet minima di
/28e impone ulteriori limitazioni di intervallo. Per maggiori dettagli, vedi Requisiti dell'intervallo IP della subnet nella documentazione di Agent Platform. -
Le seguenti API abilitate nel progetto appropriato:
- Apigee (
apigee.googleapis.com) in APIGEE_PROJECT_ID. - Compute Engine (
compute.googleapis.com) e Cloud DNS (dns.googleapis.com) in HOST_PROJECT_ID. - Agent Platform (
aiplatform.googleapis.com) in SERVICE_PROJECT_ID.
- Apigee (
- Autorizzazioni IAM sufficienti per creare zone e record Cloud DNS, indirizzi Compute Engine, collegamenti di rete e regole di forwarding Private Service Connect in HOST_PROJECT_ID e per aggiornare la configurazione dell'istanza e del gruppo di ambienti Apigee in APIGEE_PROJECT_ID. Per informazioni dettagliate sui ruoli richiesti, consulta Ruoli Apigee, Controllo dell'accesso a Cloud DNS e Ruoli IAM di Compute Engine.
Architettura
I seguenti passaggi descrivono il flusso di traffico tra un agente di cui è stato eseguito il deployment in Agent Runtime e un proxy API ospitato su Apigee, utilizzando un endpoint Private Service Connect in un VPC consumer come bridge.
- L'agente, in esecuzione su Agent Runtime, effettua una richiesta HTTPS a APIGEE_HOSTNAME.
- Il peering DNS configurato sull'interfaccia PSC di Agent Runtime inoltra la ricerca alla zona privata Cloud DNS nel tuo VPC consumer, che restituisce l'indirizzo IP dell'endpoint Private Service Connect.
- La richiesta dell'agente esce tramite l'interfaccia PSC nel tuo VPC consumer e raggiunge l'endpoint Private Service Connect su quell'indirizzo IP.
- L'endpoint Private Service Connect inoltra la richiesta tramite la connessione di servizio al collegamento di servizio dell'istanza Apigee.
- L'istanza Apigee termina TLS, associa il nome host della richiesta al gruppo di ambienti e indirizza al proxy API corretto.
Passaggio 1: configura il networking nel VPC consumer
Questa sezione configura le risorse in due progetti. Ogni comando
include un flag --project esplicito, in modo da poter eseguire i
comandi da qualsiasi configurazione gcloud attiva:
- Le risorse Cloud DNS (zona privata e record) vengono create in HOST_PROJECT_ID, perché la zona privata è collegata alla rete VPC consumer.
- Le risorse endpoint Private Service Connect (indirizzo IP interno statico e regola di forwarding) e il collegamento di rete vengono create in SERVICE_PROJECT_ID. Ciascuno di questi comandi utilizza un riferimento tra progetti alla subnet condivisa o alla rete VPC in HOST_PROJECT_ID. In un deployment a progetto singolo, SERVICE_PROJECT_ID e HOST_PROJECT_ID sono uguali, quindi non ci sono modifiche alla proprietà nei vari passaggi. Per saperne di più sul modello VPC condiviso per gli endpoint Private Service Connect, consulta Creare un endpoint in un progetto di servizio VPC condiviso.
Crea una zona privata Cloud DNS
Crea una zona privata Cloud DNS visibile solo al tuo VPC consumer. L'agente utilizza questa zona (tramite peering DNS) per risolvere APIGEE_HOSTNAME in un indirizzo IP privato.
gcloud dns managed-zones create apigee-private \ --project=HOST_PROJECT_ID \ --dns-name="PARENT_DNS_NAME" \ --description="Private zone for Apigee PSC access" \ --visibility=private \ --networks=VPC_NAME
Per saperne di più sulle zone private Cloud DNS, consulta Zone private.
Crea un collegamento di rete
Crea un collegamento di rete nella stessa regione e subnet in cui vuoi che venga visualizzata l'interfaccia PSC di Agent Runtime. Agent Runtime associa la propria interfaccia PSC a questo collegamento quando l'agente viene implementato.
In un deployment a progetto singolo, crea il collegamento di rete in SERVICE_PROJECT_ID (che è anche HOST_PROJECT_ID). In un deployment VPC condiviso, puoi creare il collegamento di rete nel progetto di servizio o nel progetto host; Agent Platform consiglia il progetto di servizio per semplificare le autorizzazioni. Per indicazioni sulla scelta e sui ruoli IAM corrispondenti, consulta Utilizzo dell'interfaccia Private Service Connect con VPC condiviso.
Il seguente comando crea il collegamento di rete in SERVICE_PROJECT_ID. In un deployment VPC condiviso, il riferimento alla subnet deve includere l'ID progetto host.
gcloud compute network-attachments create agent-network-attachment \ --project=SERVICE_PROJECT_ID \ --region=REGION \ --subnets=projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \ --connection-preference=ACCEPT_AUTOMATIC
Prenota un indirizzo IP interno statico
Riserva un indirizzo IP interno da utilizzare come IP dell'endpoint Private Service Connect a cui si connette l'agente. Crea la risorsa indirizzo in SERVICE_PROJECT_ID e fai riferimento alla subnet condivisa in HOST_PROJECT_ID in modo che il valore dell'indirizzo venga allocato dall'intervallo di questa subnet. Ciò corrisponde alle indicazioni per VPC condiviso in Utilizzare un indirizzo IP interno statico con VPC condiviso.
gcloud compute addresses create apigee-psc-endpoint-ip \ --project=SERVICE_PROJECT_ID \ --region=REGION \ --subnet=projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
Recupera l'indirizzo riservato, che utilizzerai nei passaggi successivi:
gcloud compute addresses describe apigee-psc-endpoint-ip \ --project=SERVICE_PROJECT_ID \ --region=REGION \ --format="value(address)"
Questo documento fa riferimento a questo indirizzo come PSC_ENDPOINT_IP.
Recupera il collegamento al servizio per l'istanza Apigee
Recupera l'URI del collegamento al servizio per la tua istanza Apigee
utilizzando il
metodo organizations.instances.get
dell'API Apigee. Utilizzi questo URI come destinazione per l'endpoint Private Service Connect.
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apigee.googleapis.com/v1/organizations/APIGEE_PROJECT_ID/instances/APIGEE_INSTANCE_NAME"
La risposta include un campo serviceAttachment. Questo
documento si riferisce a questo valore come APIGEE_SERVICE_ATTACHMENT.
Per saperne di più su come Apigee espone un collegamento al servizio su ogni istanza, consulta Gestione delle istanze.
Crea l'endpoint Private Service Connect
Crea una regola di forwarding che funge da endpoint Private Service Connect. Ha come target l'allegato del servizio Apigee e utilizza l'IP statico che hai prenotato. Crea la regola di forwarding in SERVICE_PROJECT_ID e fai riferimento alla rete VPC condivisa in HOST_PROJECT_ID e all'indirizzo in SERVICE_PROJECT_ID.
gcloud compute forwarding-rules create apigee-psc-endpoint \ --project=SERVICE_PROJECT_ID \ --region=REGION \ --network=projects/HOST_PROJECT_ID/global/networks/VPC_NAME \ --address=projects/SERVICE_PROJECT_ID/regions/REGION/addresses/apigee-psc-endpoint-ip \ --target-service-attachment=APIGEE_SERVICE_ATTACHMENT
Verifica che il servizio Apigee abbia accettato la connessione:
gcloud compute forwarding-rules describe apigee-psc-endpoint \ --project=SERVICE_PROJECT_ID \ --region=REGION \ --format="value(pscConnectionStatus)"
Lo stato deve essere ACCEPTED prima che l'endpoint possa inoltrare
il traffico. Per ulteriori informazioni sugli endpoint Private Service Connect, consulta Informazioni sull'accesso ai servizi pubblicati tramite endpoint.
Aggiungi un record DNS per il nome host
Nella zona privata, crea un record A che risolve
APIGEE_HOSTNAME in PSC_ENDPOINT_IP. Questo record è
visibile solo all'interno di VPC_NAME, quindi i client esterni continuano a
risolvere il nome host tramite il DNS pubblico.
gcloud dns record-sets create APIGEE_HOSTNAME. \ --project=HOST_PROJECT_ID \ --zone=apigee-private \ --type=A \ --ttl=60 \ --rrdatas=PSC_ENDPOINT_IP
Passaggio 2: configura Apigee
Aggiungi il progetto di servizio all'elenco di accettazione dei consumer dell'istanza
L'istanza Apigee accetta solo
connessioni Private Service Connect dai progetti consumer
che si trovano nel suo
consumerAcceptList.
Il lato consumer della connessione è associato a
SERVICE_PROJECT_ID, perché è il progetto in cui è stato eseguito il deployment
dell'agente.
Per impostazione predefinita, il progetto associato all'organizzazione Apigee (APIGEE_PROJECT_ID) è già nell'elenco. Se SERVICE_PROJECT_ID è uguale a APIGEE_PROJECT_ID, non è necessaria alcuna modifica e puoi saltare questa sezione. In caso contrario, aggiungi SERVICE_PROJECT_ID all'elenco.
Per prima cosa, controlla il valore attuale di consumerAcceptList utilizzando
il
metodo
organizations.instances.get:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apigee.googleapis.com/v1/organizations/APIGEE_PROJECT_ID/instances/APIGEE_INSTANCE_NAME"
Cerca il campo consumerAcceptList nella risposta.
Poi aggiorna l'elenco chiamando il metodo
organizations.instances.patch
con una maschera di aggiornamento su consumerAcceptList. Poiché
il campo sostituisce l'elenco esistente, includi ogni ID progetto che deve
mantenere l'accesso, inclusi APIGEE_PROJECT_ID e tutti i progetti di servizio aggiuntivi
che eseguono il deployment degli agenti:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{"consumerAcceptList": ["APIGEE_PROJECT_ID", "SERVICE_PROJECT_ID"]}' \
"https://apigee.googleapis.com/v1/organizations/APIGEE_PROJECT_ID/instances/APIGEE_INSTANCE_NAME?updateMask=consumerAcceptList"
Conferma l'aggiornamento eseguendo di nuovo il comando get e
verificando che SERVICE_PROJECT_ID sia ora incluso in
consumerAcceptList.
Verifica il nome host del gruppo di ambienti
Verifica che APIGEE_HOSTNAME sia elencato nel gruppo di ambienti che ospita i tuoi proxy API. In caso contrario, aggiungilo.
Per istruzioni, vedi Utilizzo dei gruppi di ambienti.
Passaggio 3: esegui il deployment dell'agente con un'interfaccia PSC e il peering DNS
Quando esegui il deployment dell'agente in Agent Runtime, configuralo con un'interfaccia PSC che fa riferimento al collegamento di rete che hai creato e configura il peering DNS alla tua zona privata. Per la procedura di deployment completa e i framework supportati, consulta Utilizzo dell'interfaccia Private Service Connect con Agent Runtime e Deploy di agenti nella documentazione di Agent Platform.
Configura i seguenti due campi nella configurazione dell'interfaccia PSC dell'agente (vedi il riferimento PscInterfaceConfig):
-
networkAttachment: imposta questo valore sul nome completo della risorsa del collegamento di rete creato nel passaggio 1, nel formatoprojects/SERVICE_PROJECT_ID/regions/REGION/networkAttachments/agent-network-attachment. Se hai creato il collegamento di rete nel progetto host, utilizza HOST_PROJECT_ID in questo percorso. -
dnsPeeringConfigs: aggiungi una voce con i seguenti campi, in modo che Agent Runtime risolva APIGEE_HOSTNAME tramite la tua zona privata:domain: PARENT_DNS_NAME. Il valore deve terminare con un punto.targetProject: HOST_PROJECT_ID. Questo è il progetto che contiene il VPC consumer e la zona privata.targetNetwork: VPC_NAME.
Il service agent Agent Platform Service per SERVICE_PROJECT_ID
(service-SERVICE_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com)
deve disporre dell'autorizzazione per configurare il peering DNS e aggiornare l'allegato di rete. Concedi i ruoli richiesti come descritto in
Ruolo richiesto per il service agent della piattaforma dell'agente.
In un deployment VPC condiviso, vengono applicati ruoli aggiuntivi al progetto host. Per maggiori dettagli, consulta Utilizzo dell'interfaccia Private Service Connect con il VPC condiviso.
Dal codice dell'agente, chiama il proxy API all'indirizzo
https://APIGEE_HOSTNAME/BASE_PATH.
All'interno dell'ambiente Agent Runtime, questo nome host viene risolto tramite peering DNS in PSC_ENDPOINT_IP e la richiesta attraversa l'endpoint Private Service Connect nella tua rete VPC e in Apigee.
Verifica il percorso privato
Dopo aver eseguito il deployment dell'agente, verifica che le richieste raggiungano Apigee tramite il percorso privato:
-
Verifica che lo stato della regola di forwarding sia
ACCEPTEDutilizzando il comando in Crea l'endpoint Private Service Connect. -
Da una VM Compute Engine collegata a VPC_NAME in
REGION (in un deployment VPC condiviso, questa VM può trovarsi nel progetto host o in un progetto di servizio collegato al VPC condiviso), esegui
dig +short APIGEE_HOSTNAME. Il risultato deve essere PSC_ENDPOINT_IP. Ciò conferma che la zona privata risolve correttamente il nome host all'interno del VPC. -
Dalla stessa VM, invia una richiesta a un proxy API di cui è stato eseguito il deployment all'indirizzo
https://APIGEE_HOSTNAME/BASE_PATHe verifica di ricevere la risposta prevista. - Richiama l'agente di cui è stato eseguito il deployment e conferma che la richiesta sia stata gestita. Poi utilizza Apigee Analytics o Debug per verificare che la richiesta sia arrivata al proxy API previsto sul nome host del gruppo di ambienti.
Passaggi successivi
- Scopri di più sull'utilizzo dell'interfaccia Private Service Connect con Agent Runtime.
- Scopri come eseguire il deployment degli agenti su Agent Runtime.
- Scopri di più sul networking in ingresso con Private Service Connect, la variante basata sul bilanciatore del carico che utilizza un certificato TLS gestito.
- Scopri di più sui pattern di networking in uscita, che descrivono in che modo Apigee si connette privatamente ai tuoi backend di destinazione.
- Scopri di più su MCP in Apigee per esporre le tue API come strumenti MCP alle applicazioni agentiche.