本文へ移動
記事一覧

Claude Codeの権限設定|チーム導入で許可範囲を決める方法

公開 2026-08-01更新 2026-09-04読了目安 9分

Claude Code 権限設定をチームで決めるなら、最初に「絶対に触れさせない対象」を deny で固定し、日常的な読み取りと検証だけを狭く allow、判断が必要な操作を ask に残すのが基本です。境界を引く順序は、情報の機密性、変更の可逆性、外部への影響です。 共有ルールはリポジトリの `.claude/settings.json` に置けます。ただし、プロジェクト設定を各利用者が変更できる状態では、組織の強制ルールにはなりません。上書きさせたくない禁止事項や危険な権限モードの無効化は managed settings に置き、Bash のファイル・ネットワーク境界にはサンドボックスを重ねます。 残る判断は、どこまで自動実行を許すかです。同じテストコマンドでも、ローカルで完結する処理と、クラウドや本番データへ接続する処理では影響が異なります。2026年9月4日時点の公式仕様に沿って、操作名と影響範囲を切り分けて許可を決める方法を整理します。

SECTION 01

許可範囲は「読める・変えられる・外へ届く」で分ける

権限表をコマンド名から作り始めると、`npm test` は安全、`curl` は危険、といった粗い分類になりがちです。しかしテストスクリプトの内部から外部サービスへ接続することも、読み取りコマンドから秘密情報を表示することもできます。コマンドの名前だけでは、実際の影響を判定できません。

先に守る対象を棚卸しします。認証情報や個人情報を含むファイル、本番環境の資格情報、リポジトリ外のディレクトリ、外部送信先、デプロイや課金を伴う操作です。そのうえで、各ワークフローが「何を読むか」「何を変更するか」「どこへ通信するか」「人が確認せず実行してよいか」を確認します。

  • deny:秘密情報、認証情報、本番操作、組織として禁止する送信先など、依頼内容にかかわらず実行させない対象
  • ask:依存関係の追加、広いファイル変更、外部APIへの接続など、目的と差分を人が確認したい操作
  • allow:対象と副作用が把握でき、失敗しても開発環境内で戻せる定型的な読み取り・検証操作。この3区分では、迷う操作を安易に allow へ寄せず、ask のまま検証する判断が重要です。

SECTION 02

Claude Codeの権限モデルと設定スコープ

Claude Codeの権限ルールには allow、ask、deny があり、公式ドキュメントでは deny、ask、allow の順に評価され、最初に一致したルールが適用されます。つまり、広い allow があっても deny に一致する操作は許可されません。`/permissions` では、現在のルールと、そのルールがどの設定ファイルから来たかを確認できます。

設定の置き場所は役割で分けます。ユーザー設定は個人の全プロジェクト、プロジェクト設定はリポジトリの共同作業者、ローカル設定はその利用者の特定プロジェクトに適用されます。`.claude/settings.json` はソース管理して共有するチーム標準に向き、`.claude/settings.local.json` は個人の試行や端末固有の調整に向きます。PRレビューへ組み込むときのイベント・トークン・成果物の分離は、Claude CodeをGitHub Actionsで動かすでも確認できます。

一方、managed settings はIT管理者が配布し、ユーザーやプロジェクト設定では上書きできません。設定値には優先順位がありますが、権限ルールの配列は複数スコープから結合されます。どこかのスコープに deny があれば別のスコープの allow では解除できないため、組織禁止とチーム標準を分離できます。

ここで迷うのは、すべてを managed settings に集約すべきか、という点です。集約すると統制は強くなりますが、リポジトリ固有の安全なテストまで管理部門の変更待ちになりかねません。組織横断の最低線は managed、リポジトリ固有の追加制約と限定的な許可は project、個人差は local という責任分界が現実的です。

SECTION 03

Claude Code 権限設定を決める順序

第一に、読み取り禁止を決めます。`.env`、資格情報、秘密鍵、顧客データの複製などは、変更を防ぐだけでは不十分です。読めれば応答やコマンド出力へ現れる可能性があるため、`Read` の deny とサンドボックスの読み取り境界を検討します。秘密を含むファイルをプロジェクト内へ置かない、短命な認証情報を使うといった既存のセキュリティ対策も前提です。

第二に、変更範囲を決めます。通常のソースコードとテストは作業ディレクトリ内に限定し、親ディレクトリ、ユーザー設定、シェル設定などへの書き込みを許可しない構成から始めます。生成物や一時ファイルの出力先を限定できれば、コマンド全体を例外扱いする必要が減ります。

第三に、外部作用を分けます。パッケージ取得、Web取得、MCPサーバー、クラウドCLI、Gitホスティングサービスへの操作は、すべて同じ「ネットワーク利用」ではありません。参照と更新、開発環境と本番環境、組織管理の接続先と任意の接続先を分け、更新系は ask または deny に残します。

第四に、権限モードを固定します。`default` は標準の確認動作、`acceptEdits` は作業領域内の編集などを自動承認し、`plan` は調査を中心に編集を行わないモードです。`auto` は安全性の分類を通じて操作を自動承認し、`dontAsk` は事前許可されていない操作を自動拒否します。`bypassPermissions` は権限確認を省略するため、公式ドキュメントもコンテナやVMのような隔離環境だけで使うよう案内しています。組織で不要な場合は、managed settings の `permissions.disableAutoMode` と `permissions.disableBypassPermissionsMode` で無効化します。

SECTION 04

共有設定は狭い許可と明示的な拒否から始める

