コラム Claude Code入門 更新:

Claude Codeのパーミッション設定とは!安全に使うためのセキュリティ設定ガイド

Claude Codeのパーミッション設定とは!安全に使うためのセキュリティ設定ガイド
目次 (23項目)
  1. 1. はじめに
  2. 2. 目次
  3. 3. 1. Claude Codeのパーミッションモードを理解する
  4. 3つのパーミッションモード
  5. デフォルトモード(推奨)
  6. 4. 2. 許可・禁止する操作を設定する
  7. 設定ファイルで操作を制限する
  8. よく使う許可・禁止パターン
  9. 5. 3. 本番環境での利用における注意点
  10. 原則:本番環境では直接使わない
  11. 安全な本番デプロイのフロー
  12. .envファイルと認証情報の保護
  13. 6. 4. APIキーとシークレットの安全な管理
  14. 絶対にやってはいけないこと
  15. 安全な管理方法
  16. 7. 5. CLAUDE.mdによるアクセス制限
  17. 8. 6. セキュリティチェックリスト
  18. 導入時のチェック
  19. 作業前のチェック
  20. 作業中のチェック
  21. 定期的なチェック
  22. 9. 7. まとめ
  23. 10. よくある質問(FAQ)

はじめに

「Claude Codeに任せたら、触ってほしくないファイルまで変更されないか心配」

「どこまで自律的に動いていいか、制限をかけたい」

「本番サーバーで使っても大丈夫なの?」

Claude Codeは非常に強力なツールですが、その分「意図しない変更が広範囲に及ぶリスク」もあります。この記事では、Claude Codeのパーミッション設定と安全に使うためのセキュリティ対策を解説します。

前回の第8回:MCP連携まで読んできた方は、活用の幅が広がった分、安全対策も強化しておきましょう。

目次

  1. Claude Codeのパーミッションモードを理解する
  2. 許可・禁止する操作を設定する
  3. 本番環境での利用における注意点
  4. APIキーとシークレットの安全な管理
  5. CLAUDE.mdによるアクセス制限
  6. セキュリティチェックリスト
  7. まとめ

1. Claude Codeのパーミッションモードを理解する

3つのパーミッションモード

Claude Codeには作業の自律性に応じた3つのモードがあります。

モード 概要 向いているケース
デフォルト(確認あり) ファイル編集・コマンド実行前に毎回確認を求める 初めて使う場合・重要なプロジェクト
自動承認モード 指定した操作は確認なしで実行 慣れてきた開発者・ローカル環境のみ
読み取り専用モード ファイルの読み込みのみ許可・変更不可 コードレビュー・分析のみの場合

デフォルトモード(推奨)

デフォルトでは、以下の操作の前に確認ダイアログが表示されます。

  • ファイルの新規作成・編集・削除
  • コマンドの実行
  • Gitの操作(コミット・プッシュなど)

初めてClaude Codeを使う方、本番に近い環境で使う方は必ずデフォルトモードで使用してください。

2. 許可・禁止する操作を設定する

設定ファイルで操作を制限する

.claude/settings.json に許可・禁止する操作を記述できます。

{
  "permissions": {
    "allow": [
      "Bash(git:*)",
      "Bash(npm:*)",
      "Bash(wp:*)"
    ],
    "deny": [
      "Bash(rm:-rf:*)",
      "Bash(sudo:*)",
      "Bash(curl:*)",
      "WebFetch(*)"
    ]
  }
}

よく使う許可・禁止パターン

WordPress開発で推奨する禁止設定:

{
  "permissions": {
    "deny": [
      "Bash(rm:-rf:*)",
      "Bash(sudo:*)",
      "Bash(chmod:777:*)",
      "Bash(curl:*)",
      "Bash(wget:*)"
    ]
  }
}
  • rm -rf の禁止:ファイルの一括削除を防ぐ
  • sudo の禁止:管理者権限の実行を防ぐ
  • chmod 777 の禁止:危険なパーミッション変更を防ぐ
  • curl / wget の禁止:意図しない外部ファイルのダウンロードを防ぐ

3. 本番環境での利用における注意点

原則:本番環境では直接使わない

Claude Codeはローカル開発環境での使用を前提に設計されています。本番サーバーのファイルに対してClaude Codeを直接使用することは強く推奨しません

理由:

  • 変更が即座に本番に反映されるリスク
  • ロールバックが難しい
  • 本番データベースへの意図しない操作のリスク

安全な本番デプロイのフロー

ローカル環境での開発(Claude Code使用)
    ↓
ステージング環境でテスト
    ↓
レビュー・承認
    ↓
本番環境へのデプロイ(Git経由)

Claude Codeを使うのは「ローカル環境での開発」フェーズのみに限定してください。

.envファイルと認証情報の保護

Claude Codeがプロジェクトを読み込む際に .env ファイルも参照できます。APIキー・データベースパスワードなどの認証情報が含まれる場合は適切に対処が必要です。

