Claude Code のセキュリティ|安全に使うための設定と注意点
Claude Code のセキュリティを理解する
Claude Codeはターミナル上で動作し、ファイルの読み書きやコマンドの実行ができるツールです。その強力さゆえに、セキュリティへの配慮が欠かせません。
この記事では、Claude Codeを安全に利用するための設定と運用方法を解説します。Claude Codeの基本操作を理解した上で、セキュリティ面を強化しましょう。
パーミッションモデル
Claude Codeには、ツールの実行を制御するパーミッションモデルがあります。
許可・拒否の設定
.claude/settings.json でツールの許可と拒否を設定できます。
{
"permissions": {
"allow": [
"Read",
"Glob",
"Grep",
"Bash(npm run test)",
"Bash(npm run lint)",
"Bash(npm run build)",
"Bash(npx prisma *)"
],
"deny": [
"Bash(rm -rf *)",
"Bash(curl *)",
"Bash(wget *)",
"Bash(git push --force *)",
"Bash(npm publish)",
"Bash(sudo *)"
]
}
}
パーミッションの動作
| 設定 | 動作 |
|---|---|
allow に含まれる | 確認なしで実行される |
deny に含まれる | 実行がブロックされる |
| どちらにも含まれない | ユーザーに確認を求める |
ワイルドカードの活用
{
"permissions": {
"allow": [
"Bash(npm run *)",
"Bash(npx vitest *)"
],
"deny": [
"Bash(* --force *)",
"Bash(* | curl *)"
]
}
}
APIキーの安全な管理
やるべきこと
- 環境変数で管理 - APIキーはシェルの設定ファイルで環境変数として設定する
# ~/.zshrc または ~/.bashrc
export ANTHROPIC_API_KEY="sk-ant-..."
- キーのローテーション - 定期的にAPIキーを再生成する
- 使用量のモニタリング - Anthropic Consoleで使用量を定期的に確認する
やってはいけないこと
- APIキーをソースコードにハードコーディングする
- APIキーをGitリポジトリにコミットする
- APIキーをSlackやメールで共有する
- チーム共有のAPIキーを使用する
.gitignore の確認
# 環境変数ファイル
.env
.env.local
.env.production
# APIキーや認証情報
*.pem
*.key
credentials.json
service-account.json
機密ファイルの保護
.claudeignore の設定
.claudeignore ファイルを作成して、Claude Codeがアクセスすべきでないファイルを指定します。
# 環境変数
.env
.env.*
# 秘密鍵・証明書
*.pem
*.key
*.p12
*.pfx
# 認証情報
credentials/
secrets/
service-account*.json
# データベース
*.sqlite
*.db
backups/
# ログ(個人情報を含む可能性)
logs/
*.log
コードの脆弱性チェック
Claude Codeを使って、既存のコードのセキュリティ脆弱性をチェックすることもできます。
SQLインジェクションのチェック
> プロジェクト全体でSQLインジェクションの脆弱性がないか確認してください。
直接的なSQL文字列結合を使っている箇所があれば、
パラメータ化クエリに修正してください。
XSSのチェック
> フロントエンドのコードでXSS(クロスサイトスクリプティング)の
脆弱性がないか確認してください。
dangerouslySetInnerHTMLの使用箇所、
ユーザー入力をエスケープせずに表示している箇所を調べてください。
依存パッケージの脆弱性
# npm auditの結果をClaude Codeに分析させる
npm audit 2>&1 | claude "この脆弱性レポートを分析して、対処方法を教えて"
セキュリティレビュー用のカスタムコマンド
<!-- .claude/commands/security-review.md -->
以下のファイルまたはディレクトリのセキュリティレビューを行ってください。
チェック項目:
1. SQLインジェクション
2. XSS(クロスサイトスクリプティング)
3. CSRF(クロスサイトリクエストフォージェリ)
4. 認証・認可の不備
5. 機密情報のハードコーディング
6. 安全でない暗号化の使用
7. パストラバーサル
8. 適切でないエラーハンドリング(情報漏洩)
対象: $ARGUMENTS
ネットワークセキュリティ
Claude Codeの通信内容
Claude Codeは、ユーザーのプロンプトとコードの内容をAnthropicのAPIに送信します。以下の点に注意しましょう。
- 本番環境の機密データをプロンプトに含めない
- 顧客の個人情報をClaude Codeに渡さない
- 社内の機密ドキュメントの内容をそのまま入力しない
企業での利用
企業でClaude Codeを使用する場合は、以下を確認しましょう。
- Anthropicの利用規約とプライバシーポリシー
- 自社のセキュリティポリシーとの整合性
- データの取り扱いに関する社内規定
安全な開発ワークフロー
本番環境との分離
Claude Codeは本番環境のデータベースやサーバーに直接アクセスさせないようにしましょう。
{
"permissions": {
"deny": [
"Bash(ssh *production*)",
"Bash(* --env production *)",
"Bash(kubectl * --context production)"
]
}
}
コードレビューの徹底
Claude Codeが生成したコードも、人間によるレビューを必ず行いましょう。特に以下の点を確認します。
- 認証・認可のロジック - 権限チェックが適切に行われているか
- 入力バリデーション - ユーザー入力が適切にバリデーションされているか
- エラーハンドリング - エラーメッセージに機密情報が含まれていないか
- 依存パッケージ - 不必要なパッケージが追加されていないか
セキュリティチェックリスト
Claude Codeを使い始める前に、以下のチェックリストを確認しましょう。
-
.claudeignoreで機密ファイルを除外した -
.claude/settings.jsonでパーミッションを設定した - APIキーが環境変数で管理されている
-
.gitignoreに.envが含まれている - 本番環境へのアクセスがブロックされている
- チームのセキュリティポリシーを確認した
CLAUDE.mdにセキュリティルールを記載する
## セキュリティルール
- ユーザー入力は必ずバリデーションすること
- SQLは必ずパラメータ化クエリを使うこと
- 機密情報は環境変数から取得すること(ハードコーディング禁止)
- エラーメッセージにスタックトレースや内部情報を含めないこと
- 認証が必要なエンドポイントには必ずミドルウェアを適用すること
まとめ
Claude Codeは強力なツールですが、適切なセキュリティ設定なしに使うのは危険です。パーミッションの設定、APIキーの管理、機密ファイルの保護を最初に行い、継続的にセキュリティレビューを実施しましょう。
チーム開発でのセキュリティ管理については、Claude Code チーム開発ガイドも参考にしてください。