たとえば、プロジェクトの `.claude/settings.json` では、実際にチームが利用する検証コマンドだけを allow に置き、秘密ファイルの読み取りと既知の直接通信コマンドを deny に置きます。次は構造を示す例であり、コマンド名やパスは各リポジトリのスクリプトを確認して置き換える必要があります。 ```json { "$schema": "https://json.schemastore.org/claude-code-settings.json", "permissions": { "defaultMode": "default", "allow": [ "Bash(npm run lint)", "Bash(npm run test *)" ], "ask": [ "Bash(npm install *)" ], "deny": [ "Read(./.env)", "Read(./.env.*)", "Read(./secrets/**)", "Bash(curl *)", "Bash(wget *)" ] } } ```

この例は設定検討の出発点です。許可したスクリプトの定義が変更されれば、副作用も変わります。また、コマンドのパターン一致には構文上の注意点があります。公式の権限ドキュメントでルール構文を確認し、想定したコマンドだけが一致するかをテストします。

プロジェクト設定に置いた allow と追加ディレクトリは、ワークスペースの信頼確認を受け入れるまで適用されません。リポジトリ自身が権限を要求する構造になるため、初回の信頼画面を儀式にせず、変更された許可ルールをコードレビューの対象にします。

SECTION 05

権限ルールとサンドボックスを二層で組み合わせる

権限ルールは、Claude Codeの各ツールに対して実行を許可するかを制御します。サンドボックスはBashとその子プロセスに対し、OSレベルでファイルシステムとネットワークの境界を設けます。一方、組み込みの Read、Edit、Write は権限システムに従います。制御対象が異なるため、両方を組み合わせます。

差が表れるのが外部通信です。WebFetch を deny にしても、Bash が許可され、`curl` や別のプログラムが通信できれば外へ到達できます。Anthropicの組織導入向け公式資料もこの差を示し、サンドボックスのドメイン許可リストでBash側の経路を制限する考え方を説明しています。

MCPも別の境界として扱います。接続先サーバーは追加のツールとデータ経路を持つため、コマンド権限だけで管理を終えません。組織で利用可能なMCPサーバーを絞る場合は、`allowedMcpServers`、`deniedMcpServers`、`allowManagedMcpServersOnly` などの管理設定を検討します。プラグインやフックにも同様に管理用の制御面があります。

SECTION 06

実行結果と例外申請を権限表へ反映する

設定ファイルを配布したら、検証を始めます。まず `plan` または `default` を基準に、代表的な開発作業を実行します。どの操作で確認が発生したか、拒否された操作は本当に必要か、許可した処理がどのファイルとドメインへ到達したかを確認します。

  • 設定確認:`/status` で読み込まれた設定ソースを確認し、`/permissions` で有効なルールと出所を見る
  • 正常系確認:調査、編集、テスト、静的解析など、チームで認める作業が境界内で完了するか試す
  • 拒否系確認:秘密ファイル、親ディレクトリ、未許可ドメイン、本番操作が意図どおり止まるか試す
  • 変更管理:権限ルール、スクリプト定義、MCP設定の変更にレビュー担当と見直し期限を設ける
  • 例外管理:一時的な許可は対象、理由、期限を記録し、恒久的な広い allow に置き換えない。この確認で必要性を説明できない許可は、追加しないと判断します。

SECTION 07

結論:禁止を固定し、安全な作業単位だけを許可する

Claude Codeのチーム導入では、守るデータ、書き込み可能な場所、通信先、本番への経路を先に固定します。組織共通の deny と危険モードの禁止は managed settings、リポジトリ固有の狭い allow と追加の deny は `.claude/settings.json`、Bashの実効境界はサンドボックスに担わせます。

冒頭に残した「どこまで自動実行を許すか」への答えは、開発環境内で対象と副作用を説明でき、失敗しても戻せる定型操作までです。外部送信、権限変更、依存関係の追加、本番や共有資源の更新は、操作名が日常的でも ask または deny に残します。確認なしで許してよい影響範囲をチームで合意できた状態が、権限設定の完成条件です。

AI駆動開発の研修や導入設計では、設定ファイルに加え、既存の開発フロー、秘密情報の配置、レビュー責任も整理する必要があります。cotomuの提供範囲は、研修30万円、導入パッケージ50万円から、技術顧問15万円/月で、初回60分の相談は無料です。生産性や品質の向上は保証対象外です。また、cotomuはClaude Code、Codexなどの公式パートナーまたは認定事業者ではありません。チームごとの許可基準を具体化したい場合は、現状の開発環境と想定業務を相談時に共有してください。

FAQ

よくある質問

Q. Claude Codeのチーム共通の権限設定はどこに置きますか?

リポジトリ単位で共有する設定は `.claude/settings.json` に置き、ソース管理できます。利用者やプロジェクトから変更させたくない組織共通の制約は managed settings に置きます。

Q. allow、ask、deny が重なった場合はどれが優先されますか?

公式ドキュメントでは deny、ask、allow の順に評価され、最初に一致したルールが適用されます。別スコープの allow で deny を解除することもできません。

Q. 権限設定があればサンドボックスは不要ですか?

不要にはなりません。権限はツールの利用可否、サンドボックスはBashと子プロセスのファイル・ネットワーク境界を制御します。対象が異なるため併用します。

Q. bypassPermissionsをチームで使ってもよいですか?

通常の開発端末では避けます。公式ドキュメントは隔離されたコンテナやVMに用途を限定しており、組織では managed settings から無効化できます。

公式情報・参考資料