Identity-Aware Proxy (IAP) te permite proteger los servidores del Protocolo de contexto del modelo (MCP) implementados en Cloud Run con una verificación de identidad centralizada. Luego, puedes configurar clientes, como la CLI de Gemini o los agentes de IA, para que se autentiquen a través de IAP y ejecuten herramientas de forma segura en tu servidor remoto.
Antes de comenzar
Habilita Cloud Run en tu proyecto.
Habilita IAP en tu proyecto.
Roles obligatorios
Para obtener los permisos que necesitas para configurar la autenticación de IAP para los servidores de MCP de Cloud Run, pídele a tu administrador que te otorgue los siguientes roles de IAM:
- Administrador de Cloud Run (
roles/run.admin) en el proyecto - Administrador de IAP (
roles/iap.admin) en el proyecto -
Implementa un servicio nuevo o una revisión nueva de un servicio existente:
- Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser) en la cuenta de servicio del entorno de ejecución - Lector de Artifact Registry (
roles/artifactregistry.reader) en el repositorio de imágenes de contenedor
- Usuario de la cuenta de servicio (
-
Crea y configura un cliente de OAuth:
Editor de configuración de OAuth (
roles/oauthconfig.editor) en el proyecto -
Conéctate o llama al servidor de MCP protegido por IAP:
Usuario de app web protegida por IAP (
roles/iap.httpsResourceAccessor) en el proyecto o el servicio de Cloud Run
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Configura IAP en un servicio de Cloud Run
Para configurar IAP en tu servidor de MCP de Cloud Run, haz lo siguiente:
Otorga el rol Invocador de Cloud Run (
roles/run.invoker) al agente de servicio de IAP:gcloud beta run services add-iam-policy-binding SERVICE_NAME \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-iap.' \ --role='roles/run.invoker'Reemplaza lo siguiente:
SERVICE_NAME: el nombre del servicioPROJECT_NUMBER: Es el número del Google Cloud proyecto.
Habilita IAP cuando implementes un servicio nuevo o una revisión nueva de un servicio existente:
Servicio nuevo
Para implementar un servicio nuevo con IAP habilitado, ejecuta el
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
Reemplaza lo siguiente:
SERVICE_NAME: el nombre del servicioCONTAINER_IMAGE: tu imagen de contenedorREGION: la región en la que implementas tu servicioPROJECT_ID: el ID del proyecto en el que está habilitado Cloud Run
Servicio existente
Para implementar una revisión nueva de un servicio existente con IAP habilitado, ejecuta el
gcloud beta run services updatecomando:gcloud beta run services update SERVICE_NAME \ --region=REGION \ --iap \ --functional-type=mcp-server
Reemplaza lo siguiente:
SERVICE_NAME: el nombre del servicioREGION: la región en la que implementas tu servicio
Crea y configura un cliente de OAuth:
Para registrar el ID de cliente universal de tu cliente de OAuth para usarlo con IAP, consulta Cómo compartir clientes de OAuth para el acceso programático.
Registra los valores siguientes:
- ID de cliente de OAuth
- Secreto del cliente de OAuth
- URI de redireccionamiento
Para conectar un cliente, como la CLI de Gemini o tu agente, a tu servidor de MCP implementado, edita el archivo
~/.gemini/settings.json.Agrega la siguiente configuración a tu archivo
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" } } } }Reemplaza lo siguiente:
SERVICE_URL: la URL de tu servicio de Cloud RunOAUTH_CLIENT_ID: el ID de cliente de la configuración del cliente de OAuthOAUTH_CLIENT_SECRET: el secreto del cliente de la configuración del cliente de OAuthREDIRECT_URI: el URI de redireccionamiento de la configuración del cliente de OAuth
Verifica la conexión
Para verificar que tu cliente pueda autenticarse a través de IAP y conectarse al servidor de MCP, haz lo siguiente:
En tu terminal, inicia la CLI de Gemini:
gemini
Cuando se te solicite en el navegador, completa el flujo de autenticación de IAP.
Verifica que la CLI de Gemini descubra y enumere correctamente las herramientas que proporciona tu servidor de MCP.