Claude Code: 権限設定

最終更新:2026-08-31

Claude Code は高い権限を持ちます — ファイルの読み書き、コマンドの実行、ネットワークへのアクセスが可能です。権限の理解と設定は安全な使用の基本です。

💡 ヒント: デフォルトでは、Claude Code は読み取りを自動承認し、書き込みと実行には確認を求めます。このバランスは権限設定で調整できます。

📋 前提条件: 第10章 - コンテキスト管理

1. 学ぶ内容


2. 権限モデル

(1) 操作カテゴリとデフォルト権限

操作タイプ デフォルト権限 備考
Read ファイルの読み取り、ディレクトリの閲覧 自動許可 読み取りのみ、リスクなし
Write ファイルの作成/修正 確認が必要 自動承認の設定可能
Bash シェルコマンドの実行 確認が必要 高リスク、確認を保持を推奨
Network パッケージのインストール、API 呼び出し 確認が必要 外部アクセス、セキュリティリスク
MCP MCP ツールの呼び出し 確認が必要 ツールの機能に依存

(2) 確認オプション

TEXT 📖 参照専用
Claude wants to execute: npm install lodash
  [Allow / Deny / Always for this session]

▶ 例1:権限確認のシナリオ

TEXT 📖 参照専用
# 読み取り:自動承認
→ Reading src/index.ts ✓ (auto-approved)

# 修正:確認が必要
→ Modifying src/index.ts
  Allow editing? [y/n/a] y

# 実行:確認が必要
→ Running: npm test
  Allow executing: npm test? [y/n/a] a
  (このセッションで自動許可に設定)

3. 自動承認設定

(1) CLAUDE.md での設定

MARKDOWN
## Permission Configuration
- src/ 下の .ts と .test.ts ファイルの編集を自動許可
- npm test と npm run lint の実行を自動許可
- npm install の実行を自動許可(依存関係の追加)
- 確認が必要:prisma/schema.prisma の修正
- 確認が必要:package.json scripts の修正
- 確認が必要:すべての git 操作
- 拒否:curl/wget 等のネットワークリクエストコマンドの実行

(2) コマンドラインパラメータ

BASH
# 読み取りと書き込みのみ許可(コマンド実行なし)
claude --allowed-tools Read,Write

# 読み取り、書き込み、特定の Bash コマンドを許可
claude --allowed-tools Read,Write,Bash(npm test),Bash(npm run lint)

# 完全自動モード(危険!)
claude --allow-full-auto

▶ 例2:プロジェクトレベルの権限設定

MARKDOWN
<!-- テストプロジェクト CLAUDE.md(緩やかな権限) -->
## Permissions
- 自動許可:すべてのファイル編集
- 自動許可:npm test、npm run build、npm run lint
- 自動許可:git add、git commit
- 確認が必要:npm publish、git push

<!-- 本番プロジェクト CLAUDE.md(厳格な権限) -->
## Permissions
- 自動許可:読み取り専用操作
- 確認が必要:すべてのファイル修正
- 確認が必要:すべてのコマンド実行
- 拒否:git push、npm publish、rm -rf
- 拒否:.env と設定ファイルの修正

4. 制限モード

(1) 読み取り専用モード

BASH
# 完全に読み取り専用、ファイル修正なし
claude --allowed-tools Read

# 読み取り専用 + 安全な Bash コマンド
claude --allowed-tools Read,Bash(git status),Bash(npm test)

(2) サンドボックスモード

BASH
# サンドボックスで実行、変更は実際のファイルに影響しない
claude --sandbox

5. 機密プロジェクトの保護

(1) .claudeignore ファイル

TEXT 📖 参照専用
# .claudeignore - 機密ファイルを除外
.env
.env.*
**/secrets/**
**/credentials/**
**/private-key.*
config/production.*

(2) 保護戦略

ファイルタイプ 保護方法 理由
.env .claudeignore で除外 シークレットを含む
secrets/ .claudeignore + 確認 認証情報ディレクトリ
schema.prisma CLAUDE.md で確認を指定 DB 構造変更は高リスク
package.json CLAUDE.md で確認を指定 依存関係の変更にはレビューが必要

▶ 例3:金融プロジェクトの権限設定

MARKDOWN
## Permissions (Strict Mode)
- 自動許可:読み取り専用操作
- 確認が必要:すべてのファイル修正(src/ を含む)
- 確認が必要:すべての Bash コマンド
- 拒否:src/payment/ と src/billing/ 下のファイルの修正
- 拒否:すべてのデータベース操作コマンドの実行
- 拒否:Docker と CI 設定の修正

6. 総合例:チーム権限戦略

TEXT 📖 参照専用
# レベル1:個人の実験プロジェクト
claude --allow-full-auto(完全自動、迅速な反復)

# レベル2:チーム開発プロジェクト
- CLAUDE.md で src/ と tests/ の自動編集を設定
- npm test を自動実行
- git 操作には確認が必要

# レベル3:コアビジネスプロジェクト
- 読み取り専用モード + 手動確認で書き込み
- .claudeignore で機密ディレクトリを保護
- すべての変更は git diff レビューを経る

# レベル4:本番/金融プロジェクト
- 読み取り専用モード
- 提案を出力し、直接修正しない
- 人間がレビュー後に手動で適用

❓ よくある質問

Q --allow-full-auto は安全ですか?
A いいえ。完全自動モードは確認を行わず、テストプロジェクトや CI 向けです。本番では絶対に使用しないでください。
Q .claudeignore と .gitignore の違いは?
A .gitignore は git が無視するファイルを制御します。.claudeignore は Claude Code が読み取らないファイルを制御します。両者は独立して動作します。
Q Claude Code は権限設定を回避できますか?
A 通常はありません。ただし、Bash コマンド経由で間接的に未承認の操作を実行する可能性があります。重要なデータはファイルシステムレベルで保護してください。
Q 「Always」の承認を取り消すには?
A 現在のセッションを終了してください。「Always」は現在のセッション内のみ有効で、新しいセッションではデフォルトの権限に戻ります。
Q チームの権限設定を統一するには?
A CLAUDE.md と .claudeignore を git にコミットしてください。チームメンバーは自動的に同じ権限ルールを共有します。

📖 まとめ


📝 練習問題

  1. 基本 (⭐): .claudeignore を設定して .env を除外し、Claude Code が読み取らなくなったことを確認してください。
  2. 応用 (⭐⭐): プロジェクトの権限設定を書き、自動許可と確認が必要な操作を区別してください。
  3. 高度 (⭐⭐⭐): 個人、チーム、本番のシナリオをカバーするチームレベルの権限戦略を設計してください。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%