CC逆引きリファレンス

サンドボックスの詳細設定

13. セキュリティリスク回避

コマンド / 機能

settings.json の sandbox セクション

概要

サンドボックスの動作を settings.json で細かく設定できます。自動許可、除外コマンド、ネットワーク設定などをカスタマイズ可能です。

設定例

// settings.json - サンドボックス設定
{
  "sandbox": {
    // 基本設定
    "enabled": true,                    // サンドボックス有効化
    "autoAllowBashIfSandboxed": true,   // サンドボックス内コマンドを自動許可

    // 脱出制御
    "allowUnsandboxedCommands": false,  // dangerouslyDisableSandbox を禁止
    "excludedCommands": ["docker", "git push"],  // サンドボックス外で実行

    // ネットワーク設定
    "network": {
      "allowUnixSockets": ["/var/run/docker.sock"],
      "allowLocalBinding": true,        // localhost バインド許可(macOS)
      "httpProxyPort": 8080,            // カスタム HTTP プロキシ
      "socksProxyPort": 8081            // カスタム SOCKS5 プロキシ
    },

    // 特殊環境用
    "enableWeakerNestedSandbox": false  // Docker 内で使う場合(セキュリティ低下)
  }
}

// 設定の優先順位
// 1. enterprise 設定(管理者が強制、変更不可)
// 2. プロジェクト設定(.claude/settings.json)
// 3. ユーザー設定(~/.claude/settings.json)

こんな時に使う

  • サンドボックスの動作をカスタマイズしたい時
  • 特定のコマンドをサンドボックス外で実行したい時
  • Docker と連携したい時

使い方

  1. 1~/.claude/settings.json(グローバル)または .claude/settings.json(プロジェクト)に設定
  2. 2enabled: true で有効化
  3. 3excludedCommands で Docker など非互換なコマンドを除外
  4. 4allowUnsandboxedCommands: false で脱出を完全禁止

Tips

  • enableWeakerNestedSandbox は Docker 内で使う場合のみ(セキュリティ大幅低下)
  • allowUnixSockets で Docker ソケットを許可するとホスト全体にアクセス可能になる
  • enterprise 設定を使うと組織全体でサンドボックスを強制可能
  • watchman は非互換、jest --no-watchman で回避