AI / 自動化 2026年4月26日

OpenClaw MCP サーバ allowlist と tools.exec 方針:2026 貸出 Mac mini マトリクス

VmMac エンジニアリングチーム 2026年4月26日 約 23 分

セキュリティアーキテクトは VmMac から 貸出 Apple Silicon Mac miniOpenClaw を載せ、tools.exec を堅くしたのちに、モデルが依然として顧客 DB を読みにいく、あるいは外向き Webhook を起こしうる MCP サーバ へ届くのを知ります。本 2026 マトリクスは MCP を 第二の exec 表面 として扱います。トランスポートは違うが、衝撃半径は同程度です。信頼境界の比較、ジョイント allowlist パターン、八段の統制、そして 香港・日本・韓国・シンガポール・米国 フリート用の可観測性 2 列表を用意しました。実行承認第三者スキル サプライ チェーン導入とデプロイと併せ、いずれか一つの方針ファイルだけに頼りません。接続パターンは 接続手順、高リスク MCP ゲートウェイ専用ホストを分ける費用は 料金、GUI デバッグが要る切迫時は VNC をブレークグラス専用として文書化します。

シェルが固くても、MCP が第二の exec 表面である理由

MCP は、しばしば stdio、時には HTTPWebSocket でモデルと道具を接続し、exec allowlist が想定した argv パースの外に出ます。侵害された MCP サーバは、「ツール結果」として流出チャンクを流しながら、ダッシュボード上では tools.exec.security=deny が緑のままかもしれません。MCP カタログを、小さく、レビューされ、版付けされ、退屈に—追加の sudoers の束として扱ってください。

  • 信頼したと思っていた LAN 上で、TLS を平文に落とす トランスポート ダウングレード
  • 二つの MCP サーバが、実装の違う重複名で登録する ツール シャドーイング
  • 遅い MCP 呼び出しがワーカープールを使い果たしても、CPU アラームを踏まない 遅延のマスキング
本稿の非目標: 特定ベンダの JSON キーは書きません。コンプライアンスが正とするフィールド名に、ここで述べる方針パターンを写してください。

マトリクス:トランスポート、アイデンティティ、exec ルールの止まる場所

表面 主リスク 自然な制御 典型的な抜け穴
tools.exec ホスト シェルからの持ち出し argv allowlist + ask モード 幅広い sh -c ラッパ
MCP stdio サーバ ローカル プロセスの偽装 バイナリパス固定+チェックサム launchd plist 内の可変 PATH
リモート MCP(HTTP) SSRF とトークン窃盗 mTLS + DNS allowlist 本番 plist に共有ステージング DNS

コードレビューを生き残るジョイント allowlist パターン

git に二つの成果物を置きます:exec-allowlist.v1.yaml と、ペアのオーナーがいる mcp-catalog.v1.json。MCP エントリごとに バイナリの SHA256 かコンテナ digest、最大 RPSデータ分類ラベル(PUBLIC, INTERNAL, CUSTOMER)を必須にします。宣言したデータ分類が、その VmMac リージョンの処理承認を超えていればブロックします。エントリが変わるたび、semver を揃えて一緒に上げ、CI が部分プロモーションを弾けます。

HTTP の MCP では、証明書を SPKI ハッシュで固定し、45 日周期で、金曜夜の即席切替ではなく重畳期間付きで回します。

モデルに「MCP URL を一つ足して」と言わせられたら、ファイアウォール変更と同格に扱い、脅威ブリーフ、ロールバック試験、10 分以内にカタログ エントリを殺せる当番名を要請します。事後分析では、マニフェスト版と併せてプロンプトのハッシュを残し、方針退行とモデル ドリフトを切り分けます。非対話 launchd 下のゲートウェイでは、MCP クライアントが誰も答えられない TCC ダイアログを出しませんか—止まったように見えて、実はパーミッション デッドロックです。

