コンテンツへスキップ

media AI活用の最前線

【2026年最新】Claude Code セキュリティ設定完全ガイド|情報漏洩対策7チェック+企業導入承認テンプレ

結論: Claude Code のセキュリティリスクは「API key 漏洩」「コード送信」「.env 混入」の3類型に集約される。settings.json の deny ルール設定・Pre-commit hook・.gitignore 強化の3点セットで、企業導入時のセキュリティ審査を通過できる状態を整えられる。

この記事の要点:

  • 要点1: settings.json の permissions.deny に Read(./.env) Read(./secrets/**) を追加するだけで、意図せぬ機密ファイル読み取りを防止できる(公式ドキュメント確認済み・2026年6月時点)
  • 要点2: Anthropic は SOC 2 Type 2 および ISO 27001 取得済み。Enterprise/Team プランではデータ学習無効が約款で保証されており、セキュリティ部門向けの公式エビデンスとして提示できる
  • 要点3: 企業導入承認テンプレート(本文掲載)をそのまま社内稟議に使えば、セキュリティ部門との交渉を大幅に短縮できる

対象読者: Claude Code の社内導入を検討中のIT担当者・情報システム部門・開発責任者

読了後にできること: settings.json セキュリティ設定を今日中に適用し、社内セキュリティ審査用のチェックリストを1枚作れる

「Claude Code を使いたいんですが、セキュリティ部門に止められてしまいました……」

先日、ある製造業の情報システム担当者からこんな相談を受けました。聞けば、開発者がローカルで Claude Code を使い始めたところ、セキュリティ審査で「コードが外部に送信されるのでは」「API key が漏洩するリスクがある」と指摘され、全社展開どころか個人利用すら凍結になってしまったと。

正直、この問題は2026年時点でかなり多くの企業で起きています。私が研修に入っている100社以上のクライアントでも、「技術的に使えることはわかっている、でも情シスが首を縦に振らない」という声を何度も聞いてきました。

でも、ちゃんと設定を整えれば、Claude Code のセキュリティリスクはかなりコントロールできます。むしろ、適切に設定された Claude Code は、無防備に使われる既存のSaaS ツールよりはるかに管理しやすい。この記事では、セキュリティ部門を説得できるレベルの設定と、承認を通すためのテンプレートを丸ごと公開します。

この記事では、Claude Code のセキュリティリスク3類型から始め、7つのチェック項目・5ステップ実装フロー・企業向け承認テンプレートまで、コピペで使える設定例と合わせて解説します。

Claude Code のセキュリティリスク3類型

まず大前提として、Claude Code のセキュリティリスクを正確に把握しておきましょう。漠然と「AIツールだからリスクがある」では審査が通りません。3つの類型に絞って理解することが重要です。

リスク類型1:API key 漏洩

最もよくあるのが、API key をコードやコミット履歴に埋め込んでしまうパターンです。

Claude Code を使うには Anthropic の API key が必要ですが、開発者が .env ファイルや設定ファイルに直書きしたまま、そのファイルを Git にコミットしてしまうことがあります。公開リポジトリであれば即座に悪用される危険がありますし、プライベートリポジトリでも内部での不正利用リスクがあります。

さらに、Claude Code 自体がコードを読み込む際に、意図せず .env ファイルの内容を Anthropic のサーバーに送信してしまう可能性もゼロではありません(後述する設定で防止できます)。

リスク類型2:コード・情報の外部送信

Claude Code はコード補完・説明・修正のために、プロジェクトのコードをコンテキストとして Anthropic の API に送信します。この「どの範囲のコードが送信されるか」が不透明に感じられるため、セキュリティ部門が懸念を持つケースが多いです。

Anthropic 公式の説明(Anthropic Trust Center、参照日: 2026-06-03)によれば、Team・Enterprise プランでは入力データは AI のトレーニングに使用されません。また、データ保持期間は最大30日(プライバシー設定で変更可能)です。ただし、こういった仕様を社内で周知しないまま使い始めると、「情報が漏れているかもしれない」という不安を生む原因になります。

リスク類型3:.env や機密ファイルの混入

Claude Code はデフォルトで、起動したディレクトリとそのサブディレクトリのファイルを読み取ることができます(公式ドキュメント Security、参照日: 2026-06-03)。

つまり、プロジェクトルートに .env ファイルがある状態で Claude Code を起動すると、環境変数(DB パスワード、外部APIキーなど)を含む .env の内容がコンテキストに含まれる可能性があります。「Claude Code にデバッグを頼んだら、.env の内容が会話履歴に残っていた」という事故は実際に起きています。

これら3つのリスクは、後述する設定で適切に管理できます。Claude Code のセキュリティアーキテクチャは「パーミッションベース」で設計されており、管理者が細かく制御できるよう設計されています(公式 Permissions ドキュメント、参照日: 2026-06-03)。

Claude Code の導入全体像については、Claude Code 完全ガイドもあわせてご参照ください。

まず確認:Claude Code のデフォルトセキュリティ設計

設定の話に入る前に、Claude Code がデフォルトでどのようなセキュリティ設計になっているかを把握しておきましょう。これを理解することで、「どこを追加で設定すれば十分か」が明確になります。

デフォルトで備わっている保護機能

公式ドキュメント(Claude Code Security、参照日: 2026-06-03)によると、Claude Code には以下の組み込み保護機能があります:

  • 書き込みアクセス制限: Claude Code は起動ディレクトリとそのサブフォルダにのみ書き込みができ、親ディレクトリのファイルは変更できません
  • パーミッションプロンプト: Bash コマンド実行・ファイル編集など、リスクのある操作は事前に承認が必要です
  • curl/wget のデフォルトブロック: 外部へ任意のコンテンツを取得するコマンドはデフォルトでブロックされます
  • コマンドインジェクション検出: 疑わしい Bash コマンドは、以前にホワイトリスト登録されていても手動承認が必要になります
  • API key の暗号化保存: API key とトークンは暗号化して保存されます

研修先のセキュリティ担当者に「Claude Code って勝手に外部通信しないんですか?」と聞かれたとき、このデフォルト制限の一覧を見せたら「あ、思ったよりちゃんとしてますね」と反応が変わりました。前提知識を共有するだけで、議論の質が全然違う。

デフォルトでは対応できない部分

一方で、デフォルト設定では以下の部分は保護されていません:

  • プロジェクト内の .env ファイルの読み取り制限(デフォルトでは読める)
  • 特定の外部ドメインへのアクセス制限
  • 組織レベルでの統一設定の配布
  • Git コミット前の機密情報スキャン

次のセクションでは、これらを補完するための7つのチェック項目を解説します。

AI活用、何から始めればいい?

100社以上の研修実績をもとに、30分の無料相談で貴社の課題を整理します。

無料相談はこちら 生成AI導入 稟議書テンプレートを受け取る

Claude Code セキュリティ設定7チェック

以下の7項目を順番に対応すれば、企業導入レベルのセキュリティ設定が整います。難易度は「低・中・高」で表示しています。

チェック1: API key の Vault 管理(難易度:低)

最初にやるべきは、API key を安全な場所に保存することです。Claude Code の API key は ~/.claude/settings.json に直接書かず、環境変数または OS のキーチェーンで管理します。

macOS の場合、Keychain Access を使うか、以下のように .zshrc.bashrc に環境変数として設定します:

# ~/.zshrc に追加(APIキーを直接書かない)
export ANTHROPIC_API_KEY="$(security find-generic-password -a "${USER}" -s "anthropic-api-key" -w)"

# Keychain への登録(一度だけ実行)
security add-generic-password -a "${USER}" -s "anthropic-api-key" -w "sk-ant-xxxxxxxxxxxx"

企業環境では HashiCorp Vault や AWS Secrets Manager などの秘密管理ツールを使うことをお勧めします。Claude Code の apiKeyHelper 設定を使えば、カスタムスクリプトで動的に API key を取得できます(公式 Settings ドキュメント、参照日: 2026-06-03):

// ~/.claude/settings.json
{
  "apiKeyHelper": "/bin/fetch_api_key_from_vault.sh"
}

チェック2: settings.json の permissions.deny 設定(難易度:低)

最も重要な設定です。~/.claude/settings.json(全プロジェクト共通)または .claude/settings.json(プロジェクト固有)に以下を追加します。

// ~/.claude/settings.json(全プロジェクト共通設定・推奨)
{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)",
      "Read(./.aws/credentials)",
      "Read(./.ssh/**)",
      "Read(./config/credentials.json)",
      "Bash(curl *)",
      "Bash(wget *)"
    ],
    "allow": [
      "Bash(git status)",
      "Bash(git log *)",
      "Bash(git diff *)",
      "Bash(npm run lint)",
      "Bash(npm run test *)"
    ]
  }
}

このひと手間で、.env ファイルやクレデンシャルファイルへのアクセスが Claude Code から完全にブロックされます。設定の優先順位は「deny > ask > allow」なので、deny ルールは必ず最優先で評価されます(公式 Permissions ドキュメント、参照日: 2026-06-03)。

プロジェクトチームで統一設定を使いたい場合は、.claude/settings.json を Git にコミットして共有できます。

顧問先の開発チームでこの設定を展開したとき、「え、こんな数行で .env が読まれなくなるんですか?」と驚かれました。シンプルなのに効果的で、セキュリティ担当者への説明もしやすい。

チェック3: Pre-commit フックで機密情報をスキャン(難易度:中)

API key やパスワードが誤ってコミットされるのを防ぐため、Pre-commit フックで機密情報を検出します。

#!/bin/bash
# .git/hooks/pre-commit(実行権限が必要: chmod +x .git/hooks/pre-commit)

echo "機密情報スキャン中..."

# API key パターンを検出
PATTERNS=(
  "sk-ant-[a-zA-Z0-9]"          # Anthropic API key
  "sk-[a-zA-Z0-9]{48}"          # OpenAI API key
  "AKIA[A-Z0-9]{16}"             # AWS Access Key
  "AIzaSy[a-zA-Z0-9_-]{33}"     # Google API key
  "-----BEGIN.*PRIVATE KEY-----" # 秘密鍵
)

STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM)

for file in $STAGED_FILES; do
  for pattern in "${PATTERNS[@]}"; do
    if git show ":$file" 2>/dev/null | grep -qE "$pattern"; then
      echo "⛔ 警告: '$file' に機密情報の可能性があります(パターン: $pattern)"
      echo "   コミットを中断しました。ファイルを確認してください。"
      exit 1
    fi
  done
done

echo "✅ 機密情報スキャン完了: 問題なし"
exit 0

より高機能な管理が必要な場合は、gitleaks などの専用ツールの導入もお勧めです。

チェック4: .gitignore の強化(難易度:低)

機密ファイルが Git に追加されないよう、.gitignore を適切に設定します。Claude Code 関連ファイルも含めた推奨設定:

# 環境変数・機密情報
.env
.env.*
.env.local
.env.production
secrets/
credentials.json
*.pem
*.key
*.cert

# AWS
.aws/credentials
.aws/config

# Claude Code ローカル設定(プロジェクト固有のは共有可だが、個人設定は除外)
.claude/settings.local.json

# その他のクレデンシャル
.netrc
*.keystore
service-account.json

すでに Git 管理している .env がある場合は、以下で追跡から外してください:

git rm --cached .env
git commit -m "chore: .env を git追跡から除外"

チェック5: CLAUDE.md のスコープ管理(難易度:低)

CLAUDE.md はプロジェクトのコンテキストを Claude Code に伝えるファイルですが、内部情報を書きすぎないよう注意が必要です。

CLAUDE.md に書いてよいもの(公開・内部共有OK):

  • コーディング規約・命名規則
  • プロジェクト構成の説明
  • 使用技術スタック
  • テストコマンド・デプロイ手順(機密でないもの)

CLAUDE.md に書いてはいけないもの:

  • API key・パスワード・トークン
  • 本番環境の接続情報(DB ホスト名など)
  • 個人情報・顧客データ
  • 機密のビジネスロジック・アルゴリズム

チームで使う場合は CLAUDE.md を Git にコミットします。ローカルにしか残したくない個人メモは CLAUDE.local.md(Git で除外)を使います。

チェック6: Enterprise プランの「データ学習オフト」確認(難易度:低)

企業での利用では、入力したコードが AI のトレーニングに使われないかが重要な懸念事項です。

Anthropic の規約(Commercial Terms of Service、参照日: 2026-06-03)によると:

  • API(有料)・Team・Enterprise プラン: デフォルトでトレーニングに使用されません
  • Claude.ai 無料・Pro プラン: プライバシー設定でオプトアウト可能

企業導入では API または Team/Enterprise プランを使い、商用利用規約を確認したうえで導入することを強くお勧めします。また、Anthropic は SOC 2 Type 2 認証および ISO 27001 認証を取得しており(Anthropic Trust Center、参照日: 2026-06-03)、セキュリティ部門への説明材料として活用できます。

チェック7: Pre-tool フックでリアルタイム監査(難易度:高)

より高度な制御が必要な場合は、Claude Code のフック機能を使ってリアルタイムで操作を監査できます。hooks は ~/.claude/settings.json に設定します:

// ~/.claude/settings.json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "/usr/local/bin/claude-security-audit.sh"
          }
        ]
      }
    ]
  }
}
#!/bin/bash
# /usr/local/bin/claude-security-audit.sh
# PreToolUse フックのセキュリティ監査スクリプト

# stdin から Claude Code のツール呼び出し情報を読み取る
INPUT=$(cat)
COMMAND=$(echo "$INPUT" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('tool_input',{}).get('command',''))")

# 危険なコマンドパターンを検出
DANGEROUS_PATTERNS=(
  "rm -rf"
  "curl.*api\\.anthropic"
  "cat.*\.env"
  "echo.*password"
)

for pattern in "${DANGEROUS_PATTERNS[@]}"; do
  if echo "$COMMAND" | grep -qiE "$pattern"; then
    # ログに記録
    echo "$(date '+%Y-%m-%d %H:%M:%S') BLOCKED: $COMMAND" >> ~/claude-security-audit.log
    # exit 2 でブロック
    exit 2
  fi
done

# ログに記録(許可)
echo "$(date '+%Y-%m-%d %H:%M:%S') ALLOWED: $COMMAND" >> ~/claude-security-audit.log
exit 0

フック機能の詳細は 公式 Permissions ドキュメント(参照日: 2026-06-03)を参照してください。

AIガバナンス全体の設計については、AI ガバナンス委員会の設計ガイドもご参照ください。

5ステップ実装フロー

ここまでの7チェックを、現場で実装しやすい順番に整理しました。

  1. settings.json の deny ルールを設定する
    ~/.claude/settings.json を作成し、.env・secrets・curl・wget の deny ルールを追加する。所要時間:5分

  2. .gitignore を強化する
    既存の .gitignore に機密ファイルのパターンを追加。すでに追跡しているファイルは git rm --cached で除外する。所要時間:10分

  3. API key を環境変数・Vault 管理に切り替える
    直書きされている API key がないか全プロジェクトを確認し、OS キーチェーンまたは Vault に移行する。所要時間:30分〜1時間

  4. Pre-commit フックを導入する
    チーム全体への展開は huskypre-commit ツールを使って一括設定する。所要時間:30分

  5. CLAUDE.md の内容を見直す
    既存の CLAUDE.md に機密情報が含まれていないか確認し、必要があれば CLAUDE.local.md に移動する。所要時間:15分

コピペ可能な設定例集

ここからは、すぐに使えるコピペ設定例を5つ紹介します。

設定例1: settings.json 完全版(中規模開発チーム向け)

// .claude/settings.json(プロジェクト共有・Git コミット推奨)
{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "permissions": {
    "defaultMode": "acceptEdits",
    "allow": [
      "Bash(git status)",
      "Bash(git log *)",
      "Bash(git diff *)",
      "Bash(git add *)",
      "Bash(git commit *)",
      "Bash(npm run lint)",
      "Bash(npm run test *)",
      "Bash(npm run build)",
      "Bash(ls *)",
      "Bash(cat *)",
      "Bash(grep *)"
    ],
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./.env.local)",
      "Read(./.env.production)",
      "Read(./secrets/**)",
      "Read(./.aws/credentials)",
      "Read(./.ssh/**)",
      "Read(./config/credentials.json)",
      "Bash(curl *)",
      "Bash(wget *)",
      "Bash(rm -rf *)",
      "Bash(git push --force *)"
    ]
  }
}

設定例2: Enterprise 向け managed settings(IT 管理者が全社展開)

macOS では /Library/Application Support/ClaudeCode/managed-settings.json に配置します(MDM での一括配布も可能):

// managed-settings.json(IT 管理者が配置・ユーザーによるオーバーライド不可)
{
  "allowManagedPermissionRulesOnly": true,
  "disableBypassPermissionsMode": "disable",
  "permissions": {
    "deny": [
      "Read(**/.env)",
      "Read(**/.env.*)",
      "Read(**/secrets/**)",
      "Read(**/.aws/**)",
      "Read(**/.ssh/**)",
      "Bash(curl *)",
      "Bash(wget *)"
    ],
    "allow": [
      "Bash(git *)",
      "Bash(npm run *)"
    ]
  }
}

