15
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code を社内導入する時の最低限ガードレール5項目 — 機密情報を漏らさない設定パターン

15
Posted at

はじめに

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 は強力なツールですが、社内で安全に使うには「ガードレール設計」が必須 です。

最低限:

  1. .claudeignore で機密ファイル除外
  2. CLAUDE.md に禁止事項
  3. Hooks で危険操作ブロック
  4. 本番環境変数の分離
  5. Skills で承認フロー

の5つを入れれば、個人の判断ミスで起きるセキュリティ事故 を9割減らせます。

セットアップ15分の投資で、半年後のリスクが大きく変わります。


関連: 教材で手を動かして学ぶ

15
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?