マルチリポのモノレポなら、リポジトリ接頭辞で MCP ツール名に名前空間を付け、二つのサービスが、異なるデータ スコープで同じ呼び出しに応じる最悪の交差漏洩を防ぎます。

共有の貸出 Mac mini 上の多テナ:ラベル、ポート、状態根

VmMac の顧客は予算のため 1 台の mini を二つに分けることも—MCP にとって危険です。プロセス名前空間は同じカーネルを共有します。本番とステージングのゲートウェイのように、LaunchAgent ラベル、TCP ポート状態ディレクトリをまったく分けてください。二つのチームを同じ既定 MCP ソケットに向けないでください。衝突は、監査地獄のテナント横断ツール結果を生みます。

数値ガード:ゲートウェイあたり相異なる MCP サーバは 12 を上限。超えたらホストを分けるか、リスク等級でシャードする。

2026 八段階の統制ラダー

  1. 使っているすべての MCP トランスポートを棚卸しし、収益ワークフローに結び付かない実験的なものを削除する。
  2. 動いているホストからマニフェストを生成し、週次で git と差分を取る。
  3. 新しい MCP バイナリを、本番の exec allowlist と組み合わせる前に、exec 拒否のサンドボックス ホスト層で走らせる。
  4. MCP の接続・切断に相関 ID を入れた構造化ログを有効化する。
  5. 読み取り専用エンドポイントを一時間に一度、合成プローブで叩く。
  6. 一リージョンで 72 時間カナリアしてから、グローバルに昇格する。
  7. ロールバック:可能ならゲートウェイ全体の再起動なしにカタログ エントリを無効化する。
  8. 四半期テーブルトップ:MCP 証明書の侵害を仮定し、負荷下で回転演習をする。

誰かを起こすべき可観測性シグナル

信号 行動
1 時間に MCP TLS 検証失敗 > 0 プロモーション凍結。MITM か時刻ずれ
カタログにない新 DNS 名 イグレスで拒否。セキュリティ インシデント化
MCP 遅延 p95 > 基準の 2.5 倍 モデル トラフィックを絞る。上流の飽和を見る

スキルはモデルに新しい MCP 接続を指示するプロンプトを載せることがあり、スキルのピン留めと MCP allowlist は一緒に昇格しなければなりません。exec 承認の方針は、非常用チケットがない限り、代替 MCP スーパーバイザ バイナリの起動を明示的に禁じると書きます。二層が揃うと、香港・日本・韓国・シンガポール・米国の貸出フリートは、五つの雪だるまではなく一つの機器層のようにふるまいます。

FAQ:Mac mini 上の MCP と tools.exec

ランブックは、シェル フラッグの方をオペレーターが覚えている—RPC カタログではない—前提で、両表面を隣の列に載せ、今週フリートがpinした正確な git タグにリンクする 1 枚チートシートを出してください。

一つの JSON ファイルで両方を統治できる? 技術的には可能だが、レビューは文脈を失う—別ファイルにし、版番号をリンクする。

MCP サーバに VNC は要る? ふつうはいいえ。デバッグなら、本番の launchd ではなく break-glass 用ホストで。

ローカルの Ollama エンドポイントは? MCP/HTTP 同様、ループバック束縛の検査付き。リスナ 0.0.0.0 は拒否する。

Mac mini M4 と VmMac は二表面エージェントに合う

Mac mini M4 なら、ゲートウェイと軽量 MCP サーバを、スワップ圧力を常に感じることなく同居しやすく、第二の mini で実験用を切り出せもします。VmMac の各リージョンは、オーケストレーションの書き換えなしに、データ所在要件の近くへ MCP 重めの負荷を置けます。借り物なら、財務と新 VM テンプレ交渉より速く、汚染した MCP プロファイルをポリシー再イメージで捨てられます。

高リスク MCP ゲートウェイを分離

顧客データ経路の前に、リモート MCP トランスポート用の専用 VmMac Mac mini を足す。