Claude Codeにシステムを破壊されないための権限設定
2024年後半から急速に進化したClaude Codeは、適切な設定により開発生産性を2-10倍向上させることが実証されています。
実際に開発プロジェクトにおいてコミットの約2/3をClaude Codeが生成し、チーム全体の開発フローを変革している事例もあります。
本記事では、公式ドキュメントと実際の導入事例を基に、効果的な設定方法を解説します。
基本設定の重要ポイント
設定ファイルの適切な構造
Claude Codeの設定は、公式形式では.claude/settings.json
ファイルで管理されます。重要なのは、曖昧な指示ではなく具体的で実行可能な設定を記述することです。
{
"instructions": "Python開発ではPEP8準拠、行の長さは88文字以内。関数は単一責任原則に従い15行以内を目安とし、日本語コメントで処理内容を明記。エラーハンドリングでは具体的な例外クラスを指定し、ユーザー向けメッセージは日本語で分かりやすく表現する。",
"permissions": {
"allow": [
"Bash(npm run test:*)",
"Edit(src/**/*.py)",
"Read(~/Documents/projects/**)"
],
"deny": [
"Read(./.env)",
"Bash(curl:*)",
"Edit(/etc/**)"
]
}
}
権限管理による安全な運用
Claude Codeに破壊的な変更をさせないために権限管理が重要です。
例えば機密ファイルへのアクセス制限、破壊的なコマンドの実行防止、外部アクセスの制御を組み合わせることで、セキュリティを保ちながら効率的な開発が可能になります。
レイヤー1: ファイルアクセス制御
{
"permissions": {
"deny": [
"Read(./.env*)",
"Read(id_rsa)",
"Read(id_ed25519)",
"Read(**/*token*)",
"Read(**/*key*)",
"Read(./secrets/**)",
"Read(~/.ssh/**)",
"Read(/etc/passwd)",
"Edit(./config/production.yaml)",
"Write(./database/migrations/**)"
"Write(.env*)"
"Write(**/secrets/**)"
]
}
}
重要な制御ポイント:
-
機密情報の完全遮断:
.env
ファイル、SSH鍵、本番設定ファイル -
システムファイル保護:
/etc
配下、データベーススキーマファイル - 段階的許可: 設定ファイルは確認後に編集、ドキュメントは慎重に更新
レイヤー2: コマンド実行制御
{
"permissions": {
"allow": [
"Bash(git status)",
"Bash(git diff*)",
"Bash(npm run test*)",
"Bash(pytest tests/*)",
"Bash(python -m pytest*)",
"Bash(docker-compose up --build)"
],
"deny": [
"Bash(sudo*)",
"Bash(rm:*)",
"Bash(rm -rf*)",
"Bash(git push:*)"
"Bash(git commit:*)"
"Bash(git reset:*)"
"Bash(git rebase:*)"
"Bash(curl*)",
"Bash(wget*)",
"Bash(nc*)",
"Bash(ssh*)",
"Bash(scp*)",
"Bash(docker system prune*)"
"Bash(npm uninstall:*)"
"Bash(npm remove:*)"
"Bash(psql:*)"
"Bash(mysql:*)"
"Bash(mongod:*)"
],
"ask": [
"Bash(git push*)",
"Bash(npm install*)",
"Bash(pip install*)",
"Bash(docker*)"
]
}
}
セキュリティ考慮事項:
-
破壊的コマンドの禁止:
rm -rf
、sudo
、システム削除コマンド -
外部通信の制限:
curl
、wget
でのデータ流出防止 - 重要操作の確認: 本番ブランチへのpush、パッケージインストール
レイヤー3: 外部サービス連携制御
{
"permissions": {
"allow": [
"WebFetch(docs.python.org/*)",
"WebFetch(github.com/*/releases)",
"mcp__github__read_issues",
"mcp__linear__read_tickets"
],
"deny": [
"WebFetch(*)",
"mcp__*__write*",
"mcp__*__delete*",
"mcp__slack__send_message",
"mcp__email__*"
"mcp__supabase__execute__sql"
],
"ask": [
"WebFetch(stackoverflow.com/*)",
"mcp__github__create_pr",
"mcp__linear__update_ticket"
],
"additionalDirectories": [
"../shared-libraries/",
"~/Documents/team-templates/"
]
}
}
セキュリティインシデント対応
異常検知と自動対応
{
"hooks": {
"PreToolUse": [{
"matcher": "Bash",
"hooks": [{
"type": "command",
"command": "if [[ \"$CLAUDE_BASH_COMMAND\" =~ (rm\\ -rf|sudo|curl.*\\|) ]]; then echo 'SECURITY ALERT: Suspicious command blocked' && exit 1; fi"
}]
}]
}
}
緊急時のアクセス無効化
# 緊急時の全権限無効化
echo '{"permissions": {"deny": ["*"]}}' > .claude/emergency-lockdown.json
claude-code --config .claude/emergency-lockdown.json
この3層権限制御により、企業は以下を実現できます:
- データ漏洩の防止: 機密ファイルへの完全なアクセス遮断
- システム破壊の防止: 危険なコマンドの実行禁止
- 不正な外部通信の防止: 承認されていない外部サービスへのアクセス制限
- 段階的な権限付与: 職位・経験に応じた適切な権限設定
- 完全な監査証跡: すべての操作ログの自動記録
これにより、セキュリティを損なうことなく、Claude Codeの強力な開発支援機能を安全に活用できます。
革新的な新機能の活用
サブエージェント機能
2024年11月に追加されたサブエージェント機能により、専門化されたAI支援が実現できます。.claude/agents/
ディレクトリにMarkdownファイルで保存する専門エージェントにより、コードレビュー、セキュリティ監査、パフォーマンス最適化を自動化できます。
---
name: code-reviewer
description: Senior developer focused on code quality and best practices
tools: ["Read", "Grep", "Edit"]
---
レビュー観点:
1. 可読性:6ヶ月後の自分が理解できるか
2. 拡張性:新要件に対して変更箇所が局所的か
3. テスタビリティ:単体テストが書きやすい構造か
4. セキュリティ:入力値検証とエスケープ処理が適切か
hooksシステムによる自動化
開発プロセス全体を自動化するhooks機能により、コード編集時の自動フォーマットやテスト実行が可能になります。
{
"hooks": {
"PostToolUse": [{
"matcher": "Edit|MultiEdit|Write",
"hooks": [{
"type": "command",
"command": "if [[ $CLAUDE_FILE_PATHS =~ \\.py$ ]]; then black $CLAUDE_FILE_PATHS && ruff check --fix $CLAUDE_FILE_PATHS; fi"
}]
}]
}
}
VSCode統合とvibe coding
IDE統合の実践
Claude Code IDE拡張機能をVSCodeに統合することで、Quick Launch(Cmd+Esc
)、リアルタイムDiff Viewer、選択範囲の自動共有などの機能を活用できます。
.vscode/settings.json
での推奨設定:
{
"python.defaultInterpreterPath": "./venv/bin/python",
"python.formatting.provider": "black",
"python.testing.pytestEnabled": true,
"terminal.integrated.env.osx": {
"CLAUDE_CONFIG": ".claude/settings.json"
}
}
vibe codingでのコーディング
vibe codingを実現するには、Claude Codeが開発者の思考フローを理解し、最適なタイミングで最適なコードを提供できる設定が重要です。
言語別最適化設定
Python環境
現代的なPython開発ではuv
パッケージマネージャーとの統合が効果的です。CLAUDE.mdファイルに以下のような指示を記載:
# Python プロジェクト専用設定
- パッケージ管理:uv exclusively
- 依存関係追加:`uv add <package>`
- スクリプト実行:`uv run <script-name>.py`
- PEP8準拠、型ヒント必須、Google形式docstring
JavaScript/TypeScript環境
hooks機能による自動型チェックとフォーマット実行で開発効率を大幅向上:
{
"hooks": [{
"matcher": "Edit",
"hooks": [{
"type": "command",
"command": "if [[ \"$CLAUDE_FILE_PATHS\" =~ \\.(ts|tsx)$ ]]; then npx tsc --noEmit --skipLibCheck \"$CLAUDE_FILE_PATHS\"; fi"
}]
}]
}
成功要因と今後の展望
Claude Code導入成功の核心要因は以下の4点です:
- 適切な環境整備: 設定ファイルの体系的管理とチーム標準化
- 段階的スキルアップ: 個人利用から始まるチーム全体での知見蓄積
- セキュリティファースト: 企業ポリシーに適合した権限・監査体制
- 継続的改善文化: 定期的な事例共有と最適化レビュー
Claude Codeは単なる開発支援ツールではなく、開発チーム全体の働き方を変革するプラットフォームとして急速に進化しています。
基本設定から始めて、実践での学び、チーム議論、段階的改善、定期見直しのサイクルを回すことで、あなたのプロジェクトに最適化された設定を構築してください。
Discussion