サンドボックスの詳細設定
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~/.claude/settings.json(グローバル)または .claude/settings.json(プロジェクト)に設定
- 2enabled: true で有効化
- 3excludedCommands で Docker など非互換なコマンドを除外
- 4allowUnsandboxedCommands: false で脱出を完全禁止
Tips
- enableWeakerNestedSandbox は Docker 内で使う場合のみ(セキュリティ大幅低下)
- allowUnixSockets で Docker ソケットを許可するとホスト全体にアクセス可能になる
- enterprise 設定を使うと組織全体でサンドボックスを強制可能
- watchman は非互換、jest --no-watchman で回避