Claude Codeの仕組み講座(講師のためのエンジニア水準)

区分4 安全と設定★★★

No.13 許可の判定順と許可モード

「なぜ今、許可を聞いてきたのか」「なぜこの操作は止まらなかったのか」に、決まった順番から答えられるようになる単元です。受講生の不安に直結する所なので、順番のルールはしっかり、細かい書き方は考え方だけで十分です。
目次
  1. 第0章 前提知識
  2. 第1章 判定の順番
  3. 第2章 許可モード
  4. 確認問題

第0章 前提知識

① 許可 :AIが現実を変える前の関所

AIは、道具(ファイルの編集やコマンドの実行など、現実に働きかける手段)で、あなたのパソコンの中身を書き換えられます。 そこで、危ない操作の前に「やってよいですか」と確認する関所があります。これが許可(パーミッション)です。

たとえ話にします。 事務所の稟議(りんぎ)です。 小さな事は担当者の判断で進め、大きな事は上司の承認を取ってから動きます。

② 関所は2段で考える

混ざりやすいので、先に分けます。

決める物 たとえ
許可モード 全体として、どれくらい確認するか 稟議の厳しさの基本設定
許可ルール 個々の操作ごとの「いい・ダメ」 個別の取り決め(この件は決裁不要、この件は禁止)

モードが基本の厳しさ、ルールが例外です。 ルールはモードの上に重ねて効きます。

もう一つ大事な区別があります。 CLAUDE.md の「〜しないで」は、AIへのお願いです。 許可ルールは、Claude Code 本体が実行の直前に判定する鍵です。AIの気分や会話の記憶に左右されません。

第1章 判定の順番

① 3種類のルールと、決まった順番 必ず覚える

ルールは3種類です。

複数のルールに当てはまる時は、deny → ask → allow の順に調べ、最初に当たった物で決まります。 ルールが細かいか広いかは関係ありません。

Bash は、シェル(ターミナルでコマンドを打ち込んで動かす画面)でコマンドを動かす道具です。 たとえば Bash(aws *)(aws は Amazon のクラウドを操作するコマンド)を deny にすると、Bash(aws s3 ls) を allow にしても止まります。 allow は deny の例外を作れません。 同じく、ask と allow が両方当たる時は、ask(確認)が勝ちます。

設定ファイルが別でも同じです。 ユーザー設定で allow しても、作業場の設定で deny されていれば止まります。 逆に、ユーザー設定の deny は、作業場の allow より強いです。 どの設定ファイルの deny も、allow より先に調べられるからです。

② ルールの書き方:道具名と、その中身 さらっと

ルールは 道具名(中身) の形です。

書き方 意味
Bash コマンドの実行、全部
Bash(npm run build) このコマンドだけ(npm は、JavaScript の部品を入れたり動かしたりするコマンド)
Bash(npm run *) npm run で始まる物(* は何でも一致)
Read(./.env) .env を読むこと
WebFetch(domain:example.com) example.com へのアクセス

* の位置は大事です。Bash(git log *) は git log だけを許し、Bash(git *) は git の全部を許します。git は、ファイルの変更履歴を管理する道具です。 サブコマンド(git log の log のように、何をするかを決める語)の後ろに * を置くのが基本です。

ファイルの場所は、gitignore(git に無視させるファイルを指定する書き方)と同じ決まりで、4種類あります。

書き出し 意味
// で始まる ファイルシステム全体の絶対パス
~/ で始まる ホームフォルダから
/ で始まる 設定ファイルの置き場を基準にした位置
./ か何もなし いまの作業場から

/Users/... のように1本のスラッシュで始めても、絶対パス(パソコンの一番上から全部書いた場所)にはなりません。間違えやすいので注意してください。

「この操作を止めたい/聞かずに通したい」と、AIに頼めば書いてくれます。 頼み方の例:「git push は必ず止まるように、deny のルールを入れて」。

③ 抜け道を知っておく 必ず覚える

Bash のルールは「コマンドの文字」と照合します。 たとえば Bash(git push *) を deny にしても、git -C . push のように書き方を変えた物は一致しません(公式が「ルールが一致しない例」として書いています)。

一方、Read と Edit の deny は強めです。 Claude の読み書きの道具だけでなく、Bash の cat・sed など、認識できるファイル操作や、リダイレクト(> file で、コマンドの出力をファイルへ書き込む書き方)にも効きます。 ただし、ファイル名を書かずに中身を読むコマンド(フォルダ全体を検索するなど)は、止められないことがあります。

だから、守りたい物には層を重ねます。 deny の鍵、フック(決まった場面で自動で動く処理。No.10)、OS(パソコンの基本ソフト)による囲い(No.14)を併用します。

○ deny の特徴:道具の名前だけの deny(Bash など)は、その道具がAIの視界から消えます。Bash(rm *) のような中身つきの deny は、道具は残り、当てはまる呼び出しだけを止めます
○ 関係する単元:No.10 フック、No.15 設定ファイルの優先順位

第2章 許可モード

① モードは「確認の多さ」を選ぶスイッチ 必ず覚える

会話の途中で切り替えられます(ターミナルでは Shift+Tab)。 公式のモードは次のとおりです。設定上の名前を、かっこで添えます。

モード 聞かずに通る範囲 向く場面
毎回確認(Manual。設定名 default) 読み取りだけ 一つ一つ確かめたい作業
編集を自動承認(acceptEdits) 読み取り、ファイル編集、mkdir・mv など簡単な操作 手元で結果を見ながら進める時
計画(plan) 読み取りだけ。ファイルは編集しない 変える前に調べて、案を出させる時
自動(auto) ほぼ全部。ただし裏で別のAI(分類器。詳しくは No.14)が見張る 長い作業で確認疲れを減らす時
聞かない(dontAsk) 事前に許可した物だけ。聞く場面は全て拒否 無人で動かす固定の作業
全部飛ばす(bypassPermissions) ほぼ全部 隔離された容器や仮想マシン(パソコンの中に作る別のパソコン)の中だけ

自動モードは次の No.14 で詳しく扱います。 2026年10月時点で、対話の画面では自動モードが標準の開始モードです。

② モードの上に、ルールが効く 必ず覚える

モードとルールの関係は、次のとおりです。

つまり、モードで基本の厳しさを選び、守りたい物だけルールで締めるという分担です。 無人で動かすなら、dontAsk と、許可した物だけを allow に書く組み合わせが基本の考え方です。 コマンドの -p(画面なしで実行するオプション)で動かす時の具体的な組み合わせは、No.16 で扱います。どちらも「聞かれる場面は拒否する」点が同じです。

③ 組織が上から締める さらっと

会社の管理者は、管理設定でルールを配れます。 管理設定の deny は、ユーザーも作業場の設定も、コマンドの起動オプションも上書きできません。 自動モードや「全部飛ばす」を使えなくする設定(disableAutoMode など)も、そこに置かれます。

○ 受講生によく聞かれる質問:「許可を聞かれないのは安全?」
→ モードとルール次第です。自動モードは裏で見張りがありますが、完全な保証ではありません。守りたい物には deny を置く、と答えます
○ 受講生によく聞かれる質問:「CLAUDE.md に書けば禁止にならない?」
→ お願いなので、保証はありません。deny は本体が実行前に止める鍵です。絶対に外せない物は deny へ
○ 受講生によく聞かれる質問:「allow を足したのに止まる」
→ どこかに deny か ask が当たっている可能性が高いです。/permissions で全ルールと置き場所を一覧できます
○ 数字・名前は2026年10月時点の公式。モードの名前や増減は版で変わります

判定は deny → ask → allow で、最初に当たった物が勝つ。モードは基本の厳しさ、ルールは例外。守りたい物は CLAUDE.md でなく deny に。

確認問題

問1 Bash(git push *) を deny にし、Bash(git push origin main) を allow にしました。git push origin main はどうなりますか?

問2 「共有の設定に、絶対に deploy させたくない」と受講生が言いました。最も確実なのは?

問3 「全部飛ばす(bypassPermissions)」モードで、deny ルールに当たる操作を頼みました。どうなりますか?

問4 無人で毎晩動かす定型作業に、最も向く考え方はどれですか?

出典:Claude Code 公式ドキュメント「Configure permissions」(https://code.claude.com/docs/en/permissions)「Choose a permission mode」(https://code.claude.com/docs/en/permission-modes)「How Claude Code works」(https://code.claude.com/docs/en/how-claude-code-works)。2026年10月13日に確認