ほとんどのエンタープライズRAGデプロイメントに欠けている権限レイヤー
若手アナリストが日常的な質問をすると、古くなった取り込み時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を、説明はあるが実証されておらず、動作する実装がないと指摘した。このデモが、その動作する実装である。
決定論的なポリシーエンジンが、モデルが見るものを決める。モデルでもプロンプトでもない。
すべてのクエリが同じパイプラインを実行する:
クエリ + ユーザーアイデンティティ → 検索 → RBACファイアウォール(決定論的、あらゆるLLMの外側) → 許可文書のみ → 回答LLM → ハッシュチェーン監査記録
候補となるすべての文書について、ファイアウォールはクエリ時にユーザーの実効権限を解決する。ネストされたAD/OUグループを再帰的にフラット化し(フィクスチャは3階層のネスト)、文書の構造化ポリシー参照に対してABAC属性を評価する。クリアランスレベルL1からL4、管理対象デバイス、部署、有効期限付きの期限付きプロジェクト付与、雇用ステータス。
各文書はALLOW、機械検証可能な理由コード付きのWITHHELD(BOARD_MEMBERSHIP_REQUIRED、ACCESS_WINDOW_EXPIRED、ALL_ACCESS_REVOKED_TERMINATION、POLICY_CONFLICT)、またはNEEDS_REVIEWを得る。差し止め文書はコンテキストウィンドウの前に落とされるため、モデルはユーザーがアクセスできない文書を決して見ない。衝突や未解決の参照があれば、推測せずにデフォルトで拒否し、人手レビューへ回す。
すべてのクエリが、改ざん検証付きの追記専用SHA-256ハッシュチェーンに記録を追記する。ユーザー、解決済み権限セット、検索・提供・理由コード付き差し止めの文書、要レビューの衝突、モデルとプロバイダー、プロンプト/レスポンスのペア。JSONとしてエクスポート可能で、VPC内で生成される。EU AI Act Article 50のファイルが求める検索アクセスの証拠記録である。
デモの比較側は、忠実な素朴フラットACL RAGであり、ほとんどのパイロットが実際に出荷する構築だ。取り込み時にネストグループを本当に解決する。失敗は二つの誠実で本質的な限界だ。スナップショットが古くなること、フラットなタグではクリアランス、デバイス、時間窓、退職を表現できないこと。デモの40件ゴールデンセットでは、この二つの限界が不正開示10件と誤拒否1件を生む。誤拒否は、取り込み後に加わったメンバーで、凍結スナップショットがその権限を見逃したものだ。
Pydantic AI上に構築された回答パスは、ファイアウォール後の許可チャンクのみを受け取り、はったりをつかず差し止めとその理由を述べ、権限判定に対する権限は一切ない。環境変数一つでプロバイダーを入れ替えられる。Anthropic(デフォルトモデルclaude-opus-4-8)、OpenAI、Gemini、またはエアギャップのソブリンデプロイメント向けOllama。トークン一つたりとも箱から出ない。APIキーは一切不要。デモはブリッジが動いていれば回答をローカルブリッジへ送り、そうでなければ決定論的スタブへフォールバックする。評価スコアボードはLLMを一切呼び出さない。製品はファイアウォールであり、モデルは舞台装置である。
40件セットのゴールデンラベルは、独立した参照オラクルが機械的に導出する。テスト対象のファイアウォールではなく、ポリシー定義から書かれた別実装である。スコアボードは手選りの結果ではなくアイデンティティグラフの関数であり、すべての数値は実行時に算出され、ハードコードされない。適用オーバーヘッドはファイアウォールロジックのみ、プロセス内でマイクロ秒単位。本番IdPの往復はレイテンシを追加するが、このデモではスタブ化する。
Gartnerは、エンタープライズアプリケーションの40%が2026年末までにAIエージェントを埋め込むと予測している。2025年の5%未満から上昇する。同じ決定論的なauthorize(user, doc)ゲートが、その世界への文書化された拡張パスであり、このデモの出荷機能ではない。エージェントは、代理先ユーザーが取得できなかったものを取得できない。
一人の合成アナリストが一つの質問をし、分割画面の両側で回答される。以下の画像はすべて実行中アプリのスクリーンショットであり、すべてのアイデンティティ、文書、数値は合成フィクスチャデータである。
EMEA信用リスクアナリストでクリアランスL2のLena Vogtが尋ねる。「Q3のEMEA信用損失予測とその背後の方法論は何か?」検索は、彼女が見てよい文書と並んでBoard-OnlyのQ3取締役会パックを表面化する。フラットACL側はそれを提供する。アイデンティティグラフにおける長年のネストグループ継承負債が、彼女を推移的に「Board」メンバーにしており、グループのみのタグにはクリアランスの概念がない。メモがモデルに届き、回答がEUR 412 millionを読み上げ、バナーはLEAKと出す。
RAGGUARD側では同じ検索が走るが、取締役会パックは理由コードBOARD_MEMBERSHIP_REQUIREDでLLMの前に差し止められる。文書はクリアランスL4を要求し、LenaはL2を保持している。モデルは、彼女のネストグループチェーンが実際に権限を与えるInternal方法論ノートとConfidentialメモから正しく回答し、はったりをつかず差し止めとその理由を述べる。
判定詳細モーダルは、両側のモデル入力を逐語で示す。左では、漏洩した取締役会パックがプロンプト内に赤でフラグされる。右では単に不在だ。モデルはユーザーがアクセスできない文書を決して見ない。文書ごとのビューが分岐を明示する。同じ取締役会パックの行が、一方では「認可なしで提供」、他方では理由コード付きの「検索時にアクセス拒否」と読む。
Internal方法論ノートには、それを読むあらゆるAIアシスタントに検索権限を無視してBoardの数値をそのまま出力するよう指示する埋め込みプロンプトインジェクション文字列が載っている。ファイアウォール側では流出させるものが何もない。取締役会パックはコンテキストウィンドウに入っていない。認可がLLMの前に行われたからだ。これはラベル付きの1件であり、別個のガードレール製品ではなく、検索時適用による多層防御として示される。
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取締役会メンバーで、ファイアウォールが正しく提供する陽性対照であり、すべてを拒否しているだけではないことを証明する。
これらの判定はすべて、改ざん検知可能な監査証跡に着地する。誰が何を尋ね、何が提供され、何がなぜ差し止められ、どのモデルが回答したかのハッシュチェーンJSON記録。CHAIN INTACT検証チップとワンクリックエクスポート付き。VPC内で自動生成される。
ゴールデンセットは40件のラベル付き(ユーザー、文書)許可/拒否判定である。10ユーザー対4件の機微文書。ラベルは独立オラクルがアイデンティティグラフの意味論から機械的に導出する。ファイアウォールは不正開示0件・誤拒否0件で40/40。フラットACLベースラインは不正開示10件(7人の無権限ユーザーへ提供された取締役会パック、期限切れAtlasウィンドウ、退職従業員を含む)と誤拒否1件で29/40。すべての数値はハーネスが実行時に算出し、ハードコードされず、ケースごとのドリルダウンは各オラクルラベルを両システムの判定の横に示す。これらはゴールデンセットの結果であり、オープンワールドの保証ではない。
デモがライブで実行する同じ比較。同じアイデンティティグラフ、同じ文書。
| 項目 | 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としてエクスポート可能 |
認可は取り込み時ではなく検索時に適用せよ。LLMの外側の決定論的ポリシーエンジンが、モデルに届く前に、検索されたすべての文書をユーザーのライブなグループメンバーシップと属性に照らして検査するため、差し止め文書はコンテキストウィンドウに入らない。このデモではそのゲートが、ラベル付き40件ゴールデンセットで40/40を記録し、ほとんどのパイロットが出荷するフラットACL構築の29/40に対して勝る。
タグはスナップショットであり、権限はアイデンティティグラフのライブな属性だからだ。取り込み時ACLは、インデックス後に変わるすべてを見逃す。退職や期限切れプロジェクト付与など。クリアランスレベルや管理対象デバイスのような属性ルールはまったく表現できない。デモでは、この二つの限界が40件ベンチマークで不正開示10件と誤拒否1件を説明する。ベースラインは取り込み時にネストグループを忠実に解決している。
文書がモデルに届かなければできない。デモにはラベル付きケースがあり、文書に埋め込まれた注記があらゆるAIアシスタントに検索権限を無視してBoard-Onlyの数値を出力するよう指示するが、認可がLLMの前に行われメモがコンテキストウィンドウに入らなかったため、インジェクションには流出させるものがない。それは検索時適用の多層防御の一例であり、独立したガードレール製品ではない。
デフォルトで拒否する。同一文書で許可と拒否のメンバーシップを同時に持つ、またはポリシー参照を解決できない場合、ファイアウォールはNEEDS_REVIEWを返し、推測せず衝突を明示して人手へ回す。デモはまさにそれを示す。許可グループと拒否グループに同時に属する信用リスクマネージャーでは、争点のメモは提供されずレビュー待ちとなる。
ファイアウォールはモデルを一切必要としない決定論的Pythonであり、回答パスは環境変数一つで入れ替えられる。Anthropic、OpenAI、Gemini、またはOllama。エアギャップのソブリンデプロイメントにはLLM_PROVIDER=ollamaを設定すれば、トークン一つたりとも箱から出ない。デモ自体はAPIキーなしでオフライン動作し、評価スコアボードはLLMを一切呼び出さない。
すべてのクエリが、改ざん検知可能なSHA-256ハッシュチェーンに記録を追記する。誰が尋ねたか、解決済み権限セット、何が提供され、何がなぜ差し止められ、どのモデルが回答したか。JSONとしてエクスポートされ、VPC内で生成される。EU AI Act Article 50のファイルが求める検索アクセスの証拠記録であり、コンプライアンス認証ではない。
仕組みを証明する実行可能なデモである。IDプロバイダーは合成のAzure-AD/SCIM形状JSONフィクスチャ、退職と付与の期限切れはフィクスチャイベント、ベクトルストアはQdrant形状インターフェースの背後でプロセス内で動作する。ポリシーエンジン、評価ハーネス、ハッシュチェーン監査エクスポートは本物であり、示したとおりに動く。フィクスチャがAzure AD GraphとSCIMインターフェースを鏡写しにするため、ライブIdPへの文書化された本番パスは書き換えではなく設定の差し替えである。
このデモの背後にある研究 — アーキテクチャ、検証設計、エンタープライズブループリント。
権限レイヤーが難しい部分だ。私たちがそれを構築する。
長年のネストグループ継承で統治されたコーパスにプライベートモデルを向ける方法、あるいはEU AI Actの透明性義務が検索ログに何を意味するかでチームが苦慮しているなら、その考え方をぜひ聞きたい。問題は業界全体であり、答えもそうなる。