Claude Media
Claude Code権限モデルの変遷 — なぜ確認せずに動くようになったのか

Claude Code権限モデルの変遷 — なぜ確認せずに動くようになったのか

毎回の承認から始まったClaude Codeの権限モデルは、ルール・サンドボックス・分類器という3つの発明を経て、auto mode既定化に至りました。1年半の変遷をchangelogと公式資料で再構成します。

Claude Codeの権限モデルは、2025年2月の公開時点では「既定で読み取り専用、変更は毎回ユーザーに確認」でした。それから約1年半後の2026年8月、v2.1.228でPro・Max・Teamプランの既定はauto modeになり、確認なしで動くことが標準になりました。正反対に見えるこの2つの設計は、実は同じ問題への答えです。この記事では、その間に挟まった3つの発明 — 権限ルール、サンドボックス、分類器 — を時系列で追い、「なぜ確認しなくなったのか」に答えます。

出発点 — 既定で読み取り専用、変更は全部きく

Claude Codeは2025年2月24日、Claude 3.7 Sonnetの発表と同時にリサーチプレビューとして公開されました。当初の権限モデルは単純です。既定では読み取りだけが許され、ファイルの変更とコマンドの実行は原則すべてユーザーの承認を待ちます。echocatのような安全なコマンドだけが自動許可の例外でした。

この設計は安全側に倒した出発点としては正しく、一方で使うほどに問題が見えてきます。エージェントが自律的に働くほど承認ダイアログの回数は増え、ユーザーは内容を読まずに承認し始める。Anthropicはのちに、許可プロンプトの93%が承認されているという計測を公開しています。ほぼ全部通すのに毎回きくのは、安全装置として機能していません。以降の変遷は、この「承認疲れ」をどう解消するかの積み重ねです。

ルールの時代 — allow・ask・denyで例外を書く

最初の答えは「例外をユーザーに書かせる」でした。v0.2.26で承認済みツールを管理する/approved-toolsコマンドが入り、v0.2.67ではプロジェクト共有の権限ルールを.claude/settings.jsonに保存できるようになります。v1.0.7でコマンドは/permissionsに改名され、設定もsettings.jsonへ移行して、現在まで続くallow・ask・denyの3種ルールの形が固まりました。

ルールは今も権限モデルの土台です。denyルールはどのモードでも最優先で効き、askルールは後述のauto modeですら必ず確認を強制します。ただし、ルールだけでは承認疲れは解けませんでした。Bash(npm test)のような前方一致で書ける操作は限られ、初めての操作は結局すべてダイアログに落ちるからです。ルール設計の実践はClaude Code settings.json完全ガイドにまとめています。

Readのdenyルールは同じパスへのEditWriteも塞ぐ仕様のため、意図せず編集まで止まることがあります。この挙動とNotebookEditが対象外になる理由は「Read deny rule」エラーの対処で扱っています。

境界の時代 — サンドボックスの二層分離

2025年10月20日、Anthropicは発想を変えた2つ目の答えを出します。操作ごとに許可を判断するのではなく、先に「安全に動ける範囲」を引いてしまい、その内側では確認しない。v2.0.24で入ったBashツールのサンドボックスです。

境界は2本あります。ファイルシステム分離は作業ディレクトリの外への書き込みを遮断し、ネットワーク分離は許可されたホスト以外への接続をプロキシで止めます。片方だけでは不十分で、両方そろって初めてプロンプトインジェクションを受けても被害が外へ出ない構造になる、というのが設計の核心です。Anthropicは社内利用で承認プロンプトが84%減ったと報告しており、詳細はClaude Codeのサンドボックス設計で解説しています。

サンドボックスの意義は「許可の判断を減らしたのではなく、判断が要らない空間を作った」点にあります。ただし境界の外に出る操作 — 本番への接続、外部ドメインへの送信 — は相変わらずユーザー確認に落ちます。承認疲れの最後の一角は残りました。

判定の時代 — auto modeの分類器

3つ目の答えが、確認の主体そのものを置き換える発明でした。2026年3月25日にengineering blogで公開されたauto modeは、ユーザーの代わりに別のモデル(分類器)がツール呼び出しを審査します。読み取りと作業ディレクトリ内の編集は素通しにし、それ以外を分類器に回して、要求の範囲を超える操作・見覚えのないインフラへの操作・読み込んだ敵対的コンテンツに駆動された操作をブロックする構造です。設計の全体像はClaude Code auto modeの中身、運用者が書き換えられるルール層はauto mode分類器は何を止めているかで扱っています。

公開直後のauto modeは何重にも慎重でした。起動には--enable-auto-modeフラグが必要で、2026年4月のv2.1.111でフラグが不要になり、5月のv2.1.152で初回の同意画面も撤廃されます。Bedrock・Vertex・Foundryの各プロバイダでは環境変数CLAUDE_CODE_ENABLE_AUTO_MODE=1によるオプトインがv2.1.158からv2.1.206まで続き、v2.1.207で撤廃されました。機能の中身より先に、「誰がどう有効化するか」の敷居が段階的に下げられていったことが読み取れます。

既定化 — v2.1.228で「聞かない」が標準になる

2026年8月11日のv2.1.228で、Pro・Max・TeamプランのセッションはmacOS・Linux・WSLで既定からauto modeで始まるようになりました。ネイティブWindowsはv2.1.233で続きます。約1年半かけて、権限モデルの既定は「全部きく」から「分類器が見る」へ反転しました。この転換点の詳細はv2.1.228のリリースノートでも触れています。

