ほとんどのエンタープライズRAGデプロイメントに欠けている権限レイヤー

漏洩しているのはプライベートLLMではない。検索レイヤーだ。

若手アナリストが日常的な質問をすると、古くなった取り込み時ACLがモデルにBoard-Onlyのメモを渡してしまう。Sovereign RBAC Firewallは、検索されたすべての文書をクエリ時に、ユーザーのライブなネストグループ集合と属性に照らして認可し、モデルがトークンを見る前に差し止め文書を落とす。あらゆるLLMの外側にある決定論的なコード。エージェントは助言し、コードが決定する。

40/40

ゴールデン認可セットにおける正しい判定

不正開示0件、誤拒否0件。評価ハーネスが算出

29/40

同じ40件に対する忠実なフラットACLベースライン

不正開示10件、誤拒否1件

$670K

従来型インシデントと比較したシャドーAI漏洩の追加コスト

IBM Cost of a Data Breach, 2025

これは実行可能なデモであり、デプロイメントではありません。すべてのアイデンティティと文書は合成の欧州銀行フィクスチャです。IDプロバイダーはAzure-AD/SCIM形状のJSONフィクスチャであり、ベクトルストアはQdrant形状のインターフェースの背後でプロセス内で動作します。

パイロットはデモを通過する。その後、セキュリティ審査で落ちる。

プライベートLLMを買っただけでは、最重要コーパスに向けても安全にはならない。

標準的なパイロット構築では、取り込み時に各文書チャンクへフラットなACLをタグ付けする。その設計は、実際のエンタープライズアイデンティティの下で崩壊する。ネストされたActive Directoryグループ、横断OU継承、クリアランスレベル、期限付きプロジェクト付与、そしてインデックス構築後に起きる退職。結果が、このデモがエンドツーエンドで再現する古典的な失敗だ。若手アナリストが普通の質問をし、RAGパイプラインがモデルにBoard-Onlyのメモを渡す。古くなった取り込み時スナップショットが、彼女が見られると言っていたからだ。

根本原因は構造的だ。文書の権限はアイデンティティグラフのライブな属性なので、そのスナップショットはすでに誤っている。より良いモデルではこれは直らない。取締役会文書を渡された完璧なモデルは、それでもそれを漏洩する。価値は、モデル品質ではなく、モデルに何が届くかを統治することにある。

リスクの大きさは測定されている。シャドーAI漏洩は従来型インシデントより$670K高くつき、AI関連漏洩の65%が顧客PIIを侵害した(IBM Cost of a Data Breach, 2025)。シャドーAI漏洩の検知には247日かかり、平均241日に対して長く、5社に1社がシャドーAIに結びついた漏洩を経験している(IBM, 2025)。規制面では、EU AI Act Article 50の透明性義務が2026年8月2日に執行可能となり、GDPRとAI Actを合わせた制裁金上限はEUR 55Mまたは全世界年間売上高の11%に達する。

当社自身のソリューションページは、検索時の権限適用を「ほとんどのエンタープライズRAGパイロットがセキュリティ審査に失敗する理由」であり「エンタープライズRAGにおける最も難しい未解決の問題」と呼んでいる。その背後にあるホワイトペーパーの製品分析は、市場全体のRBAC対応RAGを、説明はあるが実証されておらず、動作する実装がないと指摘した。このデモが、その動作する実装である。

Sovereign RBAC Firewallの仕組み

決定論的なポリシーエンジンが、モデルが見るものを決める。モデルでもプロンプトでもない。

すべてのクエリが同じパイプラインを実行する:

クエリ + ユーザーアイデンティティ → 検索 → RBACファイアウォール(決定論的、あらゆるLLMの外側) → 許可文書のみ → 回答LLM → ハッシュチェーン監査記録

1. ライブ権限解決

候補となるすべての文書について、ファイアウォールはクエリ時にユーザーの実効権限を解決する。ネストされたAD/OUグループを再帰的にフラット化し(フィクスチャは3階層のネスト)、文書の構造化ポリシー参照に対してABAC属性を評価する。クリアランスレベルL1からL4、管理対象デバイス、部署、有効期限付きの期限付きプロジェクト付与、雇用ステータス。

2. 決定論的な判定

各文書はALLOW、機械検証可能な理由コード付きのWITHHELD(BOARD_MEMBERSHIP_REQUIRED、ACCESS_WINDOW_EXPIRED、ALL_ACCESS_REVOKED_TERMINATION、POLICY_CONFLICT)、またはNEEDS_REVIEWを得る。差し止め文書はコンテキストウィンドウの前に落とされるため、モデルはユーザーがアクセスできない文書を決して見ない。衝突や未解決の参照があれば、推測せずにデフォルトで拒否し、人手レビューへ回す。