設定例3: .gitignore 完全版

# === 機密情報 ===
.env
.env.*
.env.local
.env.development
.env.production
.env.test
secrets/
credentials/
*.pem
*.key
*.cert
*.p12
*.pfx
.netrc
service-account*.json
*-credentials.json

# === クラウドプロバイダー ===
.aws/
.azure/
.gcloud/
gcp-key*.json

# === Claude Code 個人設定 ===
.claude/settings.local.json
CLAUDE.local.md

# === その他 ===
*.log
*.sqlite
*.db

設定例4: Pre-commit フック(husky + lint-staged 統合版)

#!/bin/bash
# .husky/pre-commit

echo "🔍 セキュリティスキャン実行中..."

# gitleaks が入っている場合はそちらを優先
if command -v gitleaks &> /dev/null; then
  gitleaks protect --staged --redact -v
  if [ $? -ne 0 ]; then
    echo "❌ gitleaks が機密情報を検出しました。コミットを中断します。"
    exit 1
  fi
else
  # 簡易スキャン(gitleaks がない場合のフォールバック)
  STAGED=$(git diff --cached --name-only)
  for file in $STAGED; do
    if git show ":$file" 2>/dev/null | grep -qE "sk-ant-api[a-zA-Z0-9]{80,}|AKIA[A-Z0-9]{16}|AIzaSy[a-zA-Z0-9_-]{33}"; then
      echo "❌ '$file' に API key の可能性のある文字列が含まれています"
      exit 1
    fi
  done
