Authentifier votre serveur MCP Cloud Run avec IAP

Identity-Aware Proxy (IAP) vous permet de sécuriser les serveurs MCP (Model Context Protocol) déployés sur Cloud Run grâce à une validation centralisée des identités. Vous pouvez ensuite configurer des clients tels que Gemini CLI ou des agents IA pour qu'ils s'authentifient via IAP et exécutent des outils en toute sécurité sur votre serveur distant.

Avant de commencer

  1. Vérifiez que vous disposez des rôles requis.

  2. Activez Cloud Run dans votre projet.

  3. Activez IAP dans votre projet.

  4. Déployez un serveur MCP sur Cloud Run.

Rôles requis

Pour obtenir les autorisations nécessaires pour configurer l'authentification IAP pour les serveurs MCP Cloud Run, demandez à votre administrateur de vous accorder les rôles IAM suivants :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Configurer IAP sur un service Cloud Run

Pour configurer IAP sur votre serveur MCP Cloud Run, procédez comme suit :

  1. Attribuez le rôle Demandeur Cloud Run (roles/run.invoker) à l'agent de service 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'
    

    Remplacez les éléments suivants :

    • SERVICE_NAME : nom du service
    • PROJECT_NUMBER: votre Cloud de Confiance by S3NS numéro de projet
  2. Activez IAP lorsque vous déployez un nouveau service ou une nouvelle révision d'un service existant :

    Nouveau service

    Pour déployer un nouveau service avec IAP activé, exécutez la gcloud beta run deploy commande :

    gcloud beta run deploy SERVICE_NAME \
      --image=CONTAINER_IMAGE \
      --region=REGION \
      --project=PROJECT_ID \
      --allow-unauthenticated \
      --iap \
      --functional-type=mcp-server
    

    Remplacez les éléments suivants :

    • SERVICE_NAME : nom du service
    • CONTAINER_IMAGE : votre image de conteneur
    • REGION : région dans laquelle vous déployez votre service
    • PROJECT_ID: ID du projet dans lequel Cloud Run est activé

    Service existant

    Pour déployer une nouvelle révision d'un service existant avec IAP activé, exécutez la gcloud beta run services update commande :

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

    Remplacez les éléments suivants :

    • SERVICE_NAME : nom du service
    • REGION: région dans laquelle vous déployez votre service
  3. Créez et configurez un client OAuth :

    Pour enregistrer l'ID client universel de votre client OAuth afin de l'utiliser avec IAP, consultez Partager des clients OAuth pour un accès programmatique.

    Notez les valeurs suivantes :

    • ID client OAuth
    • Code secret du client OAuth
    • URI de redirection
  4. Pour connecter un client tel que Gemini CLI ou votre agent à votre serveur MCP déployé, modifiez le fichier ~/.gemini/settings.json.

    Ajoutez la configuration suivante à votre fichier 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"
          }
        }
      }
    }
    

    Remplacez les éléments suivants :

    • SERVICE_URL: URL de votre service Cloud Run
    • OAUTH_CLIENT_ID: ID client issu de la configuration du client OAuth
    • OAUTH_CLIENT_SECRET: code secret du client issu de la configuration du client OAuth
    • REDIRECT_URI: URI de redirection issu de la configuration du client OAuth

Vérifier la connexion

Pour vérifier que votre client peut s'authentifier via IAP et se connecter au serveur MCP, procédez comme suit :

  1. Dans votre terminal, démarrez Gemini CLI :

    gemini
    
  2. Lorsque vous y êtes invité dans votre navigateur, suivez le flux d'authentification IAP.

  3. Vérifiez que Gemini CLI détecte et liste correctement les outils fournis par votre serveur MCP.