2026 OpenClaw 本番向けハードニング:露出面・ゲートウェイToken・サンドボックス・Macクラウド隔離チェックリスト

openclaw dashboard が動いても本番とは限りません。デフォルトリスン、弱い認証、ログへの秘密、過剰な外向き通信は2026年にそのままインシデントになります。初回5ステップDocker/npm/ソース比較を終えたチーム向けに、5分類の露出チェック表、Token最小権限と6ステップローテ手順、業務別サンドボックス/egressの組み合わせ、Macクラウドでの役割分離とスナップショット戻し、よくあるエラーとの突き合わせポイントをまとめます。

OpenClaw 本番セキュリティとゲートウェイ制御

目次

1. 代表的な5つの露出面

ゲートウェイをインターネットに晒し強い認証がない場合、スクリプト可能なリモート操作口になります。ポート18789を0.0.0.0/0に開けると短時間でスキャンが来ます。下表を社内チェックリストにし、トラブルシュート記事と併用してください。

種類兆候深刻度最初の対策
リスン範囲18789が公網到達ループバック/社内NICのみ、SGはデフォルト拒否
認証Tokenなし・弱い共有鍵高エントロピーToken、サービス別キー、ローテ
発見/デバッグmDNSやdebug APIが残存本番で無効化
外向き通信任意URLやメタデータIPへ到達可ドメイン許可リスト、必要ならプロキシ
秘密の漏洩DEBUGでToken、.envをイメージに焼くログマスキング、実行時注入、マルチステージビルド

コンテナは万能バリアではなく、ホストパスやDockerソケット共有でサンドボックスが無効化されます。アップグレードでデフォルトが変わるため設定をGit管理してください。

技術メモ:18789はファイアウォールで明示拒否をデフォルトに。openclaw doctorのJSON出力を版管理ストレージへ定期送信し差分検知に使えます。

2. ゲートウェイとToken

誰が・どこへ・何をできるかを分離し、本番は基本的に127.0.0.1バインド+SSHトンネルまたはmTLSリバプロを推奨します。

  1. 利用者インベントリ(CI/監視/端末)
  2. 新Token発行と旧Token失効ウィンドウ(例:72h)
  3. ステージングまたは1台のMacノードでカナリア
  4. 401/403の増加監視
  5. 期限後に旧Token削除とリロード
  6. チケットID付き監査記録
ssh -L 18789:127.0.0.1:18789 user@mac-cloud -N

リバプロではTLS終端とHSTSを有効化し、平文HTTPを避けます。

3. サンドボックスと外向き通信

デフォルト閉、業務ごとに開く方針です。外部向けサポートBotはSaaS APIドメインのみ、社内運用Botは社内ログAPIのみ、など行列で決めます。

ワークロードサンドボックス外向き
外向けBotFS読み取りのみ、シェル禁止許可ドメインのみ
社内Opsログ読み取りマウント社内エンドポイントのみ
開発支援タスクごとに作業ディレクトリ破棄Git/パッケージミラー限定
モデルやOpenClawのバージョンアップ後は最小権限テストを再実行してください。

4. Macクラウドでの隔離とバックアップ

本番エージェントは専用Macクラウドに置き、開発用ノートと分離します。launchd等で自動再起動。設定・スクリプト・バージョン番号をバックアップし、アップグレードは新ノード検証→トラフィック切替→48h様子見。迅速立ち上げは5分デプロイ記事と役割を分けます。多インスタンスはポート・データディレクトリ・ログ接頭辞を分離します。

変更窓外に軽いレッドチーム確認:未許可IPから18789へ、無効TokenでAPIを叩き拒否とアラートを確認します。

5. 専用Macノードを推す理由

Windows/WSLの長期運用はシグナルとファイルロックで不安定になりがちです。Dockerは便利ですがレイヤが増え、ホストマウントで隔離が薄れます。7×24で監査可能に運ぶなら、SSHとスナップショット可能なMacクラウドに本番基線を置くのが現実的です。VPSMACのM4 Macクラウドを借りれば電力と回線をプラットフォームに任せ、ポリシーとローテと監視に集中できます。

6. FAQ

アップグレード後の設定ドリフトは?

有効設定とdoctor出力を版管理し、差分で新しいリスンやツール権限を検知します。

同一ホストに2インスタンス?

ポートとデータディレクトリを分離。監査のためゲートウェイTokenは共有しない方がよいです。

DockerよりネイティブMac?

調査経路が短くlaunchd連携が容易。比較はDocker/npm/ソース記事を参照。