fi

echo "✅ セキュリティスキャン完了"

設定例5: Slack 通知付き監査ログ(Pre-tool フック)

#!/bin/bash
# ~/claude-audit-hook.sh
# PreToolUse フックでコマンドを記録し、危険なパターンは Slack に通知

LOG_FILE="$HOME/claude-audit.log"
SLACK_WEBHOOK="${CLAUDE_AUDIT_SLACK_WEBHOOK}"  # 環境変数から読み込む

INPUT=$(cat)
TOOL_NAME=$(echo "$INPUT" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('tool_name',''))" 2>/dev/null)
COMMAND=$(echo "$INPUT" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('tool_input',{}).get('command',''))" 2>/dev/null)
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
USER=$(whoami)

# ログに記録
echo "[$TIMESTAMP] USER=$USER TOOL=$TOOL_NAME CMD=$COMMAND" >> "$LOG_FILE"

# 危険パターンの検出
ALERT_PATTERNS=("rm -rf /" "cat.*\.env" "curl.*secrets" "echo.*password")
for pattern in "${ALERT_PATTERNS[@]}"; do
  if echo "$COMMAND" | grep -qiE "$pattern"; then
    # Slack 通知(webhook が設定されている場合)
    if [ -n "$SLACK_WEBHOOK" ]; then
      curl -s -X POST "$SLACK_WEBHOOK" \
        -H "Content-Type: application/json" \
        -d "{\"text\":\"🚨 Claude Code セキュリティアラート\n*ユーザー*: $USER\n*コマンド*: $COMMAND\n*時刻*: $TIMESTAMP\"}" \
        > /dev/null 2>&1
    fi
    echo "[$TIMESTAMP] BLOCKED: $COMMAND" >> "$LOG_FILE"
    exit 2  # ブロック
  fi