3. レシート

すべてのクエリが、改ざん検証付きの追記専用SHA-256ハッシュチェーンに記録を追記する。ユーザー、解決済み権限セット、検索・提供・理由コード付き差し止めの文書、要レビューの衝突、モデルとプロバイダー、プロンプト/レスポンスのペア。JSONとしてエクスポート可能で、VPC内で生成される。EU AI Act Article 50のファイルが求める検索アクセスの証拠記録である。

打ち負かすベースラインは藁人形ではない

デモの比較側は、忠実な素朴フラットACL RAGであり、ほとんどのパイロットが実際に出荷する構築だ。取り込み時にネストグループを本当に解決する。失敗は二つの誠実で本質的な限界だ。スナップショットが古くなること、フラットなタグではクリアランス、デバイス、時間窓、退職を表現できないこと。デモの40件ゴールデンセットでは、この二つの限界が不正開示10件と誤拒否1件を生む。誤拒否は、取り込み後に加わったメンバーで、凍結スナップショットがその権限を見逃したものだ。

LLMは入れ替え可能な舞台装置である

Pydantic AI上に構築された回答パスは、ファイアウォール後の許可チャンクのみを受け取り、はったりをつかず差し止めとその理由を述べ、権限判定に対する権限は一切ない。環境変数一つでプロバイダーを入れ替えられる。Anthropic(デフォルトモデルclaude-opus-4-8)、OpenAI、Gemini、またはエアギャップのソブリンデプロイメント向けOllama。トークン一つたりとも箱から出ない。APIキーは一切不要。デモはブリッジが動いていれば回答をローカルブリッジへ送り、そうでなければ決定論的スタブへフォールバックする。評価スコアボードはLLMを一切呼び出さない。製品はファイアウォールであり、モデルは舞台装置である。

スコアボードは独立している

40件セットのゴールデンラベルは、独立した参照オラクルが機械的に導出する。テスト対象のファイアウォールではなく、ポリシー定義から書かれた別実装である。スコアボードは手選りの結果ではなくアイデンティティグラフの関数であり、すべての数値は実行時に算出され、ハードコードされない。適用オーバーヘッドはファイアウォールロジックのみ、プロセス内でマイクロ秒単位。本番IdPの往復はレイテンシを追加するが、このデモではスタブ化する。

一つのチョークポイント、エージェント対応

Gartnerは、エンタープライズアプリケーションの40%が2026年末までにAIエージェントを埋め込むと予測している。2025年の5%未満から上昇する。同じ決定論的なauthorize(user, doc)ゲートが、その世界への文書化された拡張パスであり、このデモの出荷機能ではない。エージェントは、代理先ユーザーが取得できなかったものを取得できない。

EUR 412 millionの漏洩を、エンドツーエンドで再現する

一人の合成アナリストが一つの質問をし、分割画面の両側で回答される。以下の画像はすべて実行中アプリのスクリーンショットであり、すべてのアイデンティティ、文書、数値は合成フィクスチャデータである。

漏洩する質問

EMEA信用リスクアナリストでクリアランスL2のLena Vogtが尋ねる。「Q3のEMEA信用損失予測とその背後の方法論は何か?」検索は、彼女が見てよい文書と並んでBoard-OnlyのQ3取締役会パックを表面化する。フラットACL側はそれを提供する。アイデンティティグラフにおける長年のネストグループ継承負債が、彼女を推移的に「Board」メンバーにしており、グループのみのタグにはクリアランスの概念がない。メモがモデルに届き、回答がEUR 412 millionを読み上げ、バナーはLEAKと出す。

分割画面の漏洩。Naive Flat-ACL側が、赤いLEAKバナーと無権限の文書が1件提供されたという警告とともに、L2アナリストLena VogtへEUR 412 millionのBoard-Only予測を読み上げる。一方RAGGUARD側は取得5件、許可2件、拒否3件を示す。
漏洩の瞬間。L2アナリストへ読み上げられたBoard-Onlyメモ。数値は合成だが、失敗モードはそうではない。

同じクエリ、ファイアウォールの背後で

RAGGUARD側では同じ検索が走るが、取締役会パックは理由コードBOARD_MEMBERSHIP_REQUIREDでLLMの前に差し止められる。文書はクリアランスL4を要求し、LenaはL2を保持している。モデルは、彼女のネストグループチェーンが実際に権限を与えるInternal方法論ノートとConfidentialメモから正しく回答し、はったりをつかず差し止めとその理由を述べる。

