この記事で分かること
- 生成AIを使う機能で、最初に決めるべきデータの境界と利用目的
- プロンプト、検索データ、外部API連携に共通する情報漏えい対策
- 権限、ログ、承認、検証を実装へ落とし込む考え方
- 導入後に設定の形骸化を防ぐための運用ルール
生成AIのリスク管理は「入力」だけで終わらない
情報漏えい対策というと、利用者がプロンプトに個人情報を書かないよう注意する場面を想像しがちです。しかし、システム開発では、入力欄以外にも情報が移動します。たとえば、社内文書を検索して回答させる仕組みでは、検索対象の文書、分割したテキスト、検索用の索引、問い合わせ履歴、障害調査用ログがデータの経路になります。生成結果を業務システムへ保存したり、メールやチャットへ渡したりすれば、出力の行き先も管理対象です。
そのため、対策を単発の禁止事項にせず、「誰が、どの目的で、どのデータに、どの経路から触れ、どこまで出力できるか」という形で決めます。利用者の注意力だけに依存する設計は、担当交代や利用範囲の拡大で崩れやすくなります。画面の操作を制限し、サーバー側でデータの参照範囲を絞り、記録と見直しを行える構成にして初めて、ルールを継続的に適用できます。
リスクを過度に恐れて利用を止める必要はありません。むしろ、扱う情報の重要度に応じて使い方を分けることで、低リスクな業務から安全に効果を試せます。顧客への定型案内の下書き、公開済み資料の要約、社内規程の検索補助のように、対象データと出力先を限定しやすい業務は、設計の練習にもなります。反対に、契約判断、採用評価、価格決定、顧客情報の横断検索などは、影響範囲と説明責任を先に確認すべき領域です。
要件定義で確定したい情報の境界
実装を始めてから「このデータは送れない」と分かると、検索方式、画面、連携先を作り直すことになりかねません。生成AIの要件定義では、精度や画面要件と同じ粒度で、データ利用の条件を決めます。一般的なAIシステム開発の要件定義でも、精度・データ・責任範囲を分けて確認することが、後工程の判断を安定させます。
利用目的と禁止目的を一対で書く
「社内文書をAIで活用する」という要望だけでは、必要なデータも許容される出力も決まりません。たとえば「営業担当が、自分の担当顧客について、公開済み商品資料と承認済み提案書から回答案を作る」のように、利用者、対象、行為、出力先を具体化します。そのうえで、「顧客の閲覧権限をまたいだ検索はしない」「回答を自動送信しない」「人事評価の根拠を生成しない」といった禁止目的も明記します。
禁止目的は、利用者への注意書きではなく、設計の受入条件です。検索条件、ロール、画面のボタン、APIのパラメーター、出力後の処理が禁止目的に反していないかを確認できます。目的が変わる場合は、既存の機能に設定を追加するだけで済ませず、対象データと影響範囲を再評価します。小さな用途追加でも、別部門のデータを扱うなら、新しいシステム要件として扱う姿勢が必要です。
データを重要度ではなく利用可否まで分類する
「機密」「社外秘」といった大まかなラベルだけでは、実装判断に足りないことがあります。分類には、少なくとも「生成AIに入力してよいか」「検索対象にしてよいか」「外部サービスに送ってよいか」「生成結果として表示してよいか」を含めます。同じ顧客情報でも、会社名だけなら表示可能、担当者の連絡先は権限者だけ、契約単価は検索対象外、といった差が生まれるためです。
分類結果は、データベースの項目、ファイル保管場所、文書のメタデータ、連携APIのフィールドへ対応付けます。文書単位の制御だけでは不十分な場合、本文中の特定項目を除外する前処理や、検索結果の表示前フィルターを検討します。データの整備と評価については、AIシステム開発に必要なデータの整備・評価という観点も参考になります。正確さのための整備と、安全に扱うための整備は、別々ではなく同じ台帳で管理すると変更に追随しやすくなります。
第三者データと権利条件をデータ台帳に残す
顧客から預かった資料、取引先の仕様書、外部購入したデータは、自社の判断だけで学習・検索・再配布できるとは限りません。利用条件を確認せずに検索基盤へ登録すると、後から削除要求に対応できなくなることがあります。データ台帳には、所有者、入手経路、利用目的、保存場所、アクセスできるロール、削除や更新の条件、参照期限を残します。
ここでいう台帳は、複雑な専用ツールでなければならないわけではありません。重要なのは、開発者、業務部門、運用担当が同じ判断材料を見られることです。新しいファイルを追加する際に、分類と利用条件を入力する手順を設ければ、登録後に所在不明のデータが増えることを防げます。
入力データを持ち出さないための境界設計
生成AIの機能は、画面、アプリケーションサーバー、検索基盤、外部モデル、業務データベースなど複数の要素から成ります。どの境界を越えて何を送るのかを図にしてから、送信を最小化します。「APIを使うから安全」「社内ネットワークだから安全」といった単純な前提ではなく、コンポーネントごとに扱う情報と責任を分けます。
プロンプトは業務データとして扱う

利用者が入力する質問だけでなく、システムが自動で付与する指示文、会話履歴、検索した文書の抜粋もプロンプトの一部です。開発時のテスト用プロンプトに実データをコピーする習慣が残ると、本番と開発環境の境界も曖昧になります。テンプレートには実在の顧客名や連絡先を埋め込まず、テストでは匿名化・置換したデータを使う方針を決めます。
入力欄で伏せ字に見えても、サーバー側に元の値が渡る設計なら漏えい対策にはなりません。送信前に不要な項目を落とす、識別子を一時的な参照値に置き換える、長文を必要な範囲だけ抽出する、といった処理をサーバー側で行います。画面のJavaScriptだけに頼らず、APIの入口でも許可されないフィールドを受け付けないようにします。
検索拡張では「見つけられること」自体を権限で制御する
社内文書を検索して回答に使う仕組みでは、回答本文を隠しても、検索結果のタイトルや要約から情報が推測されることがあります。検索する時点で、利用者の所属、担当範囲、案件、文書の公開状態を照合し、参照できる文書だけを候補にします。回答生成の直前で絞り込むのではなく、索引作成時と検索時の双方でアクセス条件を扱うことが重要です。
検索用のベクトルや分割テキストも、元文書とは別の安全なコピーではありません。内容を復元または推測できる可能性を前提に、保存先のアクセス権、バックアップ、削除手順を設計します。元文書が削除・権限変更されたとき、検索用データにも変更を反映する処理を用意しておくと、退職者や終了案件の情報が残り続ける問題を減らせます。
外部連携は送信項目と応答の利用先を固定する
モデルAPI、OCR、翻訳、チャット、メールなどを連携すると、データは連携のたびに別の経路へ進みます。連携先ごとに「送ってよい項目」「送信してはいけない項目」「保存の有無」「障害時の再送条件」を定義します。汎用的なJSONをそのまま転送するのではなく、連携専用のデータ形式を作り、必要な項目だけを詰める方法が扱いやすい設計です。
生成結果を次のシステムへ渡す場合も、AIの出力を信頼済みの命令として扱ってはいけません。出力中のURL、ファイル名、SQL断片、操作指示を機械的に実行する処理は避け、許可リストと形式検証を通します。外部から取得した文書に含まれる指示文が、生成AIへの命令として混入する可能性もあるため、検索文書とシステム指示の扱いを分離します。
権限・ログ・承認を分離して実装する
安全な利用を支えるのは、ログを残すことだけではありません。誰に何を許可するか、どの操作を記録するか、どの場面で人が最終判断するかを分けて設計します。三つを一つの管理者権限に集めると、日常業務のために強すぎる権限を配ることになり、事故後の確認も難しくなります。
最小権限をロールとデータ範囲の両方に適用する

「一般利用者」「部門管理者」「システム管理者」といったロールを作るだけでは足りません。同じ一般利用者でも、所属部門や担当案件によって参照可能なデータが異なるなら、ロールの下にデータ範囲を持たせます。認証後に画面を非表示にするのではなく、検索API、文書取得API、ダウンロードAPIのそれぞれで判定します。直接URLや別画面からアクセスしても、同じ制御が効く状態を目指します。
管理者は緊急時に広い権限を必要とすることがあります。その場合は恒久的な全権限を配るより、申請・承認・有効期限を伴う一時的な昇格を検討します。権限を付与した理由と終了予定が記録されていれば、棚卸しの対象を明確にできます。部署異動や委託終了に連動して権限を外す手順も、ID管理の運用へ組み込みます。
ログは内容と目的を分けて記録する
障害調査のためにプロンプト全文や検索結果を無制限に保存すると、ログ自体が高リスクなデータ保管庫になります。一方、何も記録しなければ、誰がどの文書へアクセスしたか、どの設定変更が影響したかを追えません。利用者ID、時刻、対象機能、参照した文書の識別子、処理結果、エラー種別のように、監査に必要な情報をまず定義し、本文や個人情報を含む内容ログは必要最小限にします。
詳細ログが必要な調査では、通常の運用ログとは別の保護された場所に、期間と閲覧者を限定して保存します。ログの閲覧権限と、AI機能を使う権限を同じにしないことも大切です。保存期間、削除方法、持ち出しの可否を決め、定期的に不要なログが残っていないかを確認します。
高影響な出力には人の承認工程を残す
生成結果は、もっともらしい文章でも正確とは限りません。顧客への送信、契約条件の変更、個人に関する評価、支払い処理、外部システムの更新など、誤りが大きな影響につながる操作は自動実行しない設計にします。下書きを作る機能と、送信・確定する機能を別にし、承認者が根拠資料とともに確認できる画面を用意します。
承認は形式的なチェック欄ではなく、何を確認するかを明確にします。たとえば、参照データの範囲、出力に含まれる固有名詞、法令や社内規程に関わる表現、外部送信先、確定後の取り消し可否を確認項目にします。判断基準が曖昧なままなら、AI機能の追加よりも先に業務ルールを整理することが、結果として早いことがあります。
開発・検証環境で起こりやすい漏えいを防ぐ
本番のアクセス制御を整えても、開発環境、検証環境、問い合わせ対応のための一時データが弱点になることがあります。開発チームには広い閲覧権限が必要だと考えず、環境ごとにデータの扱いを変えます。特に、生成AIの精度を確かめたい場面では実データを使いたくなりますが、必要性と代替手段を検討します。
テストデータは匿名化と再現性を両立させる
テスト用データでは、氏名、住所、電話番号、メールアドレス、顧客番号などの直接識別子を置き換えます。ただし、単純に一律の文字列へ変換すると、データの偏りや文書構造が失われ、検索や抽出の検証に使えなくなることがあります。項目間の関係、文書の種類、入力の揺れを保ちながら、実在の人物や取引を特定できない形に変換する方針を作ります。
匿名化済みデータの作り方と管理責任者を決め、各開発者が個別に実データをコピーする状態を避けます。検証に実データが不可欠な例外があるなら、対象、目的、期間、実施者、削除確認を承認記録に残します。例外を通常手順にしないことが、環境の境界を守る鍵です。
秘密情報をコードや設定ファイルに残さない
APIキー、接続情報、テスト用アカウント、アクセストークンをソースコードや共有ドキュメントに直接書くと、生成AIそのものとは別に漏えい経路が増えます。秘密情報は専用の管理機構で扱い、アプリケーションには実行時に必要な値だけを渡します。開発用と本番用の資格情報を分け、開発用の値が本番データへ接続できないようにします。
コードレビューや自動検査では、秘密情報らしい文字列が混入していないか、ログ出力に認証情報や入力内容を含めていないかを確認します。誤って公開してしまった場合に備え、失効・再発行・影響調査の手順も準備します。鍵を削除するだけでは、既に取得された可能性やログへの残存を判断できないためです。
検証は攻撃者の視点で失敗を探す

