Claude Code

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の権限設定の関連項目

出典(一次情報)

本記事は一般的な情報の提供を目的としています。AIのサービス・機能・料金・仕様は頻繁に更新されるため、最新の内容は各社の公式ドキュメントでご確認ください。「筆者の見解」は一つの考え方です。

PR当サイトはアフィリエイト広告を利用しています。掲載内容は広告主から依頼・指示を受けたものではなく、筆者の調査・体験にもとづきます。