Autentica il server MCP di Cloud Run con IAP

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

  1. Verifica di disporre dei ruoli richiesti.

  2. Abilita Cloud Run nel tuo progetto.

  3. Abilita IAP nel tuo progetto.

  4. Esegui il deployment di un server MCP su Cloud Run.

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:

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:

  1. 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 servizio
    • PROJECT_NUMBER: il numero del Cloud de Confiance by S3NS progetto
  2. 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 deploy comando:

    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 servizio
    • CONTAINER_IMAGE: l'immagine container
    • REGION: la regione in cui esegui il deployment del servizio
    • PROJECT_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 update comando:

    gcloud beta run services update SERVICE_NAME \
      --region=REGION \
      --iap \
      --functional-type=mcp-server
    

    Sostituisci quanto segue:

    • SERVICE_NAME: il nome del servizio
    • REGION: la regione in cui esegui il deployment del servizio
  3. 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
  4. 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 Run
    • OAUTH_CLIENT_ID: l'ID client della configurazione del client OAuth
    • OAUTH_CLIENT_SECRET: il client secret della configurazione del client OAuth
    • REDIRECT_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:

  1. Nel terminale, avvia Gemini CLI:

    gemini
    
  2. Quando ti viene richiesto nel browser, completa il flusso di autenticazione IAP.

  3. Verifica che Gemini CLI rilevi ed elenchi correttamente gli strumenti forniti dal server MCP.