blog

claude code 権限設定|2026年版ガイド

Claude Codeの権限設定は、エージェントにどのツールやコマンドの実行を許可/拒否するかを制御する、安全に使ううえで最初に押さえるべき仕組みです。本記事ではその設定方法を実務目線で解説します。

セキュリティ全般は Claude Codeセキュリティにまとめています。本記事は権限(allow/deny)設定の方法に絞ります。

Claude Code 権限設定の完全ガイド|実務で使える設定例と運用ノウハウ

Claude Codeを業務で活用する際、最初の壁になるのが権限設定です。ファイルの読み書き、コマンド実行、ネットワークアクセス──どこまでClaudeに許可するかを誤ると、意図しないファイル変更や外部通信が発生するリスクがあります。一方で制限しすぎると、自動化の恩恵が半減してしまいます。

当社(クリスタルメソッド)ではClaude Codeを開発・AIプロジェクトの実務で日常的に利用しており、権限設定の最適解を試行錯誤してきました。本記事では、Claude Codeの権限モデルの基本構造から、settings.jsonの具体的な設定例、チームでの運用ルールまで、実際の現場ノウハウを交えて体系的に解説します。

Claude Codeの権限モデル:3つのレイヤーを理解する

Claude Codeの権限設定を正しく理解するには、まず「どこで何を制御しているか」という3レイヤー構造を把握することが重要です。

レイヤー① Claudeモデル側の安全制約(変更不可)
Anthropicがモデルレベルで設定した倫理・安全ガイドライン。どの設定を変えても上書きできない絶対制約。
レイヤー② Claude Code 設定ファイル(ユーザー制御)
settings.json / .claude/settings.json で定義。ツール許可・拒否リスト、自動承認ルール、環境変数など。
レイヤー③ 実行時プロンプト・インタラクティブ承認(セッション毎)
セッション中にユーザーが手動で「許可 / 拒否」を判断するインタラクティブモード。設定ファイルを補完する最終防衛ライン。

実務上、最も細かくコントロールできるのがレイヤー②の設定ファイルです。ここを適切に設計することで「自動化したい操作は承認なしでスムーズに進める」「危険な操作は必ず手動確認する」という二段構えが実現できます。

設定ファイルの場所と優先順位

Claude Codeは設定ファイルを複数の場所から読み込み、スコープに応じて優先順位が決まります。

スコープ ファイルパス 適用範囲
グローバル ~/.claude/settings.json 全プロジェクト共通の基本設定
プロジェクト(共有) .claude/settings.json(リポジトリルート) チーム全員が共有する設定。Gitで管理可能
プロジェクト(個人) .claude/settings.local.json 個人の好みや環境固有の設定。.gitignore推奨

優先順位はプロジェクト(個人)>プロジェクト(共有)>グローバルの順です。チーム開発では「セキュリティポリシーはプロジェクト共有設定に書き、個人の利便性設定は.local.jsonに逃がす」という分離が実用的です。当社でも同様の運用をしており、本番に関わる設定はすべてプロジェクト共有設定でGit管理しています。

permissions(権限設定)の構造と書き方

settings.json内のpermissionsキーが権限設定の核心です。以下が基本的な構造です。

{
  "permissions": {
    "allow": [
      "Bash(git *)",
      "Bash(npm run *)",
      "Read(**)",
      "Edit(**)"
    ],
    "deny": [
      "Bash(rm -rf *)",
      "Bash(curl *)",
      "Bash(wget *)"
    ]
  }
}

allowとdenyのルール評価順序

重要なのはdenyがallowより常に優先される点です。同じコマンドがallowとdenyの両方にマッチする場合、必ずdenyが勝ちます。「基本は広く許可し、危険なものだけ明示的に禁止する」戦略と、「基本は全拒否し、必要なものだけ許可する」戦略のどちらでも設計できますが、セキュリティ観点では後者(ホワイトリスト型)が推奨されます。

ツール種別ごとの権限指定

Claude Codeが使用するツールは大きく4種類に分類され、それぞれ異なる粒度で制御できます。