done

exit 0

企業導入承認テンプレート(セキュリティ部門向け)

以下は、セキュリティ部門に Claude Code の導入承認を求める際に使えるテンプレートです。社内稟議用にカスタマイズしてご利用ください。

【社内稟議用】Claude Code 導入セキュリティアセスメント

作成日: 2026年__月__日 申請部門: __ 申請者: __

1. 対象ツール概要

  • ツール名: Claude Code(Anthropic 社製)
  • 利用形態: CLI ツール(各開発者のローカル環境にインストール)
  • 利用プラン: Team/Enterprise プラン(API ベース)
  • 目的: 開発者の生産性向上(コード補完・レビュー・説明)

2. セキュリティ認証・コンプライアンス

項目ステータス確認先
SOC 2 Type 2✅ 取得済みhttps://trust.anthropic.com
ISO 27001✅ 取得済みhttps://trust.anthropic.com
データ学習への利用✅ Team/Enterprise は対象外商用利用規約 §3
データ保持期間最大30日(設定変更可)Privacy Center
サーバー所在地米国(AWS us-east-1 等)Anthropic Trust Center

3. 技術的セキュリティ対策(実装済み)

リスク対策担保方法
API key 漏洩Vault/Keychain 管理・Pre-commit フック設定ファイル・フック確認
.env ファイル読み取りsettings.json の deny ルール設定/permissions で確認可能
機密情報の外部送信curl/wget の deny ルール・アクセス制限監査ログで確認
不正なファイル変更デフォルトのパーミッションプロンプト操作前に承認必須
プロンプトインジェクション入力サニタイゼーション・コンテキスト分析公式ドキュメント参照