ただし全員が対象ではありません。既定がauto modeにならない環境は明確に区切られています。

実行環境既定の権限モード
Pro / Max / Teamプラン(ターミナル・VS Code拡張)既定の権限モードauto
Enterpriseプラン、Claude ConsoleのAPIキー既定の権限モードManual
claude -p(非対話実行)とAgent SDK既定の権限モードManual
Bedrock / Vertex / Foundryなどサードパーティプロバイダ既定の権限モードManual
設定でdisableAutoMode: "disable"を配布した組織既定の権限モードManual(autoを選択肢からも除去)

インストール直後の初回セッションも例外的にManualで始まり、既定でautoが初めて適用されるときは通知が表示されます。また~/.claude/settings.jsonで別のdefaultModeを設定済みの場合はその設定が優先され、autoへ変えるかを一度だけ確認されます。既定化は一斉切り替えではなく、明示的な設定と統制の余地を残した段階適用になっています。

auto modeの分類器に判定を委ねず、事前許可したツール呼び出しだけを実行して他は全部拒否したい場合はdontAskモードを選びます。CI組み込みの手順とつまずきどころはClaude Code dontAskモードとはにまとめています。

変遷をバージョンで振り返る

時期バージョン出来事
2025年2月バージョン公開(リサーチプレビュー)出来事既定で読み取り専用、変更は都度承認
2025年バージョンv0.2.26 → v1.0.7出来事/approved-toolsから/permissionsへ。allow・ask・denyルールが確立
2025年10月バージョンv2.0.24出来事Bashサンドボックス(ファイルシステム+ネットワークの二層分離)
2026年3月バージョン—(engineering blogで発表)出来事auto mode公開(--enable-auto-modeによるオプトイン)
2026年4月バージョンv2.1.111出来事フラグ不要に
2026年5月バージョンv2.1.152出来事初回の同意画面を撤廃
2026年6月〜バージョンv2.1.183ほか出来事破壊的gitコマンドの遮断など分類器のルールを継続拡充
2026年8月バージョンv2.1.228 / v2.1.233出来事Pro・Max・Teamの既定がauto modeに(macOS・Linux・WSL → Windows)

判定の軸は「コマンドの形」から「会話の文脈」へ移った

この1年半で変わったのは確認の回数だけではありません。何を根拠に許可を判断するかが入れ替わっています。ルールの時代の判定材料はコマンドの文字列でした。Bash(git push *)という形にマッチするかどうかがすべてで、その操作が会話の流れの中で妥当かは見ていません。

分類器は逆です。ユーザーのメッセージ・ツール呼び出し・CLAUDE.mdを読み、「ユーザーは何を頼んだか」を踏まえて個々の操作を判定します。会話の中で「レビューまでpushしないで」と述べれば、ルールに書かれていなくてもブロック信号として扱われます。同じgit pushでも、頼まれた作業の範囲内なら通り、範囲外なら止まる。判定の単位が操作の形から意図との整合へ移ったことこそ、この変遷の本質です。

象徴的なのは、auto modeに入るとBash(*)のような広範なallowルールが一時停止される仕様です。ユーザーが自分で書いた「全部許可」よりも、文脈を読む分類器の判定を優先する。ルールで先回りする設計は、ここで事実上役目を分類器へ譲りました。一方でこの構造は、判定の正しさが分類器の精度に依存することも意味します。誤ブロックが3回連続または累計20回に達するとauto modeは一時停止して従来の確認に戻る、というフォールバックが用意されているのは、その依存への保険です。

よくある質問

昔のように毎回確認する動作に戻せますか

戻せます。セッション中はShift+TabでManualモードに切り替えられ、~/.claude/settings.jsonpermissions.defaultMode"default"を設定すれば毎セッションManualで始まります。手順の詳細は自動承認をオフにする手順にまとめています。

bypassPermissionsとauto modeは何が違いますか

bypassPermissionsは分類器を含む安全チェックを無効化して即実行するモードで、コンテナやVMなど隔離環境専用と位置付けられています。auto modeは確認を省く代わりに分類器の審査が全操作に入る点で別物です。

分類器の判定にもトークン料金がかかりますか

EnterpriseプランとAPI・Bedrock・Vertex・Foundry経由の利用では、分類器の呼び出しがトークン使用量に計上されます。読み取りと作業ディレクトリ内の編集は分類器を通らないため、上乗せは主にシェルコマンドとネットワーク操作で発生します。

組織として既定化を止められますか

止められます。管理設定(managed settings)でpermissions.disableAutoMode"disable"にすると、組織内のセッションからautoモードが選択肢ごと消えます。特定の操作だけ人間の確認を挟みたい場合は、auto modeを残したままpermissions.askルールを配る方法もあります。確認しておきたい設定の一覧はauto mode既定化で確認したい設定を参照してください。

まとめ

Claude Codeの権限モデルは、毎回の承認(2025年2月)→ allow・ask・denyルール(v0.2〜v1.0)→ サンドボックスの二層分離(2025年10月)→ 分類器によるauto mode(2026年3月)→ 既定化(2026年8月・v2.1.228)と進みました。一貫しているのは「93%が素通しされる確認は安全装置ではない」という問題意識で、確認をなくしたのではなく、形骸化した確認を機械に任せ、人間の判断を本当に必要な場面へ寄せ直した変遷です。既定に乗るか、Manualへ戻すか、askルールで要所だけ確認を残すか — 選択肢は3段階とも現役で、どこに立つかを選べること自体がこの1年半の成果と言えます。

この記事を共有:XはてブLinkedIn