LLMとベクトルデータベースパイプラインのためのコンテキストに応じた暗号化
あるエンタープライズAIプラットフォームは、PII、財務記録、医療情報といった機密データが、ベクトルデータベースにベクトル埋め込みとして保存されている間も含め、パイプライン全体で暗号化されたままであることを確保しつつ、LLMを活用した機能(チャット、検索、文書分析)を有効にする必要がありました。
プロジェクトを相談する
課題
LLMとベクトルデータベースを機密データと共に使用することは、新たなセキュリティリスクをもたらしました。
- 埋め込み反転攻撃 — 研究により、ベクトル埋め込みが逆エンジニアリングされて元のテキストが再構築され、ベクトルDBに保存されたPIIが露呈する可能性があることが示されました
- LLMコンテキスト漏洩 — LLMに送信された機密データは、適切に分離されていない場合、他のユーザーへの応答に現れる可能性があります
- コンプライアンス要件 — GDPR、HIPAA、およびSOC2は、保存時および転送時の暗号化を要求しましたが、ベクトルデータベースは従来のテキストフィールドではなく、数学的表現を保存していました
- 検索機能 — 埋め込み前にテキストを暗号化すると、セマンティックな意味が破壊され、類似性検索が使い物にならなくなります
- 鍵管理 — テナントごとの暗号化キーは、データセット全体を再埋め込みすることなくローテーションが必要でした
- 監査証跡 — 復号化された機密データへのすべてのアクセスは、コンプライアンスのためにログ記録される必要がありました
私たちのソリューション
我々は、ストレージの前に機密フィールドを選択的に暗号化しつつ、階層化されたアプローチを通じてセマンティックな検索可能性を維持するコンテキストに応じた暗号化アーキテクチャを実装しました。これは、メタデータ内のPIIを暗号化し、サニタイズされた非機密コンテンツを埋め込みに利用できるようにするものです。
アーキテクチャ
- 暗号化エンジン: テナントごとの暗号化キーを使用するAES-256-GCM
- 鍵管理: 鍵の生成、ローテーション、およびアクセス制御のためのAWS KMS
- PII検出: NERベース(Named Entity Recognition)のPII分類器
- ベクトルデータベース: サニタイズされた埋め込みに対する類似性検索のためのMilvus
- LLMレイヤー: サニタイズされたコンテキストがLLMに送信され、生成後に機密フィールドが再挿入されます
- 監査システム: すべての復号化イベントは、ユーザー、タイムスタンプ、および目的とともにログ記録されます
- データベース: 暗号化されたメタデータのためのPostgreSQL
コンテキストに応じた暗号化戦略
データ分類
任意のデータがパイプラインに入る前に、PII分類器が各フィールドを機密レベルによって分類します。
- 高度な機密性 (例:政府ID、金融口座番号、医療ID) — 暗号化され、埋め込まれず、LLMには送信されません
- 機密PII (例:氏名、メールアドレス、電話番号) — 保存時に暗号化され、埋め込み前にプレースホルダーに置換されます
- コンテキスト情報 (例:役職、会社名) — 保存時に暗号化され、同意があれば埋め込みに利用可能です
- 非機密性 (例:製品説明、公開情報) — そのまま保存され、埋め込まれます
暗号化レイヤー
レイヤー1:保存時のフィールドレベル暗号化機密フィールドは、ストレージの前にAES-256-GCMで暗号化されます。各テナントには、AWS KMSを介したキー階層によって管理される専用のデータ暗号化キー (DEK) が割り当てられます。シャドウフィールドには、復号化を必要とせずに完全一致ルックアップのための検索可能なハッシュが保存されます。
レイヤー2:埋め込み前のサニタイズPIIは検出され、テキストが埋め込みモデルに送信される前に型を保持するプレースホルダーに置換されます。これにより、識別可能な情報を削除しつつ、類似性検索のためのセマンティックな意味が保持されます。元のデータとプレースホルダーのマッピングは、ベクトルレコードとともに暗号化されて保存されます。
レイヤー3:LLM生成後のコンテキスト挿入LLMは、応答を生成するためにプレースホルダーを含むサニタイズされたコンテキストを受け取ります。生成後、システムは暗号化されたストレージから実際の値を応答に再挿入します。これにより、機密データがLLMのトレーニングデータに入ったり、プロバイダーによってキャッシュされたりするのを防ぎます。
ベクトルデータベースのセキュリティ
コレクション設計
ベクトルコレクションは、サニタイズされた埋め込みと暗号化された元のメタデータを一緒に保存します。テナント分離はパーティションキーを介して強制され、各テナントのメタデータは自身のキーを使用して暗号化されます。APIレイヤーは、任意の復号化操作の前にテナントの所有権を検証します。
鍵管理とローテーション
鍵階層
多層鍵階層が使用されます。AWS KMS内のマスターキーがテナントごとの鍵暗号化キーをラップし、それらがフィールドレベル暗号化に使用されるテナントごとのデータ暗号化キーをラップします。これにより、鍵チェーン全体を再暗号化することなく効率的な鍵ローテーションが可能になります。
鍵ローテーションプロセス
- 新しいDEKの生成 — 既存の鍵暗号化キーの下で新しいデータ暗号化キーが作成されます
- 新規書き込み — すべての新しいデータは新しいキーで暗号化され、古いキーは読み取りに対して有効なままです
- バックグラウンド再暗号化 — バッチジョブが既存のレコードを新しいキーで再暗号化します
- 古いDEKの廃棄 — すべてのレコードが移行されたら、古いキーは非アクティブとしてマークされます
- 監査ログ — ローテーションイベントは、タイムスタンプと影響を受けたレコード数とともにログ記録されます
監査とコンプライアンス
復号化監査ログ
すべての復号化イベントは、誰がそれを要求したか、何が復号化されたか、いつ、なぜ(要求コンテキスト)、どのキーが使用されたかを記録し、完全なコンプライアンス証跡を提供します。
GDPR消去権
このシステムは、リレーショナルデータベースとベクトルデータベースの両方で完全なデータ削除をサポートしており、暗号的に残留アクセスがないことを保証するためのオプションの鍵ローテーションを備えています。すべての削除操作はGDPR監査証跡にログ記録されます。
主要機能
- フィールドレベル暗号化 — レコード全体ではなく、機密フィールドにAES-256-GCMを適用
- PIIサニタイズ — プレースホルダーは埋め込みのセマンティックな意味を保持します
- LLM後の再挿入 — 機密データはLLMプロバイダーに送信されません
- テナントごとのキー — AWS KMS管理による分離された暗号化キー
- 鍵ローテーション — バックグラウンド再暗号化によるゼロダウンタイムローテーション
- 埋め込みの安全性 — サニタイズされた埋め込みはPIIに対する反転攻撃を防ぎます
- 監査証跡 — コンプライアンスレポートのためにすべての復号化がログ記録されます
- GDPR準拠 — 暗号化されたストレージとベクトルDB全体での自動消去
成果
技術スタック
caseStudyDetail.more ケーススタディ
その他の技術実装事例をご覧ください
AIを活用したOCRによる請求書処理とQuickBooks連携
毎月数百件の仕入先請求書を処理する中規模企業が、AI/OCRを使用して請求書データを自動抽出し、それを記帳と支払追跡のためにQuickBooksに直接同期させることで、手動データ入力を排除する必要がありました。
SCTE-35マーカー解析とマルチプラットフォームプレイヤー統合によるクライアントサイド広告挿入 (CSAI)
あるビデオストリーミングプラットフォームは、ウェブ、モバイル、コネクテッドTVアプリ全体でクライアントサイド広告挿入 (CSAI) を実装する必要がありました。これにより、サーバーサイド挿入では提供できない、完全な広告インタラクションサポート(クリック可能なオーバーレイ、コンパニオンバナー、スキップボタン)を備えた、パーソナライズされたデバイスレベルの広告体験が可能になります。
よくある質問
MicrocosmWorksは、LLMが意味のある情報検索と生成のために必要とする周囲のセマンティックコンテキストを保持しつつ、ドキュメントがvector databaseに入る前に、名前、口座番号、健康データなどの機密性の高いエンティティを特定して暗号化する選択的暗号化パイプラインを開発しました。クエリ時において、システムは要求しているユーザーのアクセスレベルに限定された、応答に必要な特定のエンティティのみを復号化するため、LLMは公開が許可されていない生の機密データを決して見ることはありません。
MicrocosmWorksは、元の暗号化されていないテキスト上でembeddingsを計算しながら、機密性の高いエンティティをトークンレベルで暗号化し、その暗号化されたテキストをセマンティックベクトルとともにベクトルデータベースに保存することで、この問題を解決しました。これにより、検索は高品質のembeddingsを用いてセマンティックに関連性の高いチャンクを取得し、decryption layerは認証されたユーザーにのみ元のコンテンツを再構築します。結果として、data at restを保護しながらも、検索品質を完全に維持することが可能となります。
MicrocosmWorksは、個人識別情報と保護医療情報がベクターストアで保存時に暗号化され、認可されたクエリ処理中のみメモリ内で復号化されることを保証することで、HIPAA、SOC 2、GDPR、およびCCPAにおける特定の要件に対応するために、コンテキスト暗号化アプローチを設計しました。このシステムは、すべての復号化イベントの改ざん防止監査ログを生成し、これはこれらのコンプライアンスフレームワークに共通するアクセス監視と説明責任の要件を満たします。
MicrocosmWorksは、既存のベクターデータベースコレクションを段階的に処理し、保存されているドキュメントチャンク内の機密エンティティを暗号化しながら、そのベクター埋め込みを保持する移行ユーティリティを構築しました。そのため、コーパス全体の埋め込みを再計算する必要はありません。この移行は一時停止および再開が可能なバックグラウンドプロセスとして実行され、移行期間中はクエリパイプラインが暗号化されたチャンクと未移行のチャンクの両方をシームレスに処理します。
MicrocosmWorksは暗号化および復号化の操作を最適化しました。これにより、クエリあたり約15-30msのオーバーヘッドが追加されますが、これは一般的なLLMの生成時間である500ms〜2sと比較すると無視できるレベルです。取り込み時のエンティティ検出と暗号化は、ドキュメントチャンクあたり約100msを追加しますが、取り込みは通常バッチプロセスであるため、これも最小限です。システムは、ハードウェアアクセラレーションされたAES操作を使用し、復号化キーをメモリにキャッシュすることで、暗号化のオーバーヘッドを最小限に抑えています。