# .claude/settings.json で .envの参照を禁止する
{
  "ignorePatterns": [
    ".env",
    ".env.*",
    "wp-config.php",
    "*.pem",
    "*.key"
  ]
}

4. APIキーとシークレットの安全な管理

絶対にやってはいけないこと

  • CLAUDE.mdにAPIキーや認証情報を書く
  • 指示文の中にAPIキーを直接貼り付ける
  • 認証情報を含む設定ファイルをGitにコミットする

安全な管理方法

環境変数を使う:

export OPENAI_API_KEY="your-key-here"
export DB_PASSWORD="your-password-here"

Claude Codeへの指示の中では環境変数名のみを使います。

> OpenAI APIキーは環境変数OPENAI_API_KEYに設定してあります。
  この環境変数を使ってAPIリクエストを実装してください。

5. CLAUDE.mdによるアクセス制限

CLAUDE.mdに禁止事項を明示的に記述することで、Claude Codeがそのルールを守った上で作業します。

# 禁止事項(重要)

## 絶対に触れないファイル
- wp-config.php
- .env
- .env.*
- *.pem / *.key
- /uploads/ ディレクトリ内のファイル

## 禁止する操作
- プラグインファイルの直接編集(wp-content/plugins/以下の既存ファイル)
- データベースへの直接操作($wpdbのdeleteは使用禁止)
- sudo権限を必要とするコマンドの実行
- rm -rf コマンドの使用

## 本番環境での制限
- このプロジェクトはローカル開発環境専用です
- 本番環境のファイルへの直接操作は禁止

6. セキュリティチェックリスト

Claude Codeを安全に使うためのチェックリストです。

導入時のチェック

  • [ ] ローカル開発環境専用であることを確認した
  • [ ] .claude/settings.json に禁止操作を設定した
  • [ ] CLAUDE.mdに禁止ファイル・操作を明記した
  • [ ] .envwp-config.php をignorePatternsに追加した

作業前のチェック

  • [ ] Gitで最新の状態をコミットしてバックアップした
  • [ ] 本番環境ではなくローカル環境で作業していることを確認した
  • [ ] 指示文に認証情報が含まれていないことを確認した

作業中のチェック

  • [ ] Claude Codeが提示する計画を必ず確認してから承認している
  • [ ] 意図しないファイルが変更対象に含まれていないか確認している

定期的なチェック

  • [ ] Claude Codeのバージョンを最新に保っている
  • [ ] CLAUDE.mdの禁止事項が現在のプロジェクトに合っているか見直している

7. まとめ

パーミッションモードの基本:

  • デフォルトモード(確認あり)が最も安全
  • 慣れてきたら操作別に許可・禁止を設定できる
  • 読み取り専用モードはコードレビューに最適

本番環境での原則:

  • 本番環境では直接使用しない
  • ローカル→ステージング→本番のフローを守る
  • .envwp-config.php はignorePatternsで保護する

CLAUDE.mdによるルール強制:

  • 禁止ファイル・禁止操作を明示的に記載
  • チームで使う場合はGitで共有して統一ルールにする

次回の第10回:応用編・スケジュール実行・マルチエージェントでは、Claude Codeの最も高度な使い方を解説します。このシリーズの総まとめとして、実務で使える応用テクニックを紹介します。

よくある質問(FAQ)

Q. Claude Codeが誤って重要なファイルを削除してしまった場合は?

A. Gitで管理しているプロジェクトなら git checkoutgit restore で復元できます。Gitを使っていない場合は復元が困難です。Claude Codeを使うプロジェクトは必ずGitで管理することを強く推奨します。

Q. セキュリティ設定はどこに書けばいいですか?

A. 全プロジェクト共通の設定は ~/.claude/settings.json、特定プロジェクトの設定は プロジェクトルート/.claude/settings.json に書きます。禁止事項の記述はCLAUDE.mdにも追加することをお勧めします。

この記事はClaude Code入門シリーズ(全10回)の第9回です。← 第8回:MCP連携第10回:応用編 →

ご質問はお問い合わせページからお気軽にどうぞ。

著者:R-LLM 開発者

フォロー

Webエンジニアとして10年以上のキャリアがあり、現在はWordPressとLLM(大規模言語モデル)の連携、および生成AIを活用した課題解決のための開発に日々取り組んでいます。

私の信条は、クライアントに寄り添った伴走支援と、最後まで責任を持ってやり遂げる「遂行力」です。これまでの膨大なトライ&エラーの蓄積により、自身の領域内であれば不具合も迅速に解決できる現場の知見を積み上げてきました。

このブログでは、一人のエンジニアとして私自身がAI技術に抱いている純粋な興味をベースに、日々の探求プロセスを発信しています。

生成AILLMをどのように実務に組み込み、価値へ繋げていくか。自身の検証結果だけでなく、実務者としての視点に基づいた「考察や推察」も含めて共有することで、同じように試行錯誤を続ける方々と知見を繋げていければと考えています。

関連記事

SHARE Xでシェア
← 前の投稿
投稿一覧に戻る
次の投稿 →