パーミッションモードは、Claude Codeの安全性と生産性のバランスを決定する最重要設定です。defaultは慎重な作業、planは読み取り専用の分析、autoはallowedToolsによる柔軟
パーミッションモードは、Claude Codeの安全性と生産性のバランスを決定する最重要設定です。defaultは慎重な作業、planは読み取り専用の分析、autoはallowedToolsによる柔軟
ブログ目次
HubSpot導入、AI活用、CRM整備、業務効率化までをまとめて支援しています。記事で気になったテーマを、そのまま相談ベースで整理できます。
Claude Codeには4つのパーミッションモード(default・plan・auto・bypass)があり、AIエージェントにどこまでの自律性を許可するかを制御できます。 プロジェクトの性質やチームのセキュリティ要件に合わせて適切なモードを選択することで、安全性を維持しながらAIの生産性を最大化できます。
Claude Codeを安全に運用するには、パーミッションモードの理解が不可欠です。この記事では、4つのモードの使い分けから、チーム全体でのポリシー統一まで、実務に直結する設定方法を体系的に解説します。
allowedToolsリストによるツール単位の細かい権限制御の方法 — autoモードの中核となるのがリストです。どのツールを許可し、どのツールをブロックするかを細かく制御できます。対象読者: Claude Codeをチームで導入している・導入を検討しているエンジニア、テックリード、セキュリティ担当者
パーミッションモードは、Claude Codeがファイル編集やコマンド実行などのツールを使う際に、ユーザーの承認を求めるかどうかを制御する仕組みです。モードによって、エージェントの自律性と安全性のバランスが変わります。
| モード | 自律性 | 承認要求 | 推奨シーン |
|---|---|---|---|
default |
低 | 書き込み系ツールはすべて承認を要求 | 初めてのプロジェクト、慎重な作業 |
plan |
最低 | 読み取り専用。書き込み・実行はすべて拒否 | コード分析、設計レビュー、調査 |
auto |
高 | allowedToolsに含まれるツールは自動承認 |
繰り返し作業、信頼できるプロジェクト |
bypass |
最高 | すべてのツールを自動承認(承認なし) | CI/CD、完全自動化パイプライン |
defaultモードは、Claude Codeの標準的な動作モードです。ファイルの読み取り(Read、Glob、Grep)は承認なしで実行されますが、ファイルの書き込み(Edit、Write)やコマンド実行(Bash)は毎回ユーザーの承認を求めます。
[Claude Code] src/index.tsを編集します。よろしいですか?
> Yes / No / Always allow for this session
初めて触るプロジェクトや、本番環境に影響するファイルを扱う場合に適しています。承認のたびにAIの行動を確認できるため、意図しない変更を防止できます。
planモードは、Claude Codeを「読み取り専用のアナリスト」として使うモードです。ファイルの読み取りは可能ですが、書き込みやコマンド実行は一切できません。
claude --mode plan
コードベースの分析、アーキテクチャレビュー、バグの原因調査など、「調べるだけで変更は不要」なタスクに最適です。誤操作によるファイル変更のリスクをゼロにできます。
autoモードは、allowedToolsリストに含まれるツールを自動的に承認し、それ以外のツールは承認を求めるモードです。
claude --mode auto --allowedTools "Edit,Write,Bash(npm test),Bash(npm run build)"
上記の例では、ファイル編集、ファイル作成、npm test、npm run buildの実行は承認なしで自動実行されます。それ以外のBashコマンド(rm、git pushなど)は承認を求めます。
autoモードは、信頼できるプロジェクトで繰り返し作業を効率化したい場合に最適です。必要なツールだけを許可し、危険なコマンドはブロックするという「最小権限の原則」を実現できます。
bypassモードは、すべてのツールを承認なしで自動実行するモードです。ユーザーの介入は一切ありません。
claude --mode bypass -p "テストを実行して、失敗したテストを修正してください"
CI/CDパイプラインや、SDK経由の完全自動化シナリオで使用します。人間が監視していない環境で使うため、実行環境のセキュリティ(サンドボックス、ネットワーク制限など)で安全性を担保する必要があります。
autoモードの中核となるのがallowedToolsリストです。どのツールを許可し、どのツールをブロックするかを細かく制御できます。
| 指定方法 | 例 | 動作 |
|---|---|---|
| ツール名のみ | Edit |
そのツールのすべての呼び出しを許可 |
| ツール名+引数パターン | Bash(npm test) |
特定のコマンドのみ許可 |
| ワイルドカード | Bash(npm *) |
npmで始まるコマンドをすべて許可 |
| MCP+ツール名 | mcp__slack__send_message |
MCPサーバーの特定ツールを許可 |
{
"allowedTools": [
"Edit",
"Write",
"Bash(npm test)",
"Bash(npm run build)",
"Bash(npm run lint)",
"Bash(git add *)",
"Bash(git commit *)",
"Bash(git diff *)",
"Bash(git status)",
"Bash(git log *)"
]
}
ファイル編集、テスト実行、ビルド、リント、Gitの基本操作を許可しています。git pushやrm -rfのような破壊的コマンドは許可リストに含まれないため、承認を求められます。
{
"allowedTools": [
"Read",
"Glob",
"Grep",
"Bash(git diff *)",
"Bash(git log *)",
"Bash(git show *)"
]
}
ファイルの読み取りとGitの差分確認のみを許可しています。コードレビューの分析タスクに最適です。
{
"allowedTools": [
"Edit",
"Write",
"Bash(npm *)",
"Bash(git *)",
"Bash(gh pr create *)"
]
}
npmコマンド、Gitコマンド、GitHub CLIによるPR作成を包括的に許可しています。CI/CD環境では、実行環境自体がサンドボックス化されているため、広めの権限を付与しても安全です。
パーミッション設定はコマンドライン引数だけでなく、設定ファイルで管理できます。
.claude/settings.json){
"permissions": {
"defaultMode": "auto",
"allowedTools": [
"Edit",
"Write",
"Bash(npm test)",
"Bash(npm run build)"
]
}
}
プロジェクト設定はGitリポジトリに含まれるため、チーム全体で統一したパーミッションポリシーを適用できます。
~/.claude/settings.json){
"permissions": {
"defaultMode": "default"
}
}
ユーザー設定はプロジェクト設定より優先度が低く、プロジェクトで指定された設定が適用されます。ただし、ユーザー設定でbypassモードを禁止するなど、安全側への制限は可能です。
設定の優先順位は以下の通りです。
--mode auto) — 最優先.claude/settings.json) — プロジェクト単位~/.claude/settings.json) — グローバル新しいプロジェクトやチームメンバーはdefaultモードから開始し、信頼が確立されたらautoモードに移行するパターンです。
Week 1-2: defaultモード(全操作を確認)
↓ プロジェクト構造を理解・信頼関係構築
Week 3-4: autoモード(基本操作を自動承認)
↓ ワークフローが安定
Week 5+: autoモード + 拡張allowedTools(より広い自動承認)
同じプロジェクト内でも、タスクの性質に応じてモードを切り替えるパターンです。
| タスク | 推奨モード | 理由 |
|---|---|---|
| コード分析・レビュー | plan |
変更不要。読み取りのみで安全 |
| 新機能開発 | auto |
効率重視。allowedToolsで制御 |
| 本番環境のデバッグ | default |
慎重さが必要。毎回確認 |
| CI/CDパイプライン | bypass |
完全自動化。環境で安全性担保 |
組織全体でパーミッションポリシーを統一する場合、.claude/settings.jsonをテンプレートとして全プロジェクトに配布します。
{
"permissions": {
"defaultMode": "auto",
"allowedTools": [
"Edit",
"Write",
"Bash(npm *)",
"Bash(yarn *)",
"Bash(git add *)",
"Bash(git commit *)",
"Bash(git diff *)",
"Bash(git status)",
"Bash(git log *)"
],
"blockedTools": [
"Bash(rm -rf *)",
"Bash(git push --force *)",
"Bash(git reset --hard *)"
]
}
}
破壊的コマンドを明示的にブロックすることで、autoモードの利便性を維持しながらリスクを制御しています。
Hooksを使えば、ツール実行の前後にカスタムスクリプトを挟めます。パーミッションモードとHooksを組み合わせることで、「autoモードで自動承認しつつ、特定のツール実行時にはログを記録する」といった柔軟な制御が可能です。
プロジェクトの.claude/CLAUDE.mdに記載したルールは、パーミッションモードとは独立して動作します。パーミッションモードはツール実行の「承認/拒否」を制御しますが、CLAUDE.mdはエージェントの「行動指針」を制御します。両方を適切に設定することで、安全かつ的確なエージェント運用が実現します。こうした取り組みの詳細は、経営データの可視化やコンテンツマーケティングの支援のページでもご紹介しています。
パーミッション設定が意図通りに適用されているか不明な場合は、/config コマンドで現在の設定状況を確認できます。設定ファイルの読み込み状況や、適用されているモードを確認できます。
パーミッションモードは、Claude Codeの安全性と生産性のバランスを決定する最重要設定です。defaultは慎重な作業、planは読み取り専用の分析、autoはallowedToolsによる柔軟な自動承認、bypassは完全自動化に、それぞれ最適化されています
押さえておきたいポイントは以下の通りです。
.claude/settings.jsonでポリシーを統一し、タスクの性質に応じてモードを切り替えることが実践的ですdefaultモードで始め、プロジェクトへの理解が深まったらautoモードに移行するのが安全なアプローチですautoモードはallowedToolsに指定したツールのみ自動承認し、それ以外は承認を求めます。bypassモードはすべてのツールを無条件で自動承認します。autoモードは「許可リスト方式」、bypassモードは「全許可方式」と理解してください。日常の開発作業にはautoモード、CI/CDなどの完全自動化環境にはbypassモードが適しています。
はい、Bash(コマンドパターン)の形式で細かく制御できます。Bash(npm test)ならnpm testのみ、Bash(npm )ならnpmで始まるすべてのコマンドが許可されます。正確なコマンド名で指定するほどセキュリティが高まりますが、利便性とのバランスを考慮してください。Bash(rm -rf )のように明示的にブロックしたいコマンドはblockedToolsに追加することも可能です。
.claude/settings.jsonをGitリポジトリに含めてコミットしてください。このファイルはプロジェクト単位のパーミッション設定として、全チームメンバーに適用されます。組織内の複数プロジェクトで統一する場合は、設定ファイルのテンプレートを作成し、新規プロジェクト作成時に配布する運用が効果的です。
株式会社StartLinkは、事業推進に関わる「販売促進」「DXによる業務効率化(ERP/CRM/SFA/MAの導入)」などのご相談を受け付けております。 サービスのプランについてのご相談/お見積もり依頼や、ノウハウのお問い合わせについては、無料のお問い合わせページより、お気軽にご連絡くださいませ。
株式会社StartLink 代表取締役。累計150社以上のHubSpotプロジェクト支援実績を持ち、Claude CodeやHubSpotを軸にしたAI活用支援・経営基盤AXのコンサルティング事業を展開。
HubSpotのトップパートナー企業や大手人材グループにて、エンタープライズCRM戦略策定・AI戦略ディレクションを経験した後、StartLinkを創業。現在はCRM×AIエージェントによる経営管理支援を専門とする。