CCClaude Code研究所
記事一覧スパルタClaude Code塾カリキュラム料金よくある質問
エンジニア

Claude Codeのセキュリティ設定10選 — 本番環境で安全に使うための完全ガイド

15分で読める
エンジニア

Claude Code研究所 編集部

エンジニア向けAI活用スペシャリスト

Claude CodeエンジニアセキュリティLLM生成AIDevOps本番環境

Claude Codeを本番環境で使用する際、セキュリティは最重要課題です。AIがファイルシステムやコマンドラインに直接アクセスできる以上、適切な制御なしでは重大なセキュリティリスクを招きます。本記事では、エンタープライズ環境でClaude Codeを安全に運用するための10のセキュリティ設定を、実際のコード例とともに徹底解説します。

目次

  1. 1. サンドボックス環境の構築
  2. 2. ファイルシステムの制限
  3. 3. ネットワークアクセスの制御
  4. 4. 機密情報の取り扱い
  5. 5. 監査ログの設定
  6. 6. 実行権限の最小化
  7. 7. タイムアウトとリソース制限
  8. 8. 入力値のバリデーション
  9. 9. バックアップと復旧計画
  10. 10. 定期的なセキュリティレビュー

1. サンドボックス環境の構築

Claude Codeの実行は、必ず隔離された環境で行いましょう。本番システムに直接アクセスさせることは避け、専用のサンドボックス環境を用意します。

Dockerfile
# Claude Code用サンドボックス環境
FROM ubuntu:22.04

# 必要最小限のパッケージのみインストール
RUN apt-get update && apt-get install -y \
    curl \
    git \
    && rm -rf /var/lib/apt/lists/*

# 非rootユーザーの作成
RUN useradd -m -s /bin/bash claude-user
USER claude-user
WORKDIR /home/claude-user/workspace

# Claude Codeのインストール
RUN curl -fsSL https://claude.ai/install.sh | bash
bash
# Docker コンテナでの実行例
docker run --rm -it \
  --network none \
  --read-only \
  --tmpfs /tmp:size=100M \
  --memory=2g \
  --cpus=1 \
  --security-opt=no-new-privileges \
  claude-code-sandbox

サンドボックス構築のポイント

  • 非rootユーザーでの実行を徹底
  • ネットワーク分離(--network none)
  • 読み取り専用ファイルシステム
  • メモリ・CPU制限の設定

2. ファイルシステムの制限

アクセス可能なディレクトリを最小限に制限します。Claude Codeが操作できるファイルを明示的に指定することで、意図しないデータ漏洩や改ざんを防ぎます。

yaml
# .claude/settings.yaml
permissions:
  allowed_paths:
    - /workspace/src
    - /workspace/docs
  denied_paths:
    - /etc
    - /var
    - ~/.ssh
    - ~/.aws
  read_only_paths:
    - /workspace/config
ファイルシステム制限の概念図
許可されたパスのみにアクセスを制限

3. ネットワークアクセスの制御

外部通信を必要最小限に制限し、許可リスト(ホワイトリスト)で管理します。APIエンドポイントへのアクセスも明示的に制御しましょう。

yaml
# ネットワーク許可リスト
network:
  allowed_domains:
    - api.anthropic.com
    - github.com
    - npm.registry.org
  blocked_ports:
    - 22  # SSH
    - 3306  # MySQL
    - 5432  # PostgreSQL
  max_connections: 10

4. 機密情報の取り扱い

環境変数やシークレットの管理には、専用のシークレット管理ツール(HashiCorp Vault、AWS Secrets Manager等)を使用します。Claude Codeに直接シークレットを渡すことは避けましょう。

1

シークレットの暗号化

保存時・転送時ともに暗号化を徹底します。

2

アクセス制御

必要な時のみ、最小限のシークレットへのアクセスを許可します。

3

自動ローテーション

シークレットは定期的に自動更新します。

typescript
// シークレット取得の例(AWS Secrets Manager)
import { SecretsManager } from '@aws-sdk/client-secrets-manager';

const client = new SecretsManager({ region: 'ap-northeast-1' });

async function getSecret(secretName: string) {
  const response = await client.getSecretValue({ SecretId: secretName });
  return JSON.parse(response.SecretString || '{}');
}

// Claude Codeには参照のみ渡す
const dbConfig = await getSecret('prod/database');
// secretの値そのものはログに出力しない

5. 監査ログの設定

すべてのClaude Code実行を監査ログに記録し、異常検知を行います。「誰が」「いつ」「何をしたか」を追跡可能にすることが重要です。

typescript
// 監査ログの構造
interface AuditLog {
  timestamp: string;
  userId: string;
  sessionId: string;
  action: 'file_read' | 'file_write' | 'command_exec' | 'network_request';
  target: string;
  result: 'success' | 'denied' | 'error';
  metadata: Record;
}

// ログ出力例
logger.audit({
  timestamp: new Date().toISOString(),
  userId: 'user-123',
  sessionId: 'session-abc',
  action: 'file_write',
  target: '/workspace/src/index.ts',
  result: 'success',
  metadata: { bytesWritten: 1024 }
});

6. 実行権限の最小化

Claude Codeが実行できるコマンドを明示的に制限します。危険なコマンド(rm -rf、sudo等)はブロックしましょう。

yaml
# コマンド実行制限
commands:
  allowed:
    - git
    - npm
    - node
    - cat
    - ls
  blocked:
    - sudo
    - rm -rf
    - chmod
    - chown
    - curl  # 必要な場合のみ許可
  require_confirmation:
    - git push
    - npm publish

7. タイムアウトとリソース制限

無限ループや過剰なリソース消費を防ぐため、適切なタイムアウトとリソース制限を設定します。

項目 推奨値 説明
実行タイムアウト 5分 1回のタスク実行の上限
メモリ上限 2GB コンテナあたりのメモリ
CPU制限 1コア コンテナあたりのCPU
ディスク容量 1GB 書き込み可能な容量
同時実行数 3 ユーザーあたりの上限

8. 入力値のバリデーション

ユーザーからの入力やClaude Codeへの指示は、必ずバリデーションを行います。インジェクション攻撃を防ぐため、特殊文字のエスケープも重要です。

バリデーションチェックリスト

  1. ファイルパスのトラバーサル攻撃対策(../の検出)
  2. コマンドインジェクション対策(; | && の検出)
  3. ファイルサイズの上限チェック
  4. 許可された文字種のみを受け入れ

9. バックアップと復旧計画

Claude Codeが操作するファイルは、事前にバックアップを取得しておきます。万が一の際に迅速に復旧できる体制を整えましょう。

バックアップ戦略

Gitによるバージョン管理と、定期的なスナップショット取得を組み合わせることで、任意の時点に復旧可能な状態を維持します。

10. 定期的なセキュリティレビュー

セキュリティ設定は一度設定したら終わりではありません。定期的なレビューと改善が必要です。

週1回 監査ログレビュー
月1回 設定の見直し
四半期 ペネトレーションテスト

まとめ

Claude Codeは強力なツールですが、適切なセキュリティ設定なしでは重大なリスクを招きます。本記事で紹介した10の設定を実装することで、エンタープライズ環境でも安全にClaude Codeを活用できます。

セキュリティ設定のポイント

  • サンドボックス環境での実行を徹底
  • 最小権限の原則を全レイヤーに適用
  • すべての操作を監査ログに記録
  • 定期的なセキュリティレビューを実施
  • インシデント発生時の復旧計画を準備

この記事をシェアする

Claude Codeを実務で活用したい方へ

スパルタClaude Code塾では、経営者・士業・エンジニア・マーケター・営業職向けに特化した実践的な研修を提供しています。