Claude Codeの権限設定許可・確認・拒否のルールを安全に設計する
Claude Codeは、ファイルの編集やコマンドの実行の前に、許可を確認します。許可・確認・拒否のルール、権限モード、設定ファイルでの管理、安全な設計の考え方、やってはいけない設定を整理します。
公的機関・公式資料などの一次情報と照合して作成しています。このサイトについて
Claude Codeの権限設定とは
Claude Codeは、ファイルの編集、コマンドの実行、外部ツールの利用などの影響のある操作について、実行前に、利用者の許可を確認するのが基本です。この権限(Permissions)の仕組みを理解し、適切に設定することは、安全に使うための最も重要な部分です。権限の種類・設定の書式・モードの名称は、更新されることがあります。最新の仕様は、公式ドキュメントで確認してください(Claude Codeの基本的な使い方、安全に使うための設定)。
基本の考え方:操作の種類によって扱いが違う
| 操作の種類 | 一般的な扱い |
|---|---|
| ファイルの読み取り・検索 | 影響が小さいため、確認なしで行えることが多い |
| ファイルの編集・作成 | 確認を求める(設定により、自動許可にもできる) |
| コマンドの実行 | 確認を求める(安全と判断された一部のコマンドは、確認なしの場合がある) |
| ネットワークの利用・外部ツール | 確認を求める |
具体的にどの操作が確認の対象かは、バージョン・設定により異なるため、公式で確認してください。
許可・確認・拒否のルール
設定では、操作のパターンごとに、「許可(allow)」「確認(ask)」「拒否(deny)」を指定できます。
| ルール | 内容 | 例 |
|---|---|---|
| 許可 | 確認なしで実行してよい | テストの実行コマンド、読み取り専用のコマンド |
| 確認 | 毎回、利用者に確認する | 設定上、慎重に扱いたい操作 |
| 拒否 | 実行させない | 秘密情報ファイルの読み取り、危険なコマンド |
拒否のルールは、許可より優先されます。公式ドキュメントでは、「拒否 → 確認 → 許可」の順に評価され、最初に一致したものが適用されると説明されています(より具体的な許可ルールがあっても、広い拒否ルールが優先されます)。
書き方のイメージ(概念)
ルールは、ツールの名前と、対象のパターンで書きます。次は、概念を示す例です(書式は、必ず公式の最新の例で確認してください)。
{
"permissions": {
"allow": ["Bash(npm run test:*)", "Bash(git diff:*)"],
"deny": ["Read(./.env)", "Bash(rm -rf:*)"]
}
}
| 例の意味 | 内容 |
|---|---|
| allow | テストの実行と、差分の確認は、確認なしで許可 |
| deny | .envの読み取りと、rm -rfは拒否 |
権限モード
Claude Codeには、作業の進め方に応じて、確認の粒度を切り替えるモードがあります。
| モードの種類 | 内容 |
|---|---|
| 通常(毎回確認) | 影響のある操作の前に、確認する(default。画面上の表示は「Manual」) |
| 編集の自動許可 | ファイルの編集と一部のファイル操作は、確認なしで許可する(acceptEdits) |
| 計画のみ(Plan) | 調査と計画だけを行い、ソースの編集は行わない(plan。プランモード) |
| 自動判定(auto) | 定型の確認を省き、代わりに別のモデル(分類器)が、操作が依頼に沿っているかを実行前に審査する(auto。利用できる環境・プランは公式で確認) |
| 確認せず拒否 | 確認が必要になる操作を、すべて自動で拒否する(dontAsk。事前に許可した操作は動く) |
| 確認を省略するモード | 確認をほぼすべて省略する(bypassPermissions)。非常に危険。隔離された環境でのみ検討する |
対話中はShift+Tabでモードを切り替えられ、既定のモードは設定(defaultMode)で変えられます(2026年10月時点)。最近のバージョンでは、対話セッションがautoで始まる場合があるため、どのモードで動いているかを画面の表示で確認してください。モードの名称・切り替え方法は、更新されることがあります。公式で確認してください。
設定の階層
権限は、複数の場所の設定を、組み合わせて決まります(settings.jsonの設定項目)。
| 階層 | 用途 |
|---|---|
| ユーザー設定 | 自分の、すべてのプロジェクトに共通する設定(~/.claude/settings.json) |
| プロジェクト設定 | プロジェクトごとの設定。Gitで共有し、チームで揃える(.claude/settings.json) |
| ローカル設定 | 自分だけの、プロジェクト固有の設定(共有しない。.claude/settings.local.json) |
| 組織の管理設定 | 組織で一括して強制する設定(提供される場合) |
組織の管理設定のルールは、個人の設定やコマンドラインの指定では上書きできません。また、どの階層の拒否ルールも、他の階層の許可ルールより先に評価されます。
安全な設計の考え方
| 考え方 | 内容 |
|---|---|
| 最小権限 | 必要な操作だけを許可する |
| 読み取りから許可 | 影響の小さい操作から、許可を広げる |
| 破壊的な操作は拒否・確認 | 削除、強制上書き、本番への反映など |
| 秘密情報は、拒否で守る | .env、鍵ファイルの読み取りを、拒否する |
| 慣れてから広げる | 最初は確認を多めに、様子を見て調整する |
| 仕組みで担保する | 重要なルールは、CLAUDE.mdではなく、権限・フックで(フック(Hooks)、CLAUDE.mdの書き方) |
許可してよいもの・慎重にすべきもの
| 区分 | 例 |
|---|---|
| 比較的安全 | テストの実行、リンターの実行、差分の確認、ビルド |
| 慎重にすべき | パッケージのインストール、ネットワークへの接続、ファイルの一括変更 |
| 原則として拒否・確認 | ファイルの削除、強制的な履歴の書き換え、本番環境の操作、秘密情報の読み取り |
コマンドは、「前方一致」で許可すると、意図しないコマンドまで通ることがあります。許可するパターンは、できるだけ具体的に書いてください。
やってはいけない設定
| 設定 | 理由 |
|---|---|
| すべてのコマンドを許可 | 意図しない破壊的な操作が、確認なしで実行される |
| 確認を完全に省略(保護のない環境で) | ファイルの消失・情報の流出のリスク |
| 秘密情報へのアクセスを許可 | 内容が、外部に送られる可能性 |
| 出所不明の設定の取り込み | 悪意のある許可ルールが含まれる |
| 本番環境での自動許可 | 誤操作の影響が大きい |
確認を省略して使いたい場合は、コンテナや仮想環境など、隔離された安全な環境で、重要なデータへのアクセスがない状態に限るのが、基本です(サンドボックス)。
Claude Codeの権限設定の具体例
テストとリンターの実行は、許可し、.envの読み取りと、rm系のコマンドは、拒否する設定をプロジェクトに置くと、日常の作業は、確認の手間なく進み、危険な操作は、仕組みとして防げます。この設定をGitで共有すれば、チーム全員が、同じ安全基準で使えます。
Claude Codeの権限設定のFAQ(よくある質問)
Q. 毎回の確認を減らすには?
A. 安全なコマンドを、具体的なパターンで許可してください。
Q. 許可しすぎてしまったら?
A. 権限の設定を見直し、不要なルールを削除してください(/permissionsで確認できます。スラッシュコマンド)。
Q. 確認なしモードは使ってよいですか?
A. 隔離された環境で、重要なデータがない場合に限ってください。通常の環境では、おすすめしません。
筆者の見解(Claude Codeの権限設定)
権限設定は、「安全」と「効率」のバランスを取る作業です。最初から完璧を目指さず、確認を読む習慣をつけつつ、安全と判断できる操作だけを少しずつ許可していくと、自然に、自分に合った設定になります。「迷ったら許可しない」を、基本にしてください。
Claude Codeの権限設定の関連項目
- 安全に使うための設定
- サンドボックス
- フック(Hooks)
- settings.jsonの設定項目
出典(一次情報)
本記事は一般的な情報の提供を目的としています。AIのサービス・機能・料金・仕様は頻繁に更新されるため、最新の内容は各社の公式ドキュメントでご確認ください。「筆者の見解」は一つの考え方です。