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
Activez Cloud Run dans votre projet.
Activez IAP dans votre projet.
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 :
- Administrateur Cloud Run (
roles/run.admin) sur le projet - Administrateur IAP (
roles/iap.admin) sur le projet -
Déployer un nouveau service ou une nouvelle révision d'un service existant :
- Utilisateur du compte de service (
roles/iam.serviceAccountUser) sur le compte de service d'exécution - Lecteur Artifact Registry (
roles/artifactregistry.reader) sur le dépôt d'images de conteneurs
- Utilisateur du compte de service (
-
Créer et configurer un client OAuth:
Éditeur de configuration OAuth (
roles/oauthconfig.editor) sur le projet -
Se connecter au serveur MCP sécurisé par IAP ou l'appeler :
Utilisateur d'application Web sécurisée par IAP (
roles/iap.httpsResourceAccessor) sur le projet ou le service Cloud Run
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 :
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 servicePROJECT_NUMBER: votre Cloud de Confiance by S3NS numéro de projet
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 deploycommande :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 serviceCONTAINER_IMAGE: votre image de conteneurREGION: région dans laquelle vous déployez votre servicePROJECT_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 updatecommande :gcloud beta run services update SERVICE_NAME \ --region=REGION \ --iap \ --functional-type=mcp-server
Remplacez les éléments suivants :
SERVICE_NAME: nom du serviceREGION: région dans laquelle vous déployez votre service
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
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 RunOAUTH_CLIENT_ID: ID client issu de la configuration du client OAuthOAUTH_CLIENT_SECRET: code secret du client issu de la configuration du client OAuthREDIRECT_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 :
Dans votre terminal, démarrez Gemini CLI :
gemini
Lorsque vous y êtes invité dans votre navigateur, suivez le flux d'authentification IAP.
Vérifiez que Gemini CLI détecte et liste correctement les outils fournis par votre serveur MCP.