ツール種別 記法例 制御できる操作
Bash Bash(git *) シェルコマンドの実行。最もリスクが高くきめ細かい設定が必要
Read Read(src/**) ファイル・ディレクトリの読み取り
Edit / Write Edit(src/**) ファイルの作成・編集・削除
WebFetch WebFetch(domain:api.example.com) 外部URLへのHTTPアクセス

グロブパターンの使い方

パスやコマンドの指定にはグロブパターンが使えます。よく使う記法を整理します。

  • *:単一ディレクトリ内の任意の文字列(サブディレクトリは含まない)
  • **:再帰的に任意のパス(サブディレクトリを含む)
  • Bash(npm run *)npm runで始まる全コマンドを許可
  • Read(src/**)src以下の全ファイルを読み取り許可
  • Edit(*.md):カレントディレクトリのMarkdownファイルのみ編集許可

実務で使える設定テンプレート集

当社の実運用経験から、用途別の設定テンプレートを紹介します。そのままコピーして、プロジェクトに合わせて調整してください。

パターン① フロントエンド開発(Node.js / React)

{
  "permissions": {
    "allow": [
      "Bash(git add *)",
      "Bash(git commit *)",
      "Bash(git diff *)",
      "Bash(git status)",
      "Bash(git log *)",
      "Bash(npm run lint)",
      "Bash(npm run build)",
      "Bash(npm run test *)",
      "Bash(npm install)",
      "Read(**)",
      "Edit(src/**)",
      "Edit(public/**)",
      "Edit(*.json)",
      "Edit(*.md)"
    ],
    "deny": [
      "Bash(git push *)",
      "Bash(git reset --hard *)",
      "Bash(rm *)",
      "Bash(curl *)",
      "Bash(wget *)",
      "Edit(.env*)"
    ]
  }
}

このテンプレートのポイントは、git push.envファイルの編集を明示的にdenyしている点です。誤ったコードが自動でリモートにプッシュされる事故と、APIキーが書き換えられるリスクを排除しています。

パターン② Pythonデータ分析・機械学習

{
  "permissions": {
    "allow": [
      "Bash(python *)",
      "Bash(pip install *)",
      "Bash(pytest *)",
      "Bash(git *)",
      "Read(**)",
      "Edit(*.py)",
      "Edit(*.ipynb)",
      "Edit(*.yaml)",
      "Edit(*.csv)",
      "Edit(requirements.txt)"
    ],
    "deny": [
      "Bash(rm -rf *)",
      "Bash(sudo *)",
      "Bash(curl *)",
      "Bash(wget *)",
      "Edit(.env*)",
      "Edit(secrets/*)"
    ]
  }
}

パターン③ 読み取り専用レビューモード

コードレビューやドキュメント調査など、「読むだけ・提案だけ」させたい場面に使うミニマル設定です。当社ではオンボーディング中のメンバーが初めてClaude Codeを触るときに、まずこの設定から始めてもらっています。

{
  "permissions": {
    "allow": [
      "Read(**)",
      "Bash(git log *)",
      "Bash(git diff *)",
      "Bash(git status)"
    ],
    "deny": [
      "Bash(*)",
      "Edit(*)"
    ]
  }
}

ここで注意が必要なのは、deny"Bash(*)"を書いた場合、allowに書いたBashコマンドよりdenyが優先される点です。上記テンプレートではallowにBashコマンドを書きつつdenyにもBash(*)があるため、Bashは全て拒否されます。読み取り専用を徹底するなら、allowからBashを削除し、denyのみに記述するか、またはallowをReadのみにした上でBash系は一切書かないのが明確です。

Claude Code・AIエージェントの業務導入をご検討の方は、自社での開発実例を公開しているクリスタルメソッドの無料相談をご利用ください。

–dangerously-skip-permissions フラグの扱い

Claude Codeには--dangerously-skip-permissionsというフラグがあり、これを指定すると全ての権限確認をスキップして自動実行します。CI/CDパイプラインや完全自動化スクリプトで使われることがありますが、名前が示す通り「危険な使い方」です。

⚠️ このフラグを使う前に確認すること

  • 実行環境がサンドボックス・コンテナ等の隔離環境であること
  • denyリストで危険なコマンドが確実にブロックされていること
  • 本番環境・機密データへのアクセス権がないこと
  • 実行ログが取得・監査できる状態になっていること

当社では、このフラグをローカル開発機では原則使用しないルールにしています。使用するのは、ネットワーク制限を施したDocker環境内でのテスト自動化のみです。

インタラクティブ承認モードの活用

設定ファイルに書かれていない操作が発生した場合、Claude Codeはデフォルトでインタラクティブに確認を求めます。このとき選択できる選択肢は以下の通りです。

Yes(今回のみ)
この操作1回だけ許可。設定ファイルは変更されない
Yes, and don’t ask again
許可してsettings.local.jsonに自動追記
No
今回だけ拒否。設定は変更されない

「Yes, and don’t ask again」を安易に使うと、意図せずローカル設定が積み上がっていく問題があります。当社では、このオプションを使った後に必ずsettings.local.jsonの内容を見直し、本当に永続許可すべきか確認する習慣を設けています。

CLAUDE.md との連携:権限設定の意図を伝える

権限設定はsettings.jsonだけでなく、CLAUDE.mdファイルとの組み合わせでより効果を発揮します。CLAUDE.mdはClaudeに対してプロジェクト固有の文脈・制約・ルールを自然言語で伝えるファイルです。

例えば以下のような記述をCLAUDE.mdに加えることで、権限設定の意図を補強できます。

## セキュリティルール

- `.env`ファイルは絶対に編集・読み取りしないこと
- git pushは必ず人間が手動で行う
- 外部APIへの直接リクエストは行わない
- `secrets/`ディレクトリ以下には一切アクセスしない

## 推奨される作業の流れ

1. まず既存コードをReadで把握する
2. 変更案を提案してから実装に移る
3. 変更後は必ずlintとテストを実行する

settings.jsonが機械的な実行制御なのに対し、CLAUDE.mdは「なぜその制約があるのか」という文脈をClaudeに理解させます。両方を使うことで、技術的制約と意図の両面からリスクをコントロールできます。

権限設定のよくある失敗パターンと対処法

失敗① allowとdenyの優先順位を誤解する

「allowを先に書けばdenyより優先される」と誤解するケースがあります。Claude Codeのdenyは評価順序に関係なく常にallowに優先します。部分的に許可したいコマンドがある場合は、denyのパターンをより狭く書くことで対処します。

失敗② 環境変数ファイルをallowに含めてしまう

"Edit(**)"と書くと.envファイルも含まれます。必ず"Edit(.env*)"をdenyに追加するか、allowを"Edit(src/**)"のように具体的なディレクトリに絞りましょう。

失敗③ グローバル設定に業務固有のルールを書いてしまう

~/.claude/settings.jsonに特定プロジェクトのパスや制約を書くと、別プロジェクトで意図しない挙動を招きます。業務固有のルールは必ずプロジェクトスコープの設定ファイルに書く習慣をつけましょう。

失敗④ denyリストが育っていないまま運用を続ける

初期設定のまま半年・1年運用していると、当初想定していなかった操作が増えてきます。週次や月次の定期レビューで「最近どんなインタラクティブ承認が発生したか」を確認し、denyリストをアップデートすることが重要です。

権限設定で実際に効いた運用ルール(一次情報)

監修者・河合継はClaude Codeを3.5の時代から1年以上、実務で運用してきた。権限はゆるめれば楽だが、その分リスクが残る。実運用で落ち着いた付き合い方を補足する。

  • 「全部許可」の誘惑に乗らない。確認を飛ばす設定は一見快適だが、意図しない実行が素通りする事故と隣り合わせだ。影響の小さい操作だけ自動で通し、破壊的な操作は必ず確認する、と線を引くのが結局いちばん安全で速かった。
  • 最小から始めて、必要になったら緩める。最初から広く許可するより、狭く始めて詰まったところだけ開けるほうが、何を許しているかを把握しやすい。
  • 権限の「意図」をCLAUDE.mdに残す。なぜこの権限にしているかを書いておくと、チームでも自分の後からでも、設定を勝手に緩めて事故る、ということが減った。

チーム開発における権限設定の運用ルール

個人利用と違い、チームでClaude Codeを使う場合は権限設定のガバナンスが必要になります。以下は当社が実際に採用している運用ルールです。

  1. プロジェクト共有設定はPRレビュー必須.claude/settings.jsonの変更はコードレビューと同様、最低1名のレビュー承認を必要とする
  2. denyリストはデフォルトセットを定義:組織共通の「絶対にdenyするコマンド」セットをドキュメント化し、全プロジェクトに適用
  3. settings.local.json.gitignoreに追加:個人設定がリポジトリに混入しないよう徹底する
  4. 新規プロジェクトはテンプレートから開始:権限設定済みのプロジェクトテンプレートを用意し、ゼロから設定する手間と抜け漏れを防ぐ
  5. インシデントログを残す:意図しない操作が発生した場合は原因と対処をドキュメント化し、設定改善に活かす
Claude Codeの多層的な権限設定イメージ
Claude Codeの多層的な権限設定イメージ

利用できるモデルも進化を続けており、現在はClaude 5世代(最上位のFable 5、速度と知能のバランスに優れたSonnet 5)とOpus 4.8・Haiku 4.5が使えます。

まとめ

Claude Codeの権限設定は、「何を自動化するか」と「何を人間が守るか」を明確にするための設計作業です。本記事で解説したポイントを整理します。

  • 権限は3レイヤー構造で管理され、settings.jsonがユーザー制御の核心
  • 設定ファイルはグローバル・プロジェクト共有・個人の3スコープで優先順位がある
  • denyはallowに常に優先する。この挙動を前提に設計すること
  • 用途(フロントエンド開発・データ分析・レビュー専用など)に応じてテンプレートを使い分ける
  • CLAUDE.mdと組み合わせて「機械的制御+文脈の伝達」を両立させる
  • チーム運用ではPRレビュー・デフォルトdenyセット・テンプレート化がガバナンスの基盤

権限設定は一度決めて終わりではなく、プロジェクトの進化やチームの変化に合わせて継続的に見直すものです。当社でも定期的に設定を棚卸しし、「過剰に制限していないか」「新たなリスクが生まれていないか」を確認しながら運用しています。まずは本記事のテンプレートを出発点にして、自社のセキュリティポリシーに合った設定を育てていくことをおすすめします。

関連記事

監修

河合 継(クリスタルメソッド株式会社 代表取締役)

AI・ディープラーニングに関する特許16件の発明者。過去、国立がん研究センターとの共同研究や、テレビ番組でのAI解説実績を持つAI研究者として、AIの研究開発を主導している。
運営会社について編集方針

Claude Code・AIエージェントの業務活用をご検討の方へ

クリスタルメソッドは、Claude Codeを実務投入している開発会社として、AIエージェント・社員AIの導入と開発効率化を支援しています。自社サイトの表示速度をAI社員(Claude Code)で12.89秒→2.03秒に短縮した実例も事例記事として公開しています。「自社の開発・業務にAIをどう組み込むか」といったご相談を承っています。

AIブログ購読

 
クリスタルメソッドがお届けする
AIブログの更新通知を受け取る

Study about AI

AIについて学ぶ

  • 教育 AI 活用 事例から学ぶ企業研修のDXとAnthropic無償提供が示すプロンプトの重要性

    教育 AI 活用 事例から学ぶ企業研修のDXとAnthropic無償提供が示すプロンプトの重要性

    ## 1. Anthropicによる教育者向けClaude無償提供ニュースの要点 2026年1月、AIスタートアップのAnthropicは、国際NGO「Teac...

  • AI人事評価のリスクと違法性の境界線とは?Meta社リストラ訴訟から学ぶ防衛策

    AI人事評価のリスクと違法性の境界線とは?Meta社リストラ訴訟から学ぶ防衛策

    近年、企業の意思決定プロセスにおいてAI(人工知能)の活用が急速に進んでいます。特に人事評価や採用、人員整理といった領域でのAI導入は、業務効率化や客観性の担保...

  • AIエージェントの相互運用性と規制がもたらす経営インパクト—米上院法案から紐解く日本企業の針路

    AIエージェントの相互運用性と規制がもたらす経営インパクト—米上院法案から紐解く日本企業の針路

    自律的にタスクを遂行するAIエージェントの台頭に伴い、異なるシステムやプラットフォーム間でこれらを安全に連携させる「相互運用性」と、それを支える「規制」のあり方...

View more