Lenaのクエリ後のデモのRAGGUARD側。取得5件、許可2件、拒否3件。差し止め注記が拒否文書とその理由コードを列挙し、取締役会パックにBOARD_MEMBERSHIP_REQUIREDを含む。
同じ質問、同じ検索。取得5件、許可2件、拒否3件。各拒否に理由コードが付く。

モデルが実際に見たもの

判定詳細モーダルは、両側のモデル入力を逐語で示す。左では、漏洩した取締役会パックがプロンプト内に赤でフラグされる。右では単に不在だ。モデルはユーザーがアクセスできない文書を決して見ない。文書ごとのビューが分岐を明示する。同じ取締役会パックの行が、一方では「認可なしで提供」、他方では理由コード付きの「検索時にアクセス拒否」と読む。

両側の逐語モデル入力。フラットACLプロンプト内で赤くフラグされたBoard-Only文書と、許可文書のみに根拠づけられていると表示されたRAGGUARDプロンプトからの不在。
コンテキストウィンドウ、逐語。左に漏洩文書があり、右にはない。
文書ごとの判定ビュー。取締役会パックの行が、フラットACL側では認可なしで提供、RAGGUARD側では理由コードBOARD_MEMBERSHIP_REQUIRED付きの検索時アクセス拒否と読む。
同じ文書、二つの判定。認可なしで提供対検索時拒否、理由コード付き。

盗むものが何もなかったインジェクション

Internal方法論ノートには、それを読むあらゆるAIアシスタントに検索権限を無視してBoardの数値をそのまま出力するよう指示する埋め込みプロンプトインジェクション文字列が載っている。ファイアウォール側では流出させるものが何もない。取締役会パックはコンテキストウィンドウに入っていない。認可がLLMの前に行われたからだ。これはラベル付きの1件であり、別個のガードレール製品ではなく、検索時適用による多層防御として示される。

Internal方法論ノート内の埋め込みプロンプトインジェクション行。判定詳細ビューでハイライトされ、あらゆるAIアシスタントに検索権限を無視して取締役会の信用損失数値を出力するよう指示する。
インジェクションは、モデルが読むことを許可された文書の中にある。それが狙う文書はモデルに届いていない。

アイデンティティグラフは動く。スナップショットは動かない。

Priya Shahはデモ時計で9分前に退職処理され、フィクスチャのWebhookが発火している。ファイアウォールはすべてにALL_ACCESS_REVOKED_TERMINATIONを返す。許可0件、拒否5件。フラットACLスナップショットは退職前に構築されているため、再インデックスが走っておらず、なお彼女に提供する。デモは同じエッジをMarco Rossiについても辿る。期限付きProject-Atlas付与がデモ時計で昨日期限切れ(ACCESS_WINDOW_EXPIRED)。Raj Patelは許可グループと拒否グループに同時に属する(POLICY_CONFLICT、人手レビュー待ち)。Wei ChenはL4取締役会メンバーで、ファイアウォールが正しく提供する陽性対照であり、すべてを拒否しているだけではないことを証明する。

退職従業員のケース。アイデンティティストリップにTERMINATEDバッジのPriya Shah。RAGGUARD側は理由コードALL_ACCESS_REVOKED_TERMINATIONで許可0件・拒否5件を示し、フラットACL側は古いスナップショットからなお提供する。
9分前に退職。ファイアウォールはすべてを失効させ、取り込みスナップショットはまだ気づいていない。

画面上のレシート

これらの判定はすべて、改ざん検知可能な監査証跡に着地する。誰が何を尋ね、何が提供され、何がなぜ差し止められ、どのモデルが回答したかのハッシュチェーンJSON記録。CHAIN INTACT検証チップとワンクリックエクスポート付き。VPC内で自動生成される。

改ざん検知可能な監査証跡。CHAIN INTACTチップ、理由コード付きの提供・差し止め文書のハッシュチェーンJSON記録、Export Audit Recordボタン。
ハッシュチェーン監査記録。Article 50のファイルが求める成果物であり、認証ではない。

正確な範囲を持つスコアボード

