AI業務活用 2026.04.19
生成AI業務利用で情報漏えい防止|5つのルールとChatGPT・Claude設定方法
なぜ業務でのAI利用にルールが必要か
2026年現在、ChatGPTやClaudeを業務で使うことが当たり前になりつつあります。一方で、「顧客データをそのままプロンプトに貼った」「社内の未発表情報をAIに相談した」という事例が増えています。
便利さのあまり入力してしまった情報は、AIサービスのサーバーに送られます。無料プランでは学習データとして使用される可能性があり、有料プランでも外部サーバーに情報が渡ることには変わりありません。
本記事では、明日から実装できる5つのルールと、ChatGPT・Claudeの安全設定方法を解説します。
ルール1:入力禁止情報のカテゴリを決める
最初にして最重要です。以下を参考にカテゴリを決めてください:
| 情報カテゴリ | 例 | リスク |
|---|---|---|
| 個人情報 | 氏名+住所、顧客メール、電話番号 | 個人情報保護法違反 |
| 機密情報 | 未発表製品名、M&A交渉、価格戦略 | 情報漏えい・競合利用 |
| 認証情報 | APIキー、パスワード、トークン | アカウント乗っ取り |
| 財務情報 | 未公開決算、取引金額、原価 | インサイダーリスク |
| 個人の医療情報 | 病名、処方薬、診断結果 | 要配慮個人情報違反 |
入力OKの情報例:
- 架空の事例・ダミーデータ(実名を変えたもの)
- 公開済みの資料・プレスリリース
- 技術的な質問(コード・アルゴリズム)で個人情報を含まないもの
- 社内ルール・手続きの確認(機密度の低いもの)
ルール2:匿名化・抽象化してから入力する
顧客の事例をAIに相談したい場合、個人情報を匿名化してから入力します:
# ❌ そのまま入力(危険)
「田中太郎様(03-xxxx-xxxx)から、2026年3月の請求書45万円について問い合わせがあり...」
# ✅ 匿名化して入力
「顧客Aから、先月の請求書(40万円台)について問い合わせがあり...
以下のような返答文を作成してください:」
数値もざっくり変えるのが安全です(「45万円」→「40万円台」)。
ルール3:ChatGPT・Claudeの学習設定をオフにする
ChatGPT の設定
設定 → データコントロール
→ 「モデルトレーニングのためにデータを使用する」をオフ
または Teams・Enterprise プランを利用する(デフォルトで学習に使用されない)。
Claude の設定
claude.ai → プロフィール設定 → プライバシー
→ 会話データの使用方法を確認
Claude for Work(ビジネスプラン)では組織の会話はトレーニングに使用されません。
API経由での利用(最も安全)
# APIキーを使って直接Anthropic APIを呼び出す場合
# 利用規約上、APIからの入力はデフォルトでトレーニングに使用されません
import anthropic
import os
client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
response = client.messages.create(
model="claude-haiku-4-5-20251001",
max_tokens=1024,
system="あなたは社内業務支援AIです。入力された情報を社外に開示しないでください。",
messages=[{
"role": "user",
"content": "以下の文章を要約してください:[ここに内容]"
}]
)
ルール4:AI利用ポリシーを文書化する
個人の判断に任せていると、チーム内でバラバラな使われ方をします。最低限以下を文書化してください:
# 生成AI利用ポリシー(テンプレート)
## 承認済みサービス
- ChatGPT Team(部署単位で契約)
- Claude for Work
- ※ 個人アカウントでの業務利用は禁止
## 入力禁止情報
- 顧客の個人情報(氏名・連絡先・購入履歴)
- 社員の給与・評価情報
- 未公開の製品・戦略情報
- APIキー・パスワード等の認証情報
- 財務未公開情報
## 入力可能な情報
- 公開済みの情報・一般的な技術情報
- 匿名化済みのサンプルデータ
- 社内規程・手続きの確認(機密度低のもの)
## 違反時の対応
1. 即座に該当の会話を削除
2. セキュリティ担当者に報告
3. 状況に応じて個人情報保護対応を実施
ルール5:出力を「たたき台」として扱う
AIの出力は検証なしに本番・顧客向けに使わないことが原則です:
| 用途 | 注意点 |
|---|---|
| 文章の下書き | 事実確認・数値確認を必ずする |
| コード生成 | セキュリティレビュー・テストを通す |
| データ分析 | ハルシネーション(事実誤認)がないか確認 |
| 法律・税務の相談 | 専門家の確認なしに依拠しない |
| 顧客向け回答文 | 担当者が最終確認・承認する |
入力前チェックスクリプト(開発者向け)
APIを使った社内ツールを構築する際に、入力内容をスクリーニングする例:
# input_screener.py
import re
# 個人情報パターン(正規表現)
PATTERNS = {
"メールアドレス": r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}',
"電話番号": r'0\d{1,4}[-\s]?\d{1,4}[-\s]?\d{4}',
"APIキー(Anthropic)": r'sk-ant-[a-zA-Z0-9_-]{40,}',
"APIキー(OpenAI)": r'sk-[a-zA-Z0-9]{40,}',
"クレジットカード番号": r'\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{4}\b',
}
def screen_input(text: str) -> list[str]:
"""入力テキストに含まれる可能性のある機密情報を検出する"""
warnings = []
for label, pattern in PATTERNS.items():
if re.search(pattern, text):
warnings.append(f"⚠️ {label} が含まれている可能性があります")
return warnings
def safe_ai_input(text: str) -> str:
"""スクリーニング後に問題がなければAIに送信するラッパー"""
warnings = screen_input(text)
if warnings:
print("入力内容に注意が必要な情報が含まれています:")
for w in warnings:
print(f" {w}")
confirm = input("送信しますか? (yes/no): ")
if confirm.lower() != "yes":
raise ValueError("ユーザーがキャンセルしました")
return text
# 使用例
try:
user_text = "田中太郎 tanaka@example.com に送るメールを作って"
screened = safe_ai_input(user_text)
# screened を AI API に送信する
except ValueError:
print("送信をキャンセルしました")
あわせて読みたい
- Claudeがコミット履歴に記録される時代、AIコード生成の落とし穴と安全な使い方
- AI生成コードの脆弱性チェック完全ガイド【Snyk・CVSS・GitHub Actions統合】
- Claude CodeのHooks機能でAWS本番環境を守るガードレールの作り方