Claude Codeのセキュリティ設定10選 — 本番環境で安全に使うための完全ガイド
サンドボックス設定、権限管理、ネットワーク制限、監査ログ。エンタープライズ環境でClaude Codeを安全に運用するための必須セキュリティ設定を、実際のコード例とともに徹底解説します。

この記事の結論
- Claude Codeを本番環境で使う場合は、非rootユーザー・ネットワーク分離・読み取り専用ファイルシステム・メモリとCPU制限を備えた専用のサンドボックス環境で実行することが最初の対策です。
- Claude Codeがアクセスできるパスと実行できるコマンドは許可リスト方式で最小限に絞り、~/.sshや~/.awsなどの認証情報と、sudoやrm -rfなどの危険なコマンドは明示的にブロックします。
- Claude Codeの外部通信はapi.anthropic.comやgithub.comなど必要なドメインだけを許可し、SSH(22)・MySQL(3306)・PostgreSQL(5432)のポートは遮断します。
- APIキーやデータベースのパスワードはClaude Codeに直接渡さず、HashiCorp VaultやAWS Secrets Managerなどのシークレット管理ツールから参照し、暗号化・アクセス制御・自動ローテーションを徹底します。
- Claude Codeのすべての操作を「誰が・いつ・何をしたか」が追える監査ログに記録し、週1回のログレビュー、月1回の設定見直し、四半期ごとのペネトレーションテストで継続的に点検します。
Claude Codeを本番環境で使用する際、セキュリティは最重要課題です。AIがファイルシステムやコマンドラインに直接アクセスできる以上、適切な制御なしでは重大なセキュリティリスクを招きます。本記事では、エンタープライズ環境でClaude Codeを安全に運用するための10のセキュリティ設定を、実際のコード例とともに徹底解説します。
目次
1. サンドボックス環境の構築
Claude Codeの実行は、必ず隔離された環境で行いましょう。本番システムに直接アクセスさせることは避け、専用のサンドボックス環境を用意します。
# 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
# 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が操作できるファイルを明示的に指定することで、意図しないデータ漏洩や改ざんを防ぎます。
# .claude/settings.yaml
permissions:
allowed_paths:
- /workspace/src
- /workspace/docs
denied_paths:
- /etc
- /var
- ~/.ssh
- ~/.aws
read_only_paths:
- /workspace/config
3. ネットワークアクセスの制御
外部通信を必要最小限に制限し、許可リスト(ホワイトリスト)で管理します。APIエンドポイントへのアクセスも明示的に制御しましょう。
# ネットワーク許可リスト
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に直接シークレットを渡すことは避けましょう。
シークレットの暗号化
保存時・転送時ともに暗号化を徹底します。
アクセス制御
必要な時のみ、最小限のシークレットへのアクセスを許可します。
自動ローテーション
シークレットは定期的に自動更新します。
// シークレット取得の例(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実行を監査ログに記録し、異常検知を行います。「誰が」「いつ」「何をしたか」を追跡可能にすることが重要です。
// 監査ログの構造
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等)はブロックしましょう。
# コマンド実行制限
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への指示は、必ずバリデーションを行います。インジェクション攻撃を防ぐため、特殊文字のエスケープも重要です。
バリデーションチェックリスト
- ファイルパスのトラバーサル攻撃対策(../の検出)
- コマンドインジェクション対策(; | && の検出)
- ファイルサイズの上限チェック
- 許可された文字種のみを受け入れ
9. バックアップと復旧計画
Claude Codeが操作するファイルは、事前にバックアップを取得しておきます。万が一の際に迅速に復旧できる体制を整えましょう。
バックアップ戦略
Gitによるバージョン管理と、定期的なスナップショット取得を組み合わせることで、任意の時点に復旧可能な状態を維持します。
10. 定期的なセキュリティレビュー
セキュリティ設定は一度設定したら終わりではありません。定期的なレビューと改善が必要です。
まとめ
Claude Codeは強力なツールですが、適切なセキュリティ設定なしでは重大なリスクを招きます。本記事で紹介した10の設定を実装することで、エンタープライズ環境でも安全にClaude Codeを活用できます。
セキュリティ設定のポイント
- サンドボックス環境での実行を徹底
- 最小権限の原則を全レイヤーに適用
- すべての操作を監査ログに記録
- 定期的なセキュリティレビューを実施
- インシデント発生時の復旧計画を準備
安全な設定まで含めて、Claude Codeを社内に入れる。
防衛省主催のサイバーセキュリティコンテストで入賞した専門家が教材を設計。機密情報を扱う士業事務所でも使える運用設計を、一社ごとの対面研修で身につけます。
- 一社ごとに業務をヒアリングして設計
- 実際の業務データでハンズオン
- スパルタ以上は全額返金保証
- 受講法人数100社超
オンライン30分・無料。フォームは入力1分で、2営業日以内にご連絡します。
よくある質問
Claude Codeを本番環境で使うとき、最低限どのようなセキュリティ設定が必要ですか?
本番環境でClaude Codeを運用する場合は、サンドボックス環境の構築、ファイルシステムの制限、ネットワークアクセスの制御、機密情報の分離管理、監査ログの記録、実行権限の最小化、タイムアウトとリソース制限、入力値のバリデーション、バックアップと復旧計画、定期的なセキュリティレビューの10項目を整えます。AIがファイルシステムやコマンドラインに直接アクセスできるツールなので、最小権限の原則をすべてのレイヤーに適用することが基本です。
Claude Codeのサンドボックス環境はDockerでどのように構築すればよいですか?
Ubuntu 22.04などの最小構成イメージにcurlとgitだけを入れ、非rootユーザーを作成してからClaude Codeをインストールします。起動時はdocker runに--network none、--read-only、--tmpfs /tmp、--memory=2g、--cpus=1、--security-opt=no-new-privilegesを付け、ネットワーク分離・読み取り専用ファイルシステム・リソース制限を同時にかけます。本番システムへ直接アクセスさせず、隔離された環境で実行することが前提です。
Claude Codeのタイムアウトやリソース制限はどのくらいに設定すべきですか?
推奨値の目安は、1回のタスク実行のタイムアウトが5分、コンテナあたりのメモリ上限が2GB、CPUが1コア、書き込み可能なディスク容量が1GB、ユーザーあたりの同時実行数が3です。無限ループや過剰なリソース消費を防ぐための上限なので、業務の内容や環境に応じて調整してください。
Claude CodeにAPIキーやデータベースのパスワードを扱わせても安全ですか?
シークレットの値そのものをClaude Codeに直接渡すことは避けてください。HashiCorp VaultやAWS Secrets Managerなどのシークレット管理ツールに保存し、実行時に参照のみを渡す構成にします。あわせて保存時と転送時の暗号化、必要な時だけ最小限のアクセスを許可するアクセス制御、定期的な自動ローテーションを行い、シークレットの値をログに出力しないようにします。
Claude Codeが誤ってファイルを壊したり、危険な入力を受け取ったりした場合に備える方法はありますか?
Claude Codeが操作するファイルは、事前にGitによるバージョン管理と定期的なスナップショット取得を組み合わせてバックアップし、任意の時点に復旧できる状態を維持します。また、ユーザー入力やClaude Codeへの指示は、../によるパストラバーサル、; | &&によるコマンドインジェクション、ファイルサイズの上限、許可された文字種の4点をチェックするバリデーションを通してから扱います。
参考資料・出典
- 公式ドキュメントSecurity
権限ベースの設計、サンドボックス・devcontainer・監査の公式推奨(確認日)
- 公式ドキュメントConfigure the sandboxed Bash tool
ファイルシステム分離とネットワーク分離(allowedDomains等)の現行仕様。第1・2・3節の根拠(確認日)
- 公式ブログ・記事Beyond permission prompts: making Claude Code more secure and autonomous
サンドボックスをファイルシステム分離とネットワーク分離の2層で構成する考え方の根拠
- 公式ドキュメントConfigure permissions
allow/deny/askルール、Read(./.env)などによる機密ファイルの読み取り拒否。第2・6節の根拠(確認日)
- 公式ドキュメントDevelopment containers
非rootユーザーでの隔離コンテナ実行、init-firewall.shによる外部通信制限。第1・3節の根拠(確認日)
- 公式ドキュメントChoose a sandbox environment
コンテナ・VM・クラウドセッションの隔離レベル比較。第1節の根拠(確認日)
- 公式ドキュメントMonitoring
OpenTelemetryによるuser_prompt・tool_decision・tool_result・api_requestの記録。第5節の根拠(確認日)
- 公式ドキュメントdocker container run
--network・--read-only・--tmpfs・--memory・--cpus・--security-opt no-new-privilegesの仕様。第1・7節の根拠(確認日)
- 公式ドキュメントWhat is AWS Secrets Manager?
ハードコードされた認証情報の排除と自動ローテーション。第4節の根拠(確認日)
Claude Codeを実務で活用したい方へ
一社ごとにカスタマイズする対面のClaude Code研修は「スパルタClaude Code塾」。経営者・士業・エンジニア・マーケター・営業職まで、業務をヒアリングしてカリキュラムを設計します。まずは30分の無料相談で、自動化プランと費用対効果をご確認ください。