ゴールデンセットは40件のラベル付き(ユーザー、文書)許可/拒否判定である。10ユーザー対4件の機微文書。ラベルは独立オラクルがアイデンティティグラフの意味論から機械的に導出する。ファイアウォールは不正開示0件・誤拒否0件で40/40。フラットACLベースラインは不正開示10件(7人の無権限ユーザーへ提供された取締役会パック、期限切れAtlasウィンドウ、退職従業員を含む)と誤拒否1件で29/40。すべての数値はハーネスが実行時に算出し、ハードコードされず、ケースごとのドリルダウンは各オラクルラベルを両システムの判定の横に示す。これらはゴールデンセットの結果であり、オープンワールドの保証ではない。

40件ベンチマークスコアボード。Naive Flat-ACL RAGは不正開示10件・誤拒否1件で29/40、RAGGUARDは不正開示0件・誤拒否0件で40/40。
スコアボード。オラクルのラベルに対し評価ハーネスがライブで算出。
ケースごとのベンチマークドリルダウン。オラクルがケースを拒否とラベルし、フラットACLベースラインは文書を提供し、RAGGUARDは差し止めた。ポリシーチップが判定を説明する。
ケースごとのドリルダウン。オラクルラベル、フラットACL判定、ファイアウォール判定、それを決めたポリシー。

Naive Flat-ACL RAG対Sovereign RBAC Firewall

デモがライブで実行する同じ比較。同じアイデンティティグラフ、同じ文書。

項目 Naive Flat-ACL RAG(典型的なパイロット構築) Sovereign RBAC Firewall(RAGGUARD)
認可が行われる時点 取り込み時、各チャンクのタグに凍結 検索時、クエリごと、文書ごと
ネストグループと横断OU継承 取り込み時に一度解決。スナップショットは古くなる すべてのクエリでライブアイデンティティグラフに対して再帰的にフラット化
ABAC:クリアランス、デバイス、期限付き付与、雇用ステータス フラットなタグでは表現不能 構造化ポリシー参照に対して文書ごとに評価
9分前の退職 再インデックスが走るまでなお提供 すべてにALL_ACCESS_REVOKED_TERMINATION
同一文書上の衝突するポリシー 文書を提供する デフォルト拒否:NEEDS_REVIEW。衝突を明示して人手へ回す
40件ゴールデンセット 29/40:不正開示10件、誤拒否1件 40/40:不正開示0件、誤拒否0件
監査証跡 なし すべての提供と差し止めのハッシュチェーン、改ざん検知可能な記録。JSONとしてエクスポート可能

このデモが行わないこと

  • ✓ ライブのActive Directory、Okta、SharePoint、Confluenceには接続しない。IDプロバイダーは合成のAzure-AD/SCIM形状JSONフィクスチャであり、退職と期限切れはフィクスチャイベント、ベクトルストアはQdrant形状インターフェースの背後でプロセス内である。ライブIdPコネクタは文書化された本番差し替えであり、今日動いているものではない。
  • ✓ 実在の銀行、顧客、ライブ口座は関与しない。Lena Vogt、Marco Rossi、Priya Shah、Raj Patel、Wei Chen、すべての文書、EUR 412 millionの数値は合成である。
  • ✓ オープンワールドの保証は主張しない。不正開示0件の40/40は、固定された40件ラベル付きゴールデンセット上の算出結果であり、本番で何も漏洩しないという約束ではない。
  • ✓ 本番レイテンシは測定しない。マイクロ秒スケールの適用オーバーヘッドはファイアウォールロジックのみ、プロセス内である。このデモがスタブ化するライブIdP往復は、さらに加算する。
  • ✓ ガードレールスイート、DLP、マルチエージェントプラットフォームは出荷しない。説得力をもって実現した一つの能力である。検索時権限ファイアウォール。インジェクションケースはラベル付き多層防御の一例。回答パスはPydantic AIであり、意図的に非エージェンティックな決定論的ゲートが設計である。エージェンティックガバナンスは文書化された拡張パスである。
  • ✓ コンプライアンスを認証しない。監査エクスポートはEU AI Act Article 50のファイルが求める証拠記録であり、認証ではない。このデモに顧客、デプロイメント、ケーススタディは存在しない。

購入者が実際に尋ねる質問

社内AIチャットボットが、従業員に見せるべきでない文書を見せないようにするには?

認可は取り込み時ではなく検索時に適用せよ。LLMの外側の決定論的ポリシーエンジンが、モデルに届く前に、検索されたすべての文書をユーザーのライブなグループメンバーシップと属性に照らして検査するため、差し止め文書はコンテキストウィンドウに入らない。このデモではそのゲートが、ラベル付き40件ゴールデンセットで40/40を記録し、ほとんどのパイロットが出荷するフラットACL構築の29/40に対して勝る。

インデックス時にすでに文書へ権限をタグ付けしている。なぜそれでは足りないのか?

タグはスナップショットであり、権限はアイデンティティグラフのライブな属性だからだ。取り込み時ACLは、インデックス後に変わるすべてを見逃す。退職や期限切れプロジェクト付与など。クリアランスレベルや管理対象デバイスのような属性ルールはまったく表現できない。デモでは、この二つの限界が40件ベンチマークで不正開示10件と誤拒否1件を説明する。ベースラインは取り込み時にネストグループを忠実に解決している。

プロンプトインジェクションで、制限文書を漏洩するようモデルをだますことはできるか?

文書がモデルに届かなければできない。デモにはラベル付きケースがあり、文書に埋め込まれた注記があらゆるAIアシスタントに検索権限を無視してBoard-Onlyの数値を出力するよう指示するが、認可がLLMの前に行われメモがコンテキストウィンドウに入らなかったため、インジェクションには流出させるものがない。それは検索時適用の多層防御の一例であり、独立したガードレール製品ではない。

アクセスポリシーが衝突する、またはシステムが確信できないときは何が起きるか?

デフォルトで拒否する。同一文書で許可と拒否のメンバーシップを同時に持つ、またはポリシー参照を解決できない場合、ファイアウォールはNEEDS_REVIEWを返し、推測せず衝突を明示して人手へ回す。デモはまさにそれを示す。許可グループと拒否グループに同時に属する信用リスクマネージャーでは、争点のメモは提供されずレビュー待ちとなる。

データはVPCから出るか?完全エアギャップで動かせるか?

ファイアウォールはモデルを一切必要としない決定論的Pythonであり、回答パスは環境変数一つで入れ替えられる。Anthropic、OpenAI、Gemini、またはOllama。エアギャップのソブリンデプロイメントにはLLM_PROVIDER=ollamaを設定すれば、トークン一つたりとも箱から出ない。デモ自体はAPIキーなしでオフライン動作し、評価スコアボードはLLMを一切呼び出さない。

AIシステム経由で誰が何にアクセスしたかを監査人に何を示すか?

すべてのクエリが、改ざん検知可能なSHA-256ハッシュチェーンに記録を追記する。誰が尋ねたか、解決済み権限セット、何が提供され、何がなぜ差し止められ、どのモデルが回答したか。JSONとしてエクスポートされ、VPC内で生成される。EU AI Act Article 50のファイルが求める検索アクセスの証拠記録であり、コンプライアンス認証ではない。

これはライブのActive Directory統合か、デモか?

仕組みを証明する実行可能なデモである。IDプロバイダーは合成のAzure-AD/SCIM形状JSONフィクスチャ、退職と付与の期限切れはフィクスチャイベント、ベクトルストアはQdrant形状インターフェースの背後でプロセス内で動作する。ポリシーエンジン、評価ハーネス、ハッシュチェーン監査エクスポートは本物であり、示したとおりに動く。フィクスチャがAzure AD GraphとSCIMインターフェースを鏡写しにするため、ライブIdPへの文書化された本番パスは書き換えではなく設定の差し替えである。

技術研究

このデモの背後にある研究 — アーキテクチャ、検証設計、エンタープライズブループリント。

規制対象企業でプライベートLLMデプロイメントを評価していますか?

権限レイヤーが難しい部分だ。私たちがそれを構築する。

長年のネストグループ継承で統治されたコーパスにプライベートモデルを向ける方法、あるいはEU AI Actの透明性義務が検索ログに何を意味するかでチームが苦慮しているなら、その考え方をぜひ聞きたい。問題は業界全体であり、答えもそうなる。

権限レイヤーのアセスメント

  • ✓ 今日のRAGパイプラインがどこで認可しているかをマッピングする。取り込み時か検索時か
  • ✓ ネストグループと横断OU継承をライブポリシーグラフとしてモデル化する
  • ✓ フラットなタグでは表現できないABACルールを定義する。クリアランス、デバイス、期限付き付与
  • ✓ Article 50のファイルが求める検索アクセス記録を仕様化する

検索時ファイアウォールを構築する

  • ✓ あらゆるLLMの外側にある決定論的なauthorize(user, doc)ゲート
  • ✓ Azure AD GraphとSCIM形状インターフェースの背後でのライブIdP解決
  • ✓ 人手レビューへのデフォルト拒否の衝突ルーティング
  • ✓ VPC内で生成されるハッシュチェーン、エクスポート可能な監査証跡
ソーシャル

他のプラットフォームでも公開