Identity-Aware Proxy (IAP) consente di proteggere i server Model Context Protocol (MCP) di cui è stato eseguito il deployment su Cloud Run con la verifica dell'identità centralizzata. Puoi quindi configurare i client, come Gemini CLI o gli agenti AI, per l'autenticazione tramite IAP ed eseguire in sicurezza gli strumenti sul server remoto.
Prima di iniziare
Abilita Cloud Run nel tuo progetto.
Abilita IAP nel tuo progetto.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare l'autenticazione IAP per i server MCP di Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM:
- Amministratore di Cloud Run (
roles/run.admin) sul progetto - Amministratore IAP (
roles/iap.admin) sul progetto -
Esegui il deployment di un nuovo servizio o di una nuova revisione di un servizio esistente:
- Utente account di servizio (
roles/iam.serviceAccountUser) sull'account di servizio di runtime - Lettore di Artifact Registry (
roles/artifactregistry.reader) sul repository di immagini container
- Utente account di servizio (
-
Crea e configura un client OAuth:
Editor di configurazione OAuth (
roles/oauthconfig.editor) sul progetto -
Connettiti al server MCP protetto da IAP o chiamalo:
Utente app web protetta da IAP (
roles/iap.httpsResourceAccessor) sul progetto o sul servizio Cloud Run
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.
Configurare IAP su un servizio Cloud Run
Per configurare IAP sul server MCP di Cloud Run:
Concedi il ruolo Cloud Run Invoker (
roles/run.invoker) all'agente di servizio IAP:gcloud beta run services add-iam-policy-binding SERVICE_NAME \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-iap.s3ns-system.iam.gserviceaccount.com' \ --role='roles/run.invoker'Sostituisci quanto segue:
SERVICE_NAME: il nome del servizioPROJECT_NUMBER: il numero del Cloud de Confiance by S3NS progetto
Abilita IAP quando esegui il deployment di un nuovo servizio o di una nuova revisione di un servizio esistente:
Nuovo servizio
Per eseguire il deployment di un nuovo servizio con IAP abilitato, esegui il
gcloud beta run deploycomando:gcloud beta run deploy SERVICE_NAME \ --image=CONTAINER_IMAGE \ --region=REGION \ --project=PROJECT_ID \ --allow-unauthenticated \ --iap \ --functional-type=mcp-server
Sostituisci quanto segue:
SERVICE_NAME: il nome del servizioCONTAINER_IMAGE: l'immagine containerREGION: la regione in cui esegui il deployment del servizioPROJECT_ID: l'ID del progetto in cui è abilitato Cloud Run
Servizio esistente
Per eseguire il deployment di una nuova revisione di un servizio esistente con IAP abilitato, esegui il
gcloud beta run services updatecomando:gcloud beta run services update SERVICE_NAME \ --region=REGION \ --iap \ --functional-type=mcp-server
Sostituisci quanto segue:
SERVICE_NAME: il nome del servizioREGION: la regione in cui esegui il deployment del servizio
Crea e configura un client OAuth:
Per registrare l'ID client universale del client OAuth da utilizzare con IAP, consulta Condividere i client OAuth per l'accesso programmatico.
Registra i seguenti valori:
- ID client OAuth
- Client secret OAuth
- URI di reindirizzamento
Per connettere un client, come Gemini CLI o il tuo agente, al server MCP di cui hai eseguito il deployment, modifica il file
~/.gemini/settings.json.Aggiungi la seguente configurazione al file
settings.json:{ "mcpServers": { "my_mcp_server": { "httpUrl": "https://SERVICE_URL", "oauth": { "enabled": "true", "clientId": "OAUTH_CLIENT_ID", "clientSecret": "OAUTH_CLIENT_SECRET", "scopes": [ "email", "openid" ], "redirectUri": "REDIRECT_URI" } } } }Sostituisci quanto segue:
SERVICE_URL: l'URL del servizio Cloud RunOAUTH_CLIENT_ID: l'ID client della configurazione del client OAuthOAUTH_CLIENT_SECRET: il client secret della configurazione del client OAuthREDIRECT_URI: l'URI di reindirizzamento della configurazione del client OAuth
Verificare la connessione
Per verificare che il client possa eseguire l'autenticazione tramite IAP e connettersi al server MCP:
Nel terminale, avvia Gemini CLI:
gemini
Quando ti viene richiesto nel browser, completa il flusso di autenticazione IAP.
Verifica che Gemini CLI rilevi ed elenchi correttamente gli strumenti forniti dal server MCP.