Claude Platform Docs
MessagesMCPトンネル

MCPトンネルのセキュリティ

MCPトンネルのデプロイメントにおけるハードニングのガイダンス、認証情報のローテーション、侵害への対応、および撤去について説明します。

トンネルアーキテクチャは強力なデフォルト(アウトバウンドのみの接続、エンドツーエンドの暗号化、IP検証)を提供しますが、トンネルスタック全体のセキュリティは、その構成方法と運用方法にも依存します。このページでは、推奨されるハードニング、侵害への対応、およびトンネルの廃止方法について説明します。

ベストプラクティス

  • すべてのMCPサーバーでOAuthを必須にする。 MCP認可仕様に記載されているとおり、各アップストリームMCPサーバーがOAuthを必須とするように構成します。OAuthは、トンネルのトランスポート認証に加えて多層防御を提供し、データレイヤーでのユーザーレベルの認可を可能にします。
  • 組織でSSOを有効にする。 トンネル、フェデレーションルール、サービスアカウントはClaude Consoleで管理されます。SSOは、これらを変更できる管理者に対して、IDプロバイダーのセッション制御を適用します。
  • upstream.allowed_ipsを制限する。 MCPサーバーをカバーする最小のCIDR範囲を使用します。これはプロキシの主要なSSRF防御です。
  • ログを監視する。 トンネルスタックからの警告、エラー、および異常なトラフィックパターンに対してアラートを設定します。
  • 認証情報をローテーションする。 サーバー証明書とトンネルトークンを定期的なスケジュールでローテーションし、侵害が疑われる場合は直ちにローテーションします。
  • イメージを最新に保つ。 新しいプロキシのリリースを追跡し、イメージをSHA-256ダイジェストで固定します。
  • ネットワークの到達範囲を制限する。 プロキシとcloudflaredは、ネットワーク要件に記載されている宛先にのみ到達できるようにします。NetworkPolicy(Kubernetes)またはホストのファイアウォールルール(Compose)を使用します。
  • MCPサーバーのスコープを制限する。 各サーバーは、その目的に必要なツールとデータのみを公開するようにします。
  • 保存時の認証情報を保護する。 秘密鍵とトンネルトークンに、組織のシークレット管理のプラクティスを適用します。

侵害が疑われる場合の対応

トンネルトークン、TLSキー、またはプロキシホストが侵害されたと思われる場合は、次の手順に従います。

  1. トンネルスタックを停止する

    helm uninstall mcp-tunnel -n mcp-tunnel
  2. アップストリームMCPサーバーを切り離す

    アップストリームMCPサーバーを使用しているすべてのManaged Agentセッションからそれらを削除し、Messages APIリクエストのmcp_serversブロックでそれらのURLを渡すのをやめます。

  3. トンネルをアーカイブする

    アーカイブすると、トンネルトークンが無効になり、ドメインが切り離されます。Consoleで、MCP tunnelsリストからトンネルをアーカイブします。代わりにAPI経由でアーカイブする場合は、トンネルをアーカイブするを参照してください。

  4. Anthropicに連絡する

    疑われる侵害をAnthropicサポートに報告します。

  5. ダウンストリームの認証情報をローテーションする

    新しいトンネルを再プロビジョニングし、影響を受けたMCPサーバーが発行したOAuthトークンをすべてローテーションします。

  6. サービスを復旧する前にログを確認する

    新しいトンネルをオンラインにする前に、侵害が疑われる期間のプロキシ、cloudflared、およびMCPサーバーのログを調査します。

トンネルを撤去する

トンネルを廃止し、保存されているすべての認証情報を削除するには、次の手順に従います。

  1. トンネルスタックを停止する

    helm uninstall mcp-tunnel -n mcp-tunnel
  2. トンネルをアーカイブする

    Consoleで、MCP tunnelsリストからトンネルをアーカイブします。

  3. 保存されている認証情報を削除する

    プログラムによるアクセスを使用した場合、セットアップコンポーネントはリリース名にちなんだ単一のSecretを作成しています。プログラムによるアクセスを使用しなかった場合は、mcp-tunnel-tokenmcp-tunnel-certを自分で作成しています。該当するものを削除します。

    kubectl -n mcp-tunnel delete secret \
      mcp-tunnel mcp-tunnel-token mcp-tunnel-cert \
      --ignore-not-found

Was this page helpful?