権限設定の基本 — deny・ask・allowの3層
Claude Codeのpermissions設定は、AIエージェントが実行しようとする操作(コマンド実行・ファイル読み書き・Web取得など)をdeny(禁止)・ask(毎回確認)・allow(許可)の3種類のルールで制御する仕組みです。
| ルール | 動き | 使いどころ |
|---|---|---|
| deny(禁止) | 該当する操作を必ずブロックする。allowでは上書きできない | 絶対にさせない操作(.envの読み取り、sudoの実行など) |
| ask(毎回確認) | 実行前に必ずユーザーへ確認を求める | 影響が大きいが業務では使う操作(ファイル削除、git pushなど) |
| allow(許可) | 確認なしで実行できる | 日常的に繰り返す安全な操作(テスト実行、lintなど) |
重要なのは評価の順序です。ルールはdeny → ask → allowの順で評価され、最初に一致したものが適用されます。つまりallowに何を書いてあっても、denyに一致すれば必ずブロックされます。「会社として絶対に禁止したい操作」をdenyに置いておけば、現場が利便性のためにallowを増やしても、その禁止が破られることはありません。
ルールを守らせるのはAIではなくClaude Code本体
permissionsのルールを強制するのはClaude Codeというソフトウェア自体であり、AIモデルの「判断」ではありません。CLAUDE.mdに「.envを読むな」と書くのはプロンプトによるお願いで、確率論の世界です。確実に守らせたい禁止事項は、必ずpermissionsのdenyルールとして機械的にガードしてください。この使い分けが法人導入のセキュリティ設計で最も重要な考え方です(全体像はセキュリティ対策の記事で解説しています)。
ルールの書き方 — ツール名と対象パターンで指定する
ルールは「ツール名(対象パターン)」の形式で書きます。ツール名だけ書けばそのツール全体、括弧内にパターンを書けば特定の操作だけに絞れます。代表的な書き方は次のとおりです。
| ルール例 | 意味 |
|---|---|
Bash(sudo *) | sudoで始まるコマンド(管理者権限の操作)すべて |
Bash(git push *) | git pushで始まるコマンドすべて |
Read(./.env) / Read(./.env.*) | 環境変数ファイル(秘密情報の置き場所)の読み取り |
Read(~/.ssh/**) | ホームディレクトリのSSH鍵フォルダの読み取り |
WebFetch(domain:example.com) | 特定ドメインへのWebアクセスだけを許可・禁止 |
*はワイルドカードで、コマンドの先頭・途中・末尾どこでも使えます。また、&&や;でつないだ複合コマンドは部分ごとに分解して判定されるため、「安全なコマンドの後ろに危険なコマンドを連結してすり抜ける」ことはできない設計になっています。
法人導入の推奨セット — まずこの基本形から
当社が導入企業に最初に配布している基本形です。プロジェクトの .claude/settings.json に置けばチーム全員に、~/.claude/settings.json に置けば個人の全プロジェクトに適用されます。
{
"permissions": {
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)",
"Bash(sudo *)"
],
"ask": [
"Bash(rm *)",
"Bash(git push *)"
]
}
}設定ファイルを自分で書く必要はありません。Claude Codeに日本語で「.envの読み取りとsudoを禁止して、rmは毎回確認にして」と依頼すれば、設定ファイルを書いてくれます。内容を確認して保存するだけです。
「管理者権限」の2つの論点 — sudoとbypassPermissions
Claude Codeと管理者権限の話には2つの別の論点があります。1つ目はOSの管理者権限(sudo)をAIに渡すかです。sudoはシステム全体を変更できる権限で、AIエージェントに渡す必要はほぼありません。上の推奨セットのとおりBash(sudo *)をdenyにしておき、OSレベルの作業が必要な場面は人が実行する運用にします。
2つ目は確認プロンプトを省略するbypassPermissionsモードです。Claude Codeには通常の確認動作を変えるパーミッションモード(計画だけ立てて実行前に確認するplanモード、編集を自動承認するacceptEditsモードなど)があり、その中のbypassPermissionsは確認をスキップして実行し続けるモードです。開発効率は上がりますが、コンテナや仮想マシンなど壊れても影響がない隔離環境以外では使わないのが原則です。組織としては、設定にdisableBypassPermissionsModeを"disable"と指定することで、このモード自体を使えなくできます。
設定ファイルは4層 — 誰がどこまで統制できるか
permissionsを書く場所は1つではありません。Claude Codeの設定ファイルは4つの層があり、法人導入では「どの層に何を書くか」の設計がそのまま統制設計になります。
| 層 | 場所 | 適用範囲 | 法人導入での使い方 |
|---|---|---|---|
| managed(管理者配布) | OSごとの管理領域(次章参照) | そのPCの全ユーザー。他の層では上書き不可 | 情報システム部門が配布する全社ポリシー |
| project(プロジェクト共有) | .claude/settings.json | リポジトリの共同作業者全員(gitで共有) | チーム・案件ごとの共通ルール |
| local(個人×プロジェクト) | .claude/settings.local.json | 自分だけ・そのリポジトリだけ | 個人の一時的な設定(gitに入れない) |
| user(個人) | ~/.claude/settings.json | 自分の全プロジェクト | 個人の基本設定 |
優先順位はmanagedが最上位で、以下コマンドライン指定 → local → project → userの順です。ただしpermissionsのルールに限っては、denyルールはどの層に書かれていても常に有効です。ユーザー設定のdenyをプロジェクト設定のallowで上書きする、といったことはできません。
managed settingsで「外せない禁止」を全社配布する
従業員数が増えてくると「各自が設定してください」では統制が効きません。そこで使うのがmanaged settings(管理者配布の設定)です。管理者がOSの管理領域に設定ファイルを配置すると、ユーザー側・プロジェクト側の設定では一切上書きできない全社ポリシーとして機能します。
| OS | 配置パス |
|---|---|
| macOS | /Library/Application Support/ClaudeCode/managed-settings.json |
| Linux / WSL | /etc/claude-code/managed-settings.json |
| Windows | C:\Program Files\ClaudeCode\managed-settings.json |
- MDM経由で配布できる — Jamf・Intuneなどの端末管理ツールから、OSのポリシー機能(macOSの構成プロファイル、Windowsのグループポリシー)としても配布できます
- 現場ルールの全面禁止も可能 —
allowManagedPermissionRulesOnlyを有効にすると、ユーザー・プロジェクト設定に書かれた許可ルール自体を無効化し、管理者が配布したルールだけを適用できます - bypassPermissionsの封印 — 前章の
disableBypassPermissionsModeもmanaged settingsに書くのが定石です。ここに書けば現場では解除できません
なお、Claude for Enterpriseプランでは、こうした組織全体のポリシー設定(managed policy settings)やSSO・ロール管理を管理画面から一元的に扱えます。契約プランの選定とあわせて検討してください。
permissionsの限界 — 併用すべき仕組み
permissionsは強力ですが、万能ではありません。限界を知って他の仕組みと組み合わせるのが実務です。
- 間接的なファイルアクセスには効かない — ReadやEditのdenyルールは、AIが自作したスクリプト(Python等)がファイルを開く動きまでは止められません。OSレベルで強制したい場合はClaude Codeのサンドボックス機能を併用します
- コマンドの引数を縛るパターンは破られやすい — 「curlはこのURLだけ許可」のような引数ベースの制限は、書き方の揺れですり抜けが起きます。Bash側のネットワークコマンドをdenyし、Webアクセスは
WebFetch(domain:...)のドメイン許可で管理する構成が堅実です - 組織のルールは設定だけでは伝わらない — 「入力してよい情報の区分」「インシデント時の報告先」といった運用ルールは利用ガイドラインとして明文化し、研修で定着させます
まとめると、CLAUDE.mdは行動方針(お願い)、permissionsは機械的な強制、サンドボックスはOSレベルの隔離、ガイドラインは組織のルールという役割分担です。この4点セットを最初に整えることが、「不安だから禁止」で止まらずにClaude Codeを全社活用へ進める最短ルートです。
Claude Codeを組織に定着させたい企業様へ。AI Orchestraの法人研修・伴走支援をご覧ください。




