MCP 隧道安全

MCP 隧道部署的加固指南、凭据轮换、泄露响应和拆除。


Note

MCP 隧道是一项研究预览功能。申请访问权限 即可试用。

隧道架构提供了强大的默认值(仅出站连接、端到端加密和 IP 验证),但部署的整体安全性也取决于您如何配置和运维。本页涵盖推荐的加固措施、泄露响应以及如何拆除隧道。

最佳实践

  • **在每个 MCP 服务器上要求 OAuth。**按照 MCP 授权规范 中的描述配置每个上游服务器要求 OAuth。OAuth 在隧道的传输身份验证之上提供纵深防御,并在数据层实现用户级授权。
  • **为组织启用 SSO。**隧道、联邦规则和服务账户在 Claude 控制台中管理。SSO 对可以更改它们的管理员强制执行身份提供商的会话控制。
  • **限制 upstream.allowed_ips。**使用覆盖 MCP 服务器的最小 CIDR 范围。这是代理的主要 SSRF 防御。
  • **监控日志。**对隧道技术栈的警告、错误和异常流量模式发出警报。
  • **轮换凭据。**按固定计划轮换服务器证书和隧道令牌,如果怀疑泄露则立即轮换。
  • **保持镜像更新。**跟踪新的代理版本发布,并通过 SHA-256 摘要固定镜像。
  • **限制网络访问范围。**代理和 cloudflared 应该只能访问 网络要求 中列出的目标。使用 NetworkPolicy(Kubernetes)或主机防火墙规则(Compose)。
  • **限制 MCP 服务器范围。**每个服务器应仅公开其目的所需的工具和数据。
  • **保护静态凭据。**将组织的密钥管理实践应用于私钥和隧道令牌。

响应疑似泄露

如果您认为隧道令牌、TLS 密钥或代理主机已被泄露:

  1. 停止部署

    helm uninstall mcp-tunnel -n mcp-tunnel
    
    docker compose down --timeout 0
    
  2. 分离隧道服务器

    从使用它们的任何 Managed Agent 会话中移除隧道 MCP 服务器,并停止在 Messages API 请求的 mcp_servers 块中传递其 URL。

  3. 归档隧道

    归档会使隧道令牌失效并分离域名。在控制台中,从 MCP tunnels 列表中 归档隧道。要改为通过 API 归档,请参阅 归档隧道

  4. 联系 Anthropic

    向 Anthropic 支持报告疑似泄露。

  5. 轮换下游凭据

    重新配置新隧道,并轮换受影响 MCP 服务器签发的任何 OAuth 令牌。

  6. 在恢复服务前审查日志

    在新隧道上线之前,检查代理、cloudflared 和 MCP 服务器日志中疑似泄露时间段的记录。

拆除隧道

按照以下步骤拆除隧道并移除所有存储的凭据。

  1. 停止部署

    helm uninstall mcp-tunnel -n mcp-tunnel
    
    docker compose down
    
  2. 归档隧道

    在控制台中,从 MCP tunnels 列表中 归档隧道

  3. 移除存储的凭据

    使用编程访问时,setup Job 创建了一个以发布名称命名的单个 Secret。不使用编程访问时,您自行创建了 mcp-tunnel-tokenmcp-tunnel-cert。删除适用的 Secret:

    kubectl -n mcp-tunnel delete secret \
      mcp-tunnel mcp-tunnel-token mcp-tunnel-cert \
      --ignore-not-found
    
    sudo rm -rf data