Autentica tu servidor de MCP de Cloud Run con IAP

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

  1. Verifica que tengas los roles necesarios.

  2. Habilita Cloud Run en tu proyecto.

  3. Habilita IAP en tu proyecto.

  4. Implementa un servidor de MCP en Cloud Run.

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:

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:

  1. 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 servicio
    • PROJECT_NUMBER: Es el número del Google Cloud proyecto.
  2. 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 deploy comando:

    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 servicio
    • CONTAINER_IMAGE: tu imagen de contenedor
    • REGION: la región en la que implementas tu servicio
    • PROJECT_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 update comando:

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

    Reemplaza lo siguiente:

    • SERVICE_NAME: el nombre del servicio
    • REGION: la región en la que implementas tu servicio
  3. 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
  4. 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 Run
    • OAUTH_CLIENT_ID: el ID de cliente de la configuración del cliente de OAuth
    • OAUTH_CLIENT_SECRET: el secreto del cliente de la configuración del cliente de OAuth
    • REDIRECT_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:

  1. En tu terminal, inicia la CLI de Gemini:

    gemini
    
  2. Cuando se te solicite en el navegador, completa el flujo de autenticación de IAP.

  3. Verifica que la CLI de Gemini descubra y enumere correctamente las herramientas que proporciona tu servidor de MCP.