4. 運用ルール(合意事項)

  • [ ] 全利用者に設定ガイドラインを周知・実施(セキュリティ研修実施)
  • [ ] managed-settings.json を IT 部門が一元管理し MDM で配布
  • [ ] 月次で監査ログをレビュー(情シス担当者)
  • [ ] 機密情報(個人情報・機密文書)を Claude Code のコンテキストに含めない
  • [ ] 問題が発生した場合の報告窓口を設置

5. 承認

申請者: ______________ 印

情報システム部門責任者: ______________ 印

承認日: 2026年__月__日

【要注意】よくある失敗パターンと回避策

失敗1: API key を公開リポジトリにコミットしてしまう

よくある間違い: .env ファイルを .gitignore に追加し忘れ、ANTHROPIC_API_KEY=sk-ant-xxxx をコミットしてしまう。GitHub に push した瞬間、自動スキャンツールが検出して悪用されるリスクがある。

正しいアプローチ: 最初にプロジェクトを作る段階で .gitignore.env を追加する。`git add` する前に `git status` で確認する習慣をつける。誤ってコミットしてしまった場合は、Anthropic 管理コンソールから即座に API key を失効させる。

なぜ重要か: GitHub のセキュリティスキャンは数秒以内に公開リポジトリの API key を検出するため、push した直後から悪用される可能性があります。実際に私のクライアントの開発者が、公開リポジトリに誤って Anthropic の API key をコミットし、1時間で数万円分の API 利用料が発生したケースがありました。

失敗2: .env ファイルがコンテキストに含まれた状態で複雑な処理を依頼する

よくある間違い: deny ルールを設定せず、プロジェクトルートの .env を読み取り可能なまま「このプロジェクト全体を分析して」と依頼してしまう。Claude Code が .env の内容を読み込み、DB パスワードや外部 API key が会話履歴に残る。

正しいアプローチ: チェック2で説明した permissions.deny を必ず設定する。設定後は /permissions コマンドで deny ルールが正しく反映されているか確認する。

なぜ重要か: 会話履歴は最大30日間保持されます(設定変更可能)。機密情報が一度コンテキストに入ると、その後の会話でも参照される可能性があります。

失敗3: Pre-commit フックを個人環境だけに入れてチーム展開しない

よくある間違い: セキュリティ担当者の個人マシンにだけ Pre-commit フックを設定し、他の開発者には展開しない。結果として、他の開発者が API key をコミットするリスクが残り続ける。

正しいアプローチ: huskypre-commit ツールを使ってプロジェクト全体に一括適用する。package.jsonprepare スクリプトに設定すれば、npm install 時に自動でフックが設定される。

// package.json
{
  "scripts": {
    "prepare": "husky install"
  },
  "devDependencies": {
    "husky": "^9.0.0"
  }
}

失敗4: フックで無限ループが発生する

よくある間違い: Pre-tool フックの内部で別のシェルコマンドを実行しようとし、そのコマンドがさらにフックを呼び出す無限ループが発生する。Claude Code がフリーズしたり、エラーで強制終了したりする。

正しいアプローチ: Pre-tool フックスクリプト内では、Claude Code が管理するコマンドを呼び出さない。外部への通知(Slack Webhook への curl など)は、フック内部では別プロセスとして非同期実行する(& でバックグラウンド実行)か、フックとは独立したログ収集の仕組みを使う。

チームへの展開方法(ロールアウト5ステップ)

セキュリティ設定を個人だけでなくチーム全体に展開するためのステップを紹介します。詳細はClaude Code チーム展開5ステップガイドもご参照ください。

Step 1: セキュリティポリシー文書の整備(1週目)

「Claude Code 利用ガイドライン」として、以下の項目を盛り込んだドキュメントを作成します:

  • 利用が認められる範囲(コード補完・レビュー・テスト生成など)
  • Claude Code のコンテキストに入れてはいけない情報の一覧
  • API key の管理ルール
  • インシデント発生時の報告フロー

Step 2: 共通 settings.json の作成・テスト(1-2週目)

IT 担当者が managed-settings.json を作成し、数名の開発者でテストします。/permissions コマンドで設定が正しく反映されているかを確認します。

Step 3: セキュリティ研修の実施(2週目)

全利用者にリスク3類型と設定方法を説明する30分の研修を実施します。なぜこの設定が必要なのかを理解してもらうことが重要です。一方的に「禁止・制限」を押し付けると抵抗が生まれるので、「こうすれば安全に使える」という前向きな姿勢で伝えましょう。

Step 4: 段階展開(3-4週目)

最初は1つのチームで試験運用し、問題がなければ全社展開します。モニタリング期間中は監査ログを毎日確認します。

Step 5: 月次レビューの定例化(継続)

月に一度、監査ログを確認し、不審なアクティビティや設定の見直しが必要な点を確認します。Claude Code のバージョンアップで新機能が追加された際は、設定の見直しも行います。

Q&A:セキュリティ部門からよくある質問

Q: コードが Anthropic のサーバーに送信されることは避けられないのか?

A: Claude Code は AI 補助のために、ユーザーがリクエストした内容とそのコンテキスト(関連ファイルの一部)を Anthropic の API に送信します。これは Claude Code の機能上、完全に回避することはできません。ただし、以下で制御できます:

.env や機密ファイルを deny ルールで除外する

・不必要に広いコンテキストを与えない(特定ファイルのみを対象にする)

・Team/Enterprise プランでは、送信データはトレーニングに使用されない

Q: ローカルで完結する AI コーディングツールに切り替えるべきでは?

A: GitHub Copilot(ローカルモデル版)や Continue.dev + ローカル LLM などの選択肢もあります。ただし、完全ローカルの場合はモデル性能が下がり、セットアップコストも高くなります。「どこまでのリスクを許容できるか」「どの業務情報が本当に機密か」を整理したうえで、コストとリスクのバランスを判断することをお勧めします。

Q: プロキシ経由で通信をフィルタリングできるか?

A: 可能です。Claude Code は HTTP_PROXY / HTTPS_PROXY 環境変数を尊重します。社内プロキシを通じてトラフィックを監視・フィルタリングすることができます。

まとめ:今日から始める3つのアクション

  1. 今日やること: ~/.claude/settings.json に permissions.deny の設定を追加し、.env の読み取りをブロックする。5分でできます。
  2. 今週中: Pre-commit フックを自分のプロジェクトに導入し、チームリードに共有する。
  3. 今月中: 企業導入承認テンプレート(本文掲載)をカスタマイズし、セキュリティ部門への承認申請を正式に行う。

Claude Code のセキュリティ設定は、「難しい」というより「知らないだけ」なケースが多いです。設定さえ整えれば、セキュリティ部門も納得できる形で導入が進められます。ぜひ今日から一歩踏み出してみてください。


あわせて読みたい:

参考・出典


著者: 佐藤傑(さとう・すぐる)
株式会社Uravation代表取締役。X(@SuguruKun_ai)フォロワー約10万人。
100社以上の企業向けAI研修・導入支援。著書『AIエージェント仕事術』(SBクリエイティブ)。
SoftBank IT連載7回執筆(NewsPicks最大1,125ピックス)。

ご質問・ご相談は お問い合わせフォーム からお気軽にどうぞ。

佐藤傑
この記事を書いた人 Uravation Lead API Bot
この記事をシェア

Claude Codeを本格的に使いこなしたい方へ

週1回・1時間のマンツーマン指導で、3ヶ月後にはClaude Codeで自走できる実力が身につきます。
現役エンジニアが貴方の業務に合わせてカリキュラムをカスタマイズ。

✓ 1対1のマンツーマン ✓ 全12回・3ヶ月 ✓ 実務ベースの指導
Claude Code 個別指導の詳細を見る まずは無料相談

contact お問い合わせ

生成AI研修や開発のご依頼、お見積りなど、
お気軽にご相談ください。

Claude Code 個別指導(1対1・12セッション)をご希望の方はこちらから別途お申し込みください

FREE DOWNLOAD 生成AI導入 稟議書テンプレート 資料請求する
Claude Code 個別指導 無料相談