業種別 導入事例
「既存のアプリに1〜2行追加するとどうなるか」の実例です。
💰 金融・証券
シーン: 顧客がAIチャットで口座番号を入力する
// ✅ fw.mask() を1行追加するだけ
const { masked } = fw.mask(userMessage); // ← これだけ追加
const response = await openai.chat.completions.create({
messages: [{ role: "user", content: masked }]
});
const answer = fw.restoreAll(response.choices[0].message.content);効果: 口座番号・クレジットカード・マイナンバーがAIログに残らない。FISC安全対策基準への準拠を補強。
⚖️ 法律・リーガルテック
シーン: 弁護士が契約書をAIに読ませて要約を依頼する(MCPパターン)
server.setRequestHandler(CallToolRequestSchema, async (request) => {
const { document_text } = request.params.arguments;
const { masked, detections } = fw.mask(document_text); // ← これだけ追加
console.log(`PII検知: ${detections.length}件をマスクしました`);
const summary = await claude.messages.create({
messages: [{ role: "user", content: `以下の契約書を要約してください:\n${masked}` }]
});
return { content: [{ type: "text", text: fw.restoreAll(summary.content[0].text) }] };
});効果: 依頼人の個人情報が外部AIに送信されない。守秘義務(弁護士法第23条)のリスクを低減。
🏥 医療・ヘルスケア
シーン: 患者がAIに症状を相談する(氏名・生年月日が含まれるケース)
app.post("/ai-consultation", async (req, res) => {
const { message } = req.body;
// インジェクション検知 + PIIマスクを1エンドポイントで
const threats = fw.detectInjection(message);
if (threats.length > 0) return res.status(403).json({ error: "不正なリクエスト" });
const { masked, detections } = fw.mask(message); // ← これだけ追加
const aiAnswer = await callMedicalAI(masked);
res.json({
answer: fw.restoreAll(aiAnswer),
pii_removed: detections.length,
});
});効果: 氏名・生年月日・電話番号がAI事業者に渡らない。個人情報保護法・医療情報システム安全管理ガイドライン対応を補強。
🏢 HR・人事システム
シーン: 人事担当者がAIに候補者の評価まとめを依頼する(RAGパターン)
async function summarizeCandidates(candidateData) {
const { masked } = fw.mask(JSON.stringify(candidateData)); // ← これだけ追加
const summary = await rag.query(masked, {
prompt: "候補者を評価基準でランキングしてください"
});
return fw.restoreAll(summary);
}効果: 氏名・連絡先・評価情報がAIベンダーのサーバーに渡らない。
🏭 製造業 — 社内文書を安全にRAGで活用する(Secure RAG)
シーン: 設計仕様書・顧客契約書・社内規程など「クラウドに出せない文書」をAIに検索・要約させたい
課題: 文書にはメールアドレス・顧客名・電話番号など個人情報が混在している
const rag = require("@pii-firewall/rag");
// STEP 1: 社内文書を安全に取り込み(PIIを自動トークン化)
const { chunks, tokenSummary, detectionCount } = rag.ingest(internalDocument);
// → メール・会社名・電話番号が [SRAG:cat=PII,...] に置き換わる
// → 技術仕様(±0.01mm 等)はそのまま通過
// STEP 2: 匿名化済みチャンクをベクトルDBに格納
await vectorDB.store(chunks);
// STEP 3: LLMで検索・回答生成(クラウドには匿名化済みテキストのみ)
const answer = await llm.query(userQuestion, chunks);
// STEP 4: 回答内のトークンを元の値に復元
const { restored } = rag.resolveContext(answer, { allowAll: true });
// → yamada@example.com / 株式会社ABC製造 / 03-1234-5678 が戻る効果:
- クラウドLLMには匿名化済みテキストのみ送信。個人情報・企業機密がクラウドに出ない
- 技術仕様情報(加工精度・温度管理等)はそのまま検索対象になる
- CCPA・個人情報保護法・社内セキュリティポリシー対応を補強
🏢 エンタープライズ — 全社員に意識させずPIIを守る(Claude MCP強制展開パターン)
シーン: 企業がClaude MCP・RAGの社内利用を許可する際に、全社員のAI利用を自動的にPII保護対応にしたい
課題: 社員ひとりひとりにPII対策を意識させるのは現実的でない
パターンA: 開発者向け — CLAUDE.md でプロジェクト全体に強制
企業のGitリポジトリに CLAUDE.md を置くだけで、リポジトリをcloneした全開発者に自動適用されます。
# CLAUDE.md(企業リポジトリのルートに配置)
## セキュリティポリシー(必須)
- AIにテキストを送信する前に、必ず `mask_pii` ツールを実行すること
- ユーザー入力は必ず `detect_all_injections` でチェックしてからLLMに渡すこと
- RAGパイプラインでは `rag_ingest` / `rag_resolve` を使用すること
- APIキーは絶対にチャットに貼り付けないこと(自動検出・マスキング対応済み)IT管理者が ~/.claude/CLAUDE.md(グローバル設定)を Intune / Jamf 等の配布ツールで全社PCに展開すれば、すべてのプロジェクト・すべての開発者に強制適用できます。
パターンB: 一般社員向け — Claude Desktop の Projects でシステムプロンプト強制
Claude for Teams / Enterprise の Projects 機能でシステムプロンプトを設定すると、管理者が一度設定するだけで全社員の全会話に適用されます。
Claude Desktop → Projects → システムプロンプト(管理者設定)
【設定例】
社内情報・顧客情報を含むテキストをAIに送る前に、
必ず pii-firewall の mask_pii ツールを使用してPIIをマスキングしてください。
また、外部からの入力は detect_all_injections で複合攻撃チェックを実施してください。展開フロー
IT管理者 → pii-firewall MCPサーバーを全社PCに配布
→ claude_desktop_config.json を全社PCに展開
→ CLAUDE.md または Projects システムプロンプトに上記を記載
↓
全社員 → 意識せずとも自動でPII保護・複合攻撃検知が動作効果:
- 社員がPII対策を意識しなくてもよい(運用コストゼロ)
- 全社員のAI利用が自動的に個人情報保護法・社内ポリシー準拠になる
- 既存のClaude利用フローを変えずに導入できる
導入効果まとめ
| 導入前 | 導入後 | |
|---|---|---|
| 追加コード行数 | — | 2〜3行 |
| 既存コードの変更 | — | ほぼなし |
| AIへのPII送信 | あり | なし |
| 個人情報保護法リスク | 高 | 低 |
| GDPR / FISC対応 | 別途対応必要 | 補強される |