マルチテナントLLM分析における行レベルセキュリティ:AWS上でのセキュアエージェント構築戦略
セキュアなマルチテナントLLM分析エージェントの必要性
現代のビジネス環境において、多様な顧客基盤を持つ企業は、自己サービス型分析の需要に応えるために、自然言語によるテキスト-to-SQLエージェントの構築を模索しています。しかし、この取り組みは、特にマルチテナント環境において複雑なセキュリティ課題を伴います。数千ものユーザーがそれぞれのビジネス、データセット、アクセス権限を持つ中で、単に正確なSQLを生成するだけでなく、**「適切なユーザーに対して、適切なデータのスライスに限定した、適切なSQLを常に生成する」**という課題に直面します。この課題は、大規模なデータアクセス、正確性、そしてセキュリティの交差点に位置し、クロス・テナントのデータ漏洩を防ぐための堅牢なメカニズムが不可欠となります。アプリケーション層でのフィルタリングのみに依存することはリスクが高く、データベースレベルでの厳格な隔離が求められます。
3層アーキテクチャによる行レベルセキュリティの実装
この複雑な課題に対し、PAR Technology Corporationは、AWS上に3層アーキテクチャを導入することで、本番環境に対応したマルチテナントLLM分析システムを構築しました。このアーキテクチャは、LLM自体が侵害または操作された場合でも、クロス・テナントのデータ露出リスクを低減することを目指しています。
-
AWS SigV4による暗号化されたリクエスト署名: この層では、すべてのリクエストが暗号化によって署名され、認証および認可が行われます。これにより、リクエストが正当なソースから発信されたものであることを保証し、不正なアクセスを防ぎます。
-
Amazon Bedrock上でのセマンティック検証: Amazon Bedrockは、自然言語クエリと生成されたSQLの両方を検証する役割を担います。これにより、クエリがビジネスルールとテナントのコンテキストに合致していることを確認し、意図しないデータアクセスや不適切なSQL生成を抑制します。
-
Split-Plane SQLを介したプログラムによるデータ分離: 最も重要なセキュリティ層であるこのメカニズムは、データベースレベルで行レベルセキュリティを強制します。これにより、ユーザーは自身がアクセスを許可されているデータのみに厳格に制限され、テナント間のデータ分離が物理的に保証されます。このアプローチは、アプリケーション層やLLM層のセキュリティが破られた場合でも、最終的なデータ分離を維持するフェイルセーフとして機能します。
この3層の独立した連携により、システム全体のセキュリティ耐性が向上し、大規模なマルチテナント環境においてもデータプライバシーが維持されます。
Amazon Bedrock AgentCoreとModel Context Protocol (MCP) の活用
AWSは、このようなセキュアなマルチテナントAIエージェントの構築を支援するためのサービスとパターンを提供しています。特に、Amazon Bedrock AgentCoreは、セキュアでスケーラブルなマルチテナントエージェントワークフローを構築するためのランタイム、ゲートウェイ、メモリ、アイデンティティ、オブザーバビリティの統合コンポーネントを提供します。
Model Context Protocol (MCP) サーバーは、データとアクションを標準プロトコルを介してツールとして公開する再利用可能なパターンであり、厳格なテナントごとの分離がモデルの下で強制されます。これにより、ソリューションはLLMに依存しないものとなります。Amazon Bedrock AgentCore Gatewayは、既存のLambda関数やAPIをMCPツールに変換し、エンドポイントをホストし、インバウンドのIDを検証し、インターセプターを実行するマネージドな方法を提供します。
具体的な実装ステップとしては、以下のようになります。
-
ツールの構築: 各ツールをLambda関数として実装し、テナントパラメーターを持たせないようにします。
-
テナントクレームを含むトークンの発行: CognitoのようなIDプロバイダーでカスタム属性 (例:
custom:tenant) を設定し、各ユーザーに割り当てます。 -
AgentCore GatewayでのMCPサーバーホスティング: CUSTOM_JWTオーソライザーを設定したGatewayを作成し、ツールLambdaをターゲットとして追加します。
-
リクエストインターセプターによる分離の強制: GatewayのインターセプターはJWTクレームを受け取り、テナントコンテキストに基づいてデータアクセスを制限するロジックを実装します。これにより、プロンプトやクライアントが境界を越えることを防止します。
-
任意のクライアント接続: 上記の設定により、さまざまなAIクライアントがセキュアなMCPサーバーに接続できるようになります。
さらに、Attribute-Based Access Control (ABAC) ポリシーをAWS Identity and Access Management (IAM) と共に使用することで、プリンシパルタグと属性に基づいてデータアクセスを制限し、行レベルセキュリティを通じてエージェントがテナントのコンテキストに一致するリソースのみをクエリできるようにします。
開発者・エンジニア視点での考察
-
データベース主導のRLSの優位性: アプリケーション層のフィルタリングやLLMの安全対策だけに依存することは、真のマルチテナンシー環境では不十分です。Split-Plane SQLやネイティブなデータベースRLS機能など、データベース層で直接RLSを実装することは、LLMやアプリケーションロジックが侵害された場合でも、堅牢でフェイルセーフなデータ分離メカニズムを提供します。
-
LLMエージェントのためのモジュール型セキュリティアーキテクチャ: 認証、セマンティック検証、データ分離といった異なる層にセキュリティ機能を分解することで、システムの回復力を高めることができます。各層が独立した制御プレーンとして機能することで、生成AIアプリケーションにおける多様な攻撃ベクトルに対して、多層防御の堅牢なアプローチを可能にします。
-
マネージドサービスを活用した基盤セキュリティの構築: Amazon Bedrock AgentCore Gateway、AWS SigV4、ABACポリシーを備えたIAMといったAWSマネージドサービスを利用することは、高度なマルチテナントセキュリティを実装する際の運用オーバーヘッドと複雑性を大幅に削減します。これにより、開発者はコアとなるエージェントロジックの構築に注力でき、セキュリティのプリミティブを再発明する必要がなくなります。
Source / 元記事
この記事について
この記事は、公開されているニュース、論文、公式発表、RSSフィードなどをもとに、AIが要約・補足調査・考察を行って作成しています。
元記事の完全な翻訳・逐語的な要約ではなく、AIによる背景説明や開発者向けの考察を含みます。
重要な技術仕様・価格・提供状況などは、必ず元記事または公式情報をご確認ください。


