Autenticar seu servidor MCP do Cloud Run com o IAP

O Identity-Aware Proxy (IAP) permite proteger servidores do Protocolo de Contexto de Modelo (MCP) implantados no Cloud Run com verificação de identidade centralizada. Em seguida, é possível configurar clientes, como a CLI do Gemini ou agentes de IA, para autenticar pelo IAP e executar ferramentas com segurança no servidor remoto.

Antes de começar

  1. Verifique se você tem os papéis necessários.

  2. Ative o Cloud Run no seu projeto.

  3. Ative o IAP no seu projeto.

  4. Implante um servidor MCP no Cloud Run.

Funções exigidas

Para receber as permissões necessárias para configurar a autenticação do IAP para servidores MCP do Cloud Run, peça ao administrador para conceder a você os seguintes papéis do IAM:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.

Configurar o IAP em um serviço do Cloud Run

Para configurar o IAP no servidor MCP do Cloud Run, faça o seguinte:

  1. Conceda o papel de invocador do Cloud Run (roles/run.invoker) ao agente de serviço do 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'
    

    Substitua:

    • SERVICE_NAME: o nome do serviço
    • PROJECT_NUMBER: o número do seu Cloud de Confiance by S3NS projeto
  2. Ative o IAP ao implantar um novo serviço ou uma nova revisão de um serviço atual:

    Novo serviço

    Para implantar um novo serviço com o IAP ativado, execute o 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
    

    Substitua:

    • SERVICE_NAME: o nome do serviço
    • CONTAINER_IMAGE: sua imagem do contêiner
    • REGION: a região em que você implanta o serviço
    • PROJECT_ID: o ID do projeto em que o Cloud Run está ativado

    Serviço atual

    Para implantar uma nova revisão de um serviço atual com o IAP ativado, execute o gcloud beta run services update comando:

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

    Substitua:

    • SERVICE_NAME: o nome do serviço
    • REGION: a região em que você implanta o serviço
  3. Crie e configure um cliente OAuth:

    Para registrar o ID do cliente universal do OAuth para uso com o IAP, consulte Compartilhamento de clientes OAuth para acesso programático.

    Anote os seguintes valores:

    • ID do cliente OAuth
    • Chave secreta do cliente OAuth
    • URI de redirecionamento
  4. Para conectar um cliente, como a CLI do Gemini ou seu agente, ao servidor MCP implantado, edite o arquivo ~/.gemini/settings.json.

    Adicione a seguinte configuração ao arquivo 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"
          }
        }
      }
    }
    

    Substitua:

    • SERVICE_URL: o URL do serviço do Cloud Run
    • OAUTH_CLIENT_ID: o ID do cliente da configuração do cliente OAuth
    • OAUTH_CLIENT_SECRET: a chave secreta do cliente da configuração do cliente OAuth
    • REDIRECT_URI: o URI de redirecionamento da configuração do cliente OAuth

Verifique a conexão

Para verificar se o cliente pode autenticar pelo IAP e se conectar ao servidor MCP, faça o seguinte:

  1. No terminal, inicie a CLI do Gemini:

    gemini
    
  2. Quando solicitado no navegador, conclua o fluxo de autenticação do IAP.

  3. Verifique se a CLI do Gemini descobre e lista as ferramentas fornecidas pelo servidor MCP.