通常の操作ができることに加え、権限の低い利用者が別部門の文書を検索できないか、削除済みの文書が回答に現れないか、長文入力で不要な情報が送られないかを確かめます。外部文書に「前の指示を無視して」といった文面が含まれても、システムの制御や機密情報の出力に影響しないかを確認することも重要です。
検証項目は、発見した問題に応じて更新します。リリース前だけで終わらせず、モデル、検索方式、連携先、権限ルールを変更するときに再実行する条件を決めます。AI開発の契約前に確認したいリスクのように、技術以外の責任範囲も同時に整理すると、障害時の連絡や修正判断が速くなります。
運用で設定の形骸化を防ぐ仕組み
リリース時に適切だった設定も、組織変更、新しいデータの追加、外部サービスの仕様変更で意味を失うことがあります。生成AIの運用では、品質と安全性を別々に確認せず、変更管理の一部として扱います。利用件数だけを成果指標にすると、対象範囲が無秩序に広がる危険があるため、権限エラー、承認差戻し、削除反映の遅れ、問い合わせ内容も見ます。
変更申請にデータ影響の確認欄を設ける
プロンプトの文言変更、検索対象の追加、出力先の追加、モデルの切り替えは、すべてデータの露出範囲を変える可能性があります。変更申請には、対象データ、追加される利用者、外部送信の有無、ログへの影響、再検証の必要性を記入します。小さな変更にも同じ観点を当てることで、口頭の相談だけで設定が変わる状態を減らせます。
変更内容に応じて、業務部門、情報システム部門、セキュリティ担当、委託先の誰が承認するかを決めます。すべての変更を重い会議にかける必要はありませんが、影響度に応じた承認経路を用意すると、速度と統制を両立しやすくなります。
定期棚卸しは「使っていない権限」から始める
権限や検索対象は追加しやすく、削除は後回しになりがちです。定期的に、退職者・異動者のアカウント、終了した案件の文書、一時的に付与した管理権限、利用されていない連携を確認します。利用者一覧と実際の利用ログを突き合わせれば、不要なアカウントや想定外の使われ方を見つける手掛かりになります。
棚卸しの結果は、問題がなかった場合も残します。いつ誰が何を確認したかが分かれば、次回の確認範囲を調整できます。大規模な一斉点検を待たず、月次の権限確認や案件終了時の削除確認など、業務の節目へ小さなチェックを組み込む方が継続しやすいでしょう。
導入前に合意しておきたい実装原則
生成AIのリスク管理は、特定の製品設定だけで完成するものではありません。データを分類し、目的外利用を禁止し、必要な情報だけを送信し、権限とログを分離し、重要な出力は人が確定する。これらを要件、設計、テスト、運用に繰り返し組み込むことが実装原則になります。
自社で判断しきれない場合は、最初から大きな連携を作る前に、対象業務を限定して現状のデータと運用を確認するのが現実的です。開発前診断・ロードマップでは、既存システムの状態と改善の進め方を整理できます。生成AIの適用範囲、データの持ち方、既存システムとの接続方法を同時に検討するなら、生成AIを活用したシステム開発について相談する選択肢もあります。
よくある質問
生成AIへ個人情報を入力しなければ、情報漏えい対策は十分ですか?
十分とはいえません。検索対象の文書、会話履歴、システムが追加する指示文、ログ、外部連携の送信項目にも情報が含まれるためです。入力欄の注意喚起に加え、サーバー側の送信制御、検索時の権限判定、保存期間の設計を組み合わせます。
社内文書を検索して回答する仕組みで、最も優先すべき実装は何ですか?
利用者が閲覧できる文書だけを検索候補にする権限設計を優先します。回答を作る直前だけでなく、文書登録、索引作成、検索、表示の各段階で権限と公開状態を確認し、削除や権限変更が検索用データへ反映される仕組みを用意します。
生成AIの回答を業務処理へ自動反映してもよいですか?
影響の小さい処理でも、許可する操作の範囲と検証を明確にしてから判断します。顧客への送信、契約・支払い・評価に関わる処理などは、人が内容と根拠を確認して確定する工程を残す設計が適しています。
導入後はどのような点検を続けるべきですか?
利用者権限、検索対象、外部連携、ログの保存状況、例外的に付与した管理権限を定期的に見直します。モデルやプロンプト、データ、連携先を変える際には、権限外参照や不要な外部送信が起きないかを再検証します。