サンドボックス + 全自動実行
13. セキュリティリスク回避コマンド / 機能
sandbox + --dangerously-skip-permissions概要
サンドボックスと --dangerously-skip-permissions を組み合わせることで、全自動実行しながら OS レベルの保護を維持できます。CI/CD での推奨構成です。
設定例
# settings.json(推奨設定)
{
"sandbox": {
"enabled": true,
"autoAllowBashIfSandboxed": true,
"allowUnsandboxedCommands": false // 重要:サンドボックス外実行を禁止
},
"permissions": {
"deny": [
"Read(.env*)",
"Read(~/.ssh/*)",
"Read(~/.aws/*)"
]
}
}
# 実行コマンド
claude -p --dangerously-skip-permissions "テストを実行してコミットして"
# セキュリティの構造
# ┌─────────────────────────────────────┐
# │ --dangerously-skip-permissions │
# │ → 権限確認をスキップ(全自動) │
# └─────────────────────────────────────┘
# ↓ でも
# ┌─────────────────────────────────────┐
# │ サンドボックス(OS レベル強制) │
# │ → 作業ディレクトリ外の書き込み禁止 │
# │ → 未許可ホストへの通信禁止 │
# │ → バイパス不可 │
# └─────────────────────────────────────┘
# GitHub Actions での例
- name: Run Claude
run: |
claude -p --dangerously-skip-permissions "PRをレビューして"
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}こんな時に使う
- CI/CD で安全に全自動実行したい時
- 権限確認なしでも保護を維持したい時
- 自動化と安全性を両立したい時
使い方
- 1settings.json で sandbox.enabled: true を設定
- 2allowUnsandboxedCommands: false でサンドボックス脱出を禁止
- 3--dangerously-skip-permissions で全自動実行
- 4deny ルールで追加の保護(.env など)
Tips
- この組み合わせが Anthropic 内部でも使われている
- サンドボックスの保護は bypassPermissions でも有効
- deny ルールもサンドボックスと併用可能
- excludedCommands で特定コマンドをサンドボックス外で実行可能(注意して使用)