Claude Codeの仕組み講座(講師のためのエンジニア水準)
区分4 安全と設定★★サンドボックスは、直訳すると「砂場」です。 砂場の外には出られない遊び場のように、コマンドが触れる範囲をOSの機能で囲います。
たとえ話にします。 事務所の入退室管理です。 社員(コマンド)は、入れる部屋と出せる書類があらかじめ決まっていて、判断に関係なくドアが開かない、という仕組みです。
名前が似ているので、最初に分けます。
| 何が決めるか | 何を決めるか | |
|---|---|---|
サンドボックス(/sandbox) |
OS(人もAIも関係なく強制) | コマンドが触れる範囲 |
| 自動モード(auto) | 別のAI(分類器。操作をしてよいかを判定するAI) | その操作を実行してよいか |
囲いは、判断をせずに「できる範囲」を狭めます。ドアが開かないだけで、相手が誰でも同じです。 自動モードは、操作ごとにAIが「やってよいか」を判断します。 違いは、判断を使うかどうかです。
囲いの対象は、シェルのコマンド(Bash など)と、そこから起動される処理です。シェルは、コマンドを打ち込んで動かす画面のことです。
初期設定では切ってあり、/sandbox で入れます。macOS・Linux・WSL2(Windows の中で Linux を動かす仕組み)で使えます。
囲いを強制するのは、OSの機能です。macOS では Seatbelt(macOS に最初から入っているサンドボックス機能)、Linux と WSL2 では bubblewrap(Linux で同じ働きをする仕組み)を使います。
何を止めるのかは、ファイルの読み書きの範囲と、ネットワークの2つです。
コマンド ──▶ 囲いの中で動く
├─ 書ける所 :作業場のフォルダと、一時フォルダだけ
├─ 読める所 :パソコンのほとんど(秘密の置き場も読める)
└─ 通信 :手元の中継所(プロキシ)を通り、許可済みの相手だけ
(初期は許可済みの相手が空)
読み取りは広く開いているので、~/.ssh のような秘密の置き場も読めてしまいます。守りたければ別途設定します。
通信の許可済みの相手(ドメイン。example.com のようなネット上の住所)は、初期は空です。
つまり、コマンドが知らない所へ通信しようとすると、そこで止まります。
受講生が勘違いしやすいのは、囲いが何を囲うかです。 囲われるのはコマンドだけで、次の物は囲いの外で動きます。
つまり、サンドボックスを入れても、「AI全体が囲われる」わけではありません。 囲いはコマンドの足元だけです。 さらに強く囲うなら、Claude Code 全体を容器や仮想マシンの中で動かします。
サンドボックスには2つのモードがあります。
囲いの中で動かせないコマンド(囲いと相性が悪いもの)のために、囲いの外で動かす逃げ道もあります。 そのときは、モードに応じて許可を聞かれるか、後述の分類器が判断します。 逃げ道を禁止する設定もあります。
許可ルールとの関係は、補い合う関係です。 サンドボックスの設定と許可ルールで指定した場所は、まとめて最終的な囲いに合算されます。 deny ルールは、囲いの中でも守られます。
自動モードは、許可の確認を人に聞く代わりに、別のAI(分類器)が裏で操作を審査するモードです。 危なくない操作は通し、危ない操作は止めます。 対話の画面では、標準の開始モードです。
審査にはお金(利用量)もかかります。 審査が働くのは主にコマンドやネットワーク操作で、作業場の中での読み取りや編集は審査を通りません。
操作ごとに、次の順で調べ、最初に当たった物で決まります。
つまり、許可ルールが先、分類器は残りの判断です。 No.13 で学んだ順番は、自動モードでも生きています。
自動モードに入る時、危険の大きい広い allow ルール(Bash(*) など、何でも実行できる物)は、一時的に外されます。
範囲の狭いルール(Bash(npm test) など)は残ります。
分類器が見るのは、あなたの発言、AIが呼ぼうとした道具の内容、CLAUDE.md です。 道具の結果(読んだファイルの中身など)は見せません。 ファイルやWebページに悪意のある指示が紛れていても、分類器をだませないようにするためです。
公式が「標準で止める」と書いている例は次のとおりです。
curl | bash など。ネットから取った命令を、中身を見ずに動かす書き方)共通点は、戻せない・外に出る・権限が広がるです。 読み取りや、作業場の中での編集は、止められません。
会話で「pushしないで」「レビューを待って」と言うと、分類器はそれを止める合図として扱います。 逆に、止められた操作を「やってよい」と具体的に言えば、その1回分は通ります(「強制プッシュしてよい」だけでなく、どのブランチ(作業の枝分かれ)かまで示す必要があります)。
ただし、会話の発言は要約(No.06)で消えうるので、絶対に守りたいことは deny に書きます。 そもそも、公式は自動モードを「確認の回数を減らすが、安全を保証するものではない」と説明しています。
分類器が連続3回、または累計20回止めると、自動モードは一度止まり、人への確認に戻ります。 この回数は設定で変えられません。 何度も止まるのは、分類器があなたの環境の事情(社内のサーバーなど)を知らないことが多く、管理者が信頼する範囲を設定する、というのが公式の説明です。
○ 受講生によく聞かれる質問:「サンドボックスと自動モードは、どちらを使えばいい?」
→ 役割が違います。囲いは「触れる範囲」を狭め、自動モードは「やってよいか」を審査します。両方使えます。囲いは判断に左右されないので、強い守りです
○ 受講生によく聞かれる質問:「止められたのはなぜ?」
→ /permissions の「Recently denied」に一覧が出ます。そこで再実行を承認することもできます
○ 関係する単元:No.13 許可ルール、No.06 要約(発言が消える話)
囲い(サンドボックス)はOSがコマンドの範囲を強制する。自動モードはAIが実行してよいかを審査する。判定はルールが先、分類器が残り。守りたい物は deny と囲いで重ねる。
問1 サンドボックスを入れました。AIがファイルを書き換える道具(Edit)で作業場の外のファイルを書こうとした時、囲いは守ってくれますか?
問2 サンドボックスと自動モードの違いとして、本文に沿っているのは?
問3 自動モードで、allow ルールが当たる操作と、どのルールにも当たらない危なそうな操作が混ざっています。判定の流れとして正しいのは?
問4 自動モードの分類器が、ウェブページに書いてあった悪意のある指示にだまされにくいのはなぜですか?
出典:Claude Code 公式ドキュメント「Configure the sandboxed Bash tool」(https://code.claude.com/docs/en/sandboxing)「Choose a permission mode」(https://code.claude.com/docs/en/permission-modes)「Configure permissions」(https://code.claude.com/docs/en/permissions)。2026年10月13日に確認