はじめに
Qiita で「Claude Code を社内で使うための『AIエージェントセキュリティ』実践編」がトレンド入りしていました。
Claude Code を組織で使い始める時、最も多い不安は 「機密情報がうっかり漏れないか」 です。
実際にうちのチームで1年以上運用してきた経験から、最低限これだけは設定しておけ という5項目のガードレールを共有します。
セットアップは合計15分。最初の1日でやっておくべきです。
ガードレール1: .claudeignore で機密ファイルを除外
最重要。Claude Code がプロジェクト内のファイルを読む時、.claudeignore に書いたものは無視 されます。
プロジェクトルートに .claudeignore を作って:
# 認証情報
.env
.env.*
*.key
*.pem
credentials.json
# 機密データ
secrets/
private/
# 顧客データ
data/customers/
data/users/
# ログ(個人情報を含む可能性)
logs/
# バックアップ
*.bak
*.dump
これで Claude Code がこれらのファイルを 絶対に読まなくなる。
ガードレール2: CLAUDE.md に「絶対やってはいけないこと」を明記
CLAUDE.md に 禁止事項を必ず書く こと。
# 禁止事項
- ✋ 環境変数の値を出力しない(`console.log(process.env)` 等)
- ✋ 認証情報をハードコードしない
- ✋ 個人情報(メアド・名前・電話)をログに出力しない
- ✋ DB に対して `DELETE` / `DROP` / `TRUNCATE` を許可なく実行しない
- ✋ 本番環境(`NODE_ENV === 'production'`)への操作は確認なしで行わない
- ✋ HTTP リクエストに認証情報を生で含めない
これを書くだけで、Claude Code が「やりかけて踏みとどまる」確率が劇的に上がります。
ガードレール3: Hooks で危険な操作を強制ブロック
.claude/settings.json で 特定の操作を Hook で阻止 できます。
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash.*(rm -rf|DROP TABLE|TRUNCATE|DELETE FROM users)",
"hooks": [{"type": "command", "command": "echo '❌ 危険なコマンドは禁止' && exit 1"}]
},
{
"matcher": "Bash.*git push.*main",
"hooks": [{"type": "command", "command": "echo '⚠️ main ブランチへの直接 push は確認後に手動で実行してください' && exit 1"}]
}
]
}
}
これで Claude Code が 危険な操作を実行する前に止まる。
ガードレール4: 本番環境変数は別管理
.env.production を Claude Code が読める場所に置かない。
うちのチームの構成:
project/
├── .env # ローカル開発用(ダミー値) ← Claude OK
├── .env.example # 設定の見本(ダミー値) ← Claude OK
└── secrets/ # 本番値(.claudeignore対象)
└── .env.production # 本番認証情報 ← Claude 読めない
本番デプロイは GitHub Actions や Vercel 環境変数管理で行い、Claude が本番値に触れない設計にする。
ガードレール5: Skills で「承認フロー」を組み込む
機密性の高い操作には 明示的な承認ステップ を Skill で組み込みます。
.claude/skills/db-modify/skill.md:
# db-modify
DBスキーマ変更 or データ更新時の手順:
1. **必ず最初に**「これから何をやるか」を1行で宣言
2. **影響範囲** を明確化(どのテーブル・何件のレコード)
3. **バックアップ取得** コマンドを実行
4. **ステージング環境** で先にテスト
5. **人間の最終承認** を必ず仰ぐ
6. 本番実行後、結果を報告
途中で「人間の承認が要る」と判断したら、必ず手を止めて確認してください。
これで「DBに対する変更」を Claude が単独で進めず、人間の判断を仰ぐようになります。
全部入りテンプレート(コピペで使える)
リポジトリにこのまま置けるテンプレ:
project/
├── .claudeignore ← ガードレール1
├── CLAUDE.md ← ガードレール2(禁止事項セクション)
├── .claude/
│ ├── settings.json ← ガードレール3(Hooks)
│ └── skills/
│ └── db-modify/
│ └── skill.md ← ガードレール5(承認フロー)
└── secrets/ ← ガードレール4(.claudeignore対象)
└── .env.production
まとめ: 「自由」と「安全」を両立する設計
Claude Code は強力なツールですが、社内で安全に使うには「ガードレール設計」が必須 です。
最低限:
-
.claudeignoreで機密ファイル除外 - CLAUDE.md に禁止事項
- Hooks で危険操作ブロック
- 本番環境変数の分離
- Skills で承認フロー
の5つを入れれば、個人の判断ミスで起きるセキュリティ事故 を9割減らせます。
セットアップ15分の投資で、半年後のリスクが大きく変わります。
関連: 教材で手を動かして学ぶ
- まず無料で試したい方: 教材の体験版を GitHub で配布中(
git cloneしてすぐ動かせます) → https://github.com/ayies128/next-ai-camp-trial - 全20セッション完全版+メンタリング → https://menta.work/plan/20251?ref=qiita
- YouTubeチャンネル → https://www.youtube.com/channel/UC1rXVD9WYsQPQEWZyd-A1KA/?ref=qiita