HOME / ブログ / AIサービス

AIサービス

Claude Codeの「権限」とは?許可・確認・拒否で、できることを決めるしくみ

「Claude Codeに仕事を任せたいけれど、知らないうちにファイルを消されたり、勝手に操作されたりしないか不安」。こう感じている方は多いのではないでしょうか。

その不安に答えるしくみが、Claude Codeの「権限(パーミッション)」です。この記事では、公式ドキュメントの内容にもとづいて、権限の基本的な考え方を整理します。結論を先に言うと、Claude Codeは「何を自動でやってよいか」「何は毎回確認するか」「何は禁止するか」を、ルールとして決めておけるようになっています。

権限とは?「許可・確認・拒否」の3つのルール

権限のルールには、次の3種類があります。

ルール意味
allow(許可)確認なしで実行してよい
ask(確認)使うたびに「実行していいですか?」と聞く
deny(拒否)実行させない

たとえば「ファイルの読み取りは許可、コマンドの実行は確認、特定の操作は拒否」のように、操作の種類ごとに決められます。ルールは設定ファイル(settings.json)の `permissions` という項目に書きます。

Claude Codeの権限ルール(deny→ask→allowの順に判定)と、権限モードの種類を整理した図

ルールは「拒否→確認→許可」の順に判定される

複数のルールが当てはまるときは、deny → ask → allow の順に調べ、最初に当てはまったものが結果になります。公式ドキュメントによると、ルールの細かさ(具体的かどうか)で順番が変わることはありません。

つまり、広い範囲を「拒否」にしてあると、その中の一部だけを「許可」にしても、拒否が優先されます。「基本は止める、例外だけ通す」という使い方はできず、「拒否したいものを明確に決める」という考え方で組み立てることになります。

権限ルールを守らせているのは、AIではなくClaude Code本体

ここは安心材料になる点です。公式ドキュメントでは、権限ルールはモデル(AI)ではなくClaude Code自体が強制すると説明されています。

プロンプトやCLAUDE.mdに「このフォルダは触らないで」と書くと、Claudeの試みる内容には影響します。しかし、実際に何が許されるかを変えるものではありません。「お願い」ではなく「仕組みとして止めたい」ことは、権限ルールで決めるのが基本です。CLAUDE.mdについては、Claude Codeの「CLAUDE.md」とは?で詳しく整理しています。

最初は何に確認が出る?

標準の状態(Manual、default)では、操作の種類によって確認が出るかどうかが変わります。公式ドキュメントの表を、分かりやすくまとめると次のとおりです。

操作初回の確認
ファイルの読み取り(作業フォルダ内)出ない
コマンドの実行出る(`ls`、`cat`、`pwd`など、読み取り専用の組み込みコマンドは除く)
ファイルの編集・作成出る
Webページの取得(WebFetch)出る(事前承認された公式ドキュメント系のドメインは除く)
Web検索出る

確認が出たときに「Yes, and don’t ask again(今後は聞かない)」を選ぶと、そのルールが保存されます。コマンドやWebFetchのドメインは、設定ファイル(`.claude/settings.local.json`)に保存され、次回以降も有効です。ファイル編集の許可は、その会話が終わるまでです。

確認の強さを選ぶ「権限モード」

ルールとは別に、全体の確認の強さを切り替える「権限モード」があります。公式ドキュメントに載っている主なモードは次のとおりです。

モード動き
default(Manual)ツールの初回使用時に確認。読み取りのみは確認なし
acceptEdits作業フォルダ内のファイル編集や、`mkdir`・`mv`・`cp`などを自動で承認
plan調べるだけで、ソースの編集はしない。計画を承認するまで編集は止まる
autoバックグラウンドの判定機能が実行前に確認し、通常の確認を省く
dontAsk確認が必要な操作を自動で拒否する
bypassPermissions確認を省略する

ターミナルでは、Shift+Tab キーでモードを順に切り替えられます。起動時に `claude –permission-mode <モード名>` で指定する方法もあります。

初めて使う場合は、標準の確認ありの状態か、「plan」で内容を確認しながら進める方法が分かりやすいでしょう。何を任せるかの決め方は、Claude Codeを使い始める前に決めておきたい5つのことでも整理しています。

設定を確認・変更するには

今どんなルールが効いているかは、`/permissions` というコマンドで一覧表示できます。それぞれのルールが、どの設定ファイルから来ているかも分かります。

設定ファイルは、主に3か所あります。

  • `~/.claude/settings.json`:ユーザー(自分のすべてのプロジェクト)
  • `.claude/settings.json`:プロジェクト
  • `.claude/settings.local.json`:ローカル(自分だけ・そのプロジェクトだけ)

このほか、組織の管理者が設定する「管理設定」もあります。

知っておきたい注意点

bypassPermissions(確認の省略)は慎重に

このモードでは、`.git` や `.claude` といった保護対象のフォルダへの書き込みでも、確認が省略されます。公式ドキュメントは、コンテナや仮想マシンなど、隔離された環境で使うよう案内しています。普段の仕事のパソコンで、大事なファイルがある状態で使うものではありません。

autoモードも「安全の保証」ではない

autoモードは確認の手間を減らしますが、公式ドキュメントでは「安全を保証するものではない」と明記されています。

コマンドの拒否ルールは「完璧な壁」ではない

たとえば `Bash(rm *)` というルールは `rm -rf build/` を止めますが、`/bin/rm -rf build/` のように書き方を変えた場合や、`bash -c ‘…’` で包んだ場合までは止められません。公式ドキュメントでも、コマンドの拒否・確認ルールは「そのプログラムを囲む安全境界ではない」と説明されています。確実に止めたい操作がある場合は、サンドボックスの併用や、フックによる事前チェックを組み合わせる方法が案内されています。

ファイルの読み取り制限にも限界がある

ファイルの読み取りを止めるルールは、組み込みのツールや、`cat`のような一部のコマンドには効きます。一方、中でファイルを開いて処理するスクリプトなどには効きません。OS側で確実に制限したい場合は、サンドボックスの使用が案内されています。

よくある疑問

ルールを書かないと、勝手に何でも実行されますか?

標準の状態では、ファイルの読み取り以外の多くの操作で確認が出ます。確認なしで進めたい操作だけを、自分で許可ルールに加えていく使い方になります。

ルールの書き方が難しそうです。

最初から自分で書く必要はありません。確認ダイアログで「今後は聞かない」を選べば、ルールは自動で保存されます。あとから `/permissions` で内容を確認し、整理する流れで十分です。

AIに任せる範囲や、設定の整え方がよく分からない場合は?

当社では、Claude Codeの説明から導入までをサポートしています。やりたいことを伝えていただければ、設定は当社で行います。見積りはヒアリングのうえ、個別に対応します。

まとめ

Claude Codeの権限は、許可・確認・拒否の3つのルールと、確認の強さを選ぶ権限モードの組み合わせでできています。ルールを強制するのはAIではなくClaude Code本体なので、「止めたいこと」は仕組みとして決めておけます。

ただし、確認を省略するモードや、書き方に左右されるコマンドのルールには限界があります。最初は確認ありの状態で使い、慣れてきた操作から少しずつ許可を増やすのが、無理のない進め方です。

無料で相談する