必要なものだけ allow "permissions": { "defaultMode": "acceptEdits", "disableBypassPermissionsMode": "disable", // ← 最重要 "disableAutoMode": "disable", "allow": [ "Read", "Glob", "Grep", "Edit(//home/*/projects/**)", "Write(//home/*/projects/**)", "Bash(npm run:*)", "Bash(npm test:*)", "Bash(git status)", "Bash(git diff:*)", "Bash(git add:*)", "Bash(git commit:*)", "Bash(ls:*)", "Bash(cat:*)" ], "ask": ["Bash(git push:*)", "Bash(git merge:*)"], "deny": [ // ネットワーク系(サンドボックスでも制御) "WebFetch", "WebSearch", "Bash(curl:*)", "Bash(wget:*)", "Bash(ssh:*)", // 権限昇格・破壊的操作 "Bash(sudo:*)", "Bash(rm -rf:*)", "Bash(git push --force:*)", // パッケージインストール "Bash(npm install:*)", "Bash(pip install:*)", "Bash(apt:*)", // 機密情報(sandbox.denyRead にもミラー) "Read(**/.env)", "Read(**/.env.*)", "Read(//home/*/.ssh/**)", "Read(//home/*/.aws/**)" ] } 📌 重要ポイント disableBypassPermissionsMode は最重要。必ず設定 deny のネットワーク系ルールは完全な保護ではない(Bash から回避 可能) 。 sandbox.network で二重に制御 することが重要 Read(**/.env) はsandbox.denyRead とミラーリング。Claude 制御 vs OS 強制 パイロット時は狭い許可リストから始めて、監査ログで必要なコマン ドを確認してから拡大する