CLAUDE LABEN
WWDC — WWDC 2026でSiriはGoogle Geminiベースと確定。ChatGPT等への外部ハンドオフは廃止され、サードパーティAI選択はEU(DMA)で当面非対応にBILLING — 6/15の課金変更まで残り6日。Agent SDK・headless Claude Code・GitHub Actions・他社エージェントがAPIレート準拠の月次クレジットへ移行OUTAGE — claude.ai・Claude Code・Coworkで障害が報告(6月)。スケジュール実行はfallbackModelとリトライ前提の設計が安全ですDYNAMIC-WORKFLOWS — Max・TeamプランとAPIでdynamic workflowsがデフォルトON。コードベース横断のバグ探索や独立検証に活用ULTRACODE — Claude Codeの新設定ultracodeがeffortメニューに追加。xhigh固定でワークフロー判断はClaudeに委ねますOPUS4.8 — Claude Opus 4.8が主要プランのデフォルトとして定着。コーディング・エージェント・推論を強化WWDC — WWDC 2026でSiriはGoogle Geminiベースと確定。ChatGPT等への外部ハンドオフは廃止され、サードパーティAI選択はEU(DMA)で当面非対応にBILLING — 6/15の課金変更まで残り6日。Agent SDK・headless Claude Code・GitHub Actions・他社エージェントがAPIレート準拠の月次クレジットへ移行OUTAGE — claude.ai・Claude Code・Coworkで障害が報告(6月)。スケジュール実行はfallbackModelとリトライ前提の設計が安全ですDYNAMIC-WORKFLOWS — Max・TeamプランとAPIでdynamic workflowsがデフォルトON。コードベース横断のバグ探索や独立検証に活用ULTRACODE — Claude Codeの新設定ultracodeがeffortメニューに追加。xhigh固定でワークフロー判断はClaudeに委ねますOPUS4.8 — Claude Opus 4.8が主要プランのデフォルトとして定着。コーディング・エージェント・推論を強化
記事一覧/Claude Code
Claude Code/2026-04-13中級

Claude Code のツール権限を自分好みに設定する:安全性と開発効率を両立させる

Claude Codeのツール権限をallowedTools・disallowedTools・settings.jsonで細かく制御する方法を解説。プロジェクト別の権限設定から、チームでの共有まで実践的な設定パターンを紹介します。

Claude Code219ツール権限セキュリティ10settings.json2allowedTools開発環境9

Claude Codeを使い始めてしばらくすると、デフォルトの権限設定に微妙な違和感を覚えることがあります。本番データベースが入ったディレクトリで作業していると「もしrmが暴走したら」という不安があるし、逆に制限をかけすぎると毎回の許可ダイアログが邪魔に感じる。

実はClaude Codeのツール権限は、かなり細かく制御できます。プロジェクトごとに許可・拒否するツールを設定でき、チームで共有する設定もsettings.jsonに書けばリポジトリで管理できます。実際に使っている権限設定のパターンを順番にご紹介します。

Claude Codeのツール権限モデルを理解する

Claude Codeが実行できる操作は大きく4つのカテゴリに分かれます。

  • ファイル操作: 読み取り(Read)・書き込み(Write)・編集(Edit)
  • Bash実行: シェルコマンドの実行(Bash)
  • Web系: ブラウザ操作、URL取得
  • MCP系: 外部MCPサーバーへのアクセス

デフォルトでは、ほとんどの操作が「許可を求める」状態になっています。--dangerously-skip-permissionsフラグで全操作を許可することもできるが、本番環境に近いディレクトリで使うのは避けるべきです。

allowedTools と disallowedTools の使い分け

コマンドラインフラグで一時的な権限設定ができます。

# 特定のツールのみ許可(ホワイトリスト方式)
claude --allowedTools "Read,Write,Edit,Bash(git status),Bash(git diff)"
 
# 特定のツールを禁止(ブラックリスト方式)
claude --disallowedTools "Bash(rm),Bash(sudo)"

Bash(コマンド名)の形式でBashコマンドを個別に制御できるのが便利です。例えばBash(git status)Bash(git diff)だけを許可すれば、ファイルの読み取りと差分確認のみ許可する「読み取り専用」に近い状態になります。

ただし毎回フラグを打つのは面倒なので、日常的な設定はsettings.jsonに書いておくほうがいい。

settings.json によるプロジェクト別設定

.claude/settings.jsonを作成すると、そのディレクトリでclaudeを起動したとき自動的に読み込まれます。

// .claude/settings.json(プロジェクトルートに配置)
{
  "permissions": {
    "allow": [
      "Read",
      "Write",
      "Edit",
      "Bash(git *)",
      "Bash(npm run *)",
      "Bash(npx *)",
      "Bash(echo *)",
      "Bash(cat *)",
      "Bash(ls *)",
      "Bash(grep *)",
      "Bash(find *)"
    ],
    "deny": [
      "Bash(rm -rf *)",
      "Bash(sudo *)",
      "Bash(curl *)",
      "Bash(wget *)"
    ]
  }
}

ワイルドカード*が使える点が便利です。Bash(git *)と書けばすべてのgitコマンドを許可できます。この設定をリポジトリにコミットしておけば、チームメンバーがgit cloneしてすぐに適切な権限でClaude Codeを使い始められます。

実際に使っているプロジェクト別設定パターン

フロントエンド開発プロジェクトでは、ネットワーク系コマンドを制限しています。

{
  "permissions": {
    "allow": [
      "Read", "Write", "Edit",
      "Bash(git *)", "Bash(npm *)", "Bash(npx *)",
      "Bash(node *)", "Bash(ts-node *)"
    ],
    "deny": [
      "Bash(curl *)", "Bash(wget *)",
      "Bash(ssh *)", "Bash(scp *)"
    ]
  }
}

バックエンドAPI開発では、データベース操作コマンドに気をつけています。

{
  "permissions": {
    "allow": [
      "Read", "Write", "Edit",
      "Bash(git *)", "Bash(go *)", "Bash(make *)",
      "Bash(docker-compose up *)", "Bash(docker-compose down)"
    ],
    "deny": [
      "Bash(psql -c DROP *)",
      "Bash(redis-cli FLUSHALL)",
      "Bash(rm -rf /var/lib/*)"
    ]
  }
}

コードレビューのみの用途(読み取り専用)は以下のようにシンプルにできます。

{
  "permissions": {
    "allow": [
      "Read",
      "Bash(git log *)", "Bash(git diff *)", "Bash(git status)",
      "Bash(cat *)", "Bash(ls *)", "Bash(grep *)"
    ],
    "deny": ["Write", "Edit", "Bash(*)"]
  }
}

グローバル設定と組み合わせる

ユーザーホームディレクトリの~/.claude/settings.jsonにはグローバルな設定を書ける。ここにはすべてのプロジェクトで禁止したい操作を定義しておくと安心です。

// ~/.claude/settings.json
{
  "permissions": {
    "deny": [
      "Bash(rm -rf /)",
      "Bash(sudo rm -rf *)",
      "Bash(format *)",
      "Bash(dd if=*)"
    ]
  }
}

設定の優先順位はプロジェクトの.claude/settings.json > ユーザーの~/.claude/settings.json > デフォルトの順番です。プロジェクト設定がグローバル設定を上書きするが、deny設定はマージされる(どちらかで拒否されていれば拒否される)。

Claude Codeのセッション中に権限を確認する

現在有効な権限設定は、セッション中に確認できます。

# Claude Codeを起動してから
/permissions

このスラッシュコマンドで現在許可・拒否されているツールの一覧が表示されます。設定が期待通りに反映されているか確認したいときに便利です。

権限設定でよくある失敗

ワイルドカードの誤用Bash(git *)はスペース込みのコマンドにマッチします。Bash(git commit -m "メッセージ")も許可されます。コミットメッセージの内容までは制御できないので、そこまで厳密に制御したい場合はBash(git commit *)を拒否リストに入れる必要があります。

deny設定でブロックできないケース:シェルスクリプト経由でコマンドが実行される場合、Bash(スクリプト名.sh)は許可されていても、スクリプト内のrm -rfはdenyリストでブロックできないことがあります。スクリプト実行自体を慎重に扱うべきです。

MCP権限の別管理:MCPサーバーへのアクセスはallowedToolsBash系とは別に管理されます。MCPツールを特定のプロジェクトでのみ有効化したい場合は、settings.jsonmcpServersセクションで制御します。

今の設定を洗い直してみると、案外デフォルトから変えられていない部分が多いかもしれません。プロジェクトの性質に合わせた権限設定を一度整えておくと、「もし暴走したら」という漠然とした不安が減って、Claude Codeをより積極的に活用できるようになります。

シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

Claude Code2026-05-04
Claude Code で MCP サーバーを実践活用する — 設計から運用まで
Claude Code の MCP サーバー連携を実際のプロジェクトで使い始める方法を、設定のコツから頻出エラーの対処法、実践的な構成例まで解説します。
Claude Code2026-04-19
Claude Code × Cursor × Windsurf ハイブリッドAI開発ワークフロー — 3ツールを組み合わせて開発速度を最大化する実践設計 2026
Claude Code・Cursor・Windsurf それぞれの強みを理解し、タスクに応じて使い分けるハイブリッドAI開発環境を構築する実践ガイド。コスト最適化・チーム運用・設定同期まで徹底解説します。
Claude Code2026-04-10
Claude Code × GitHub Copilot — AI開発ツール徹底比較&併用戦略ガイド
Claude CodeとGitHub Copilotの機能差・強み・弱点を徹底分析。2つのAI開発ツールを組み合わせて、最強の開発ワークフローを構築する方法を詳しく解説します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →