Amazon FSx for NetApp ONTAP Advent Calendar 2025 1日目の記事です。
こんにちは。NetAppでSales Specialistをしている小寺です。
初日は、ONTAPファイルサーバのアクセス権をBedrock Agentで設定してみた(前編)と題して3本立てのシリーズ1本目をお届けします。
前編:Permission Aware型RAGのコンセプトとアーキテクチャ
背景
まずは背景としてなぜ本PoCへ取り組んでいるのかをお伝えしたいと思います。
今回の元となるデータは「ONTAP」ファイルサーバで、権限に応じたアクセス権が設定されていることを前提としています。
2024年度は研究データのフォルダ構造とACL(Permission)がクラウド側に継承されることを実証実験を通して確認し、安全なRAGを実現してきました。
昨年度の取り組みはAWSブログから。
今年度は、AIエージェントを「次世代の研究データマネージャー」として以下の内容に取り組んでいます。
・ACL設定の自動化
・権限の推奨設定
・不整合の検出
今回はONTAPに保存されたデータの「ACL設定」の自動化を試してみた結果について、お伝えします。
全体アーキテクチャ
今回のアーキテクチャです。生成AIと権限評価を組み合わせたRAGを構築します。

Amazon Bedrock Agent
自然言語での質問に応答するAIエージェント。Action Groupを組み合わせ、ACL情報を参照しながら回答を生成。
AWS Lambda
Bedrock AgentのActionから呼び出され、ACLチェックや権限フィルタリングを実行。
AWS Systems Manager (SSM)
LambdaからEC2への安全なコマンド実行を可能にし、ACL情報を取得/ACL設定を行うPythonスクリプトを起動。
Amazon S3
取得したACLログを保存し、検索対象として利用。
権限伝播設計
ユーザーの権限情報は、Active Directorから取得しています。
流れとしては、Bedrock Agentがユーザ属性を受け取り、質問処理時にAction Groupへ渡します。
Action(Lambda)として、取得してきてS3に保管したACLログを参照し、ユーザーがアクセス可能なパスのみを検索対象にするPre-filterを適用しました。生成後にはPost-filterで回答を再検証し、権限外情報を要約または拒否メッセージに置換しています。
セキュリティ設計
元々機微なデータをクラウドで扱いたいということからスタートした実証実験のため、セキュリティ設計で重視したポイントについてもお伝えします。
一つ目はPrePre-filter及びPost-filterで過剰開示を抑制することです。
Pre-filter(検索前フィルタ)とは
ONTAPに保管されたデータのアクセス権を自然言語で質問する際に、検索対象を「ユーザーがアクセス可能な範囲」に限定することで、そもそも権限外の情報を検索結果に含めていません。
仕組みとしては、ユーザーの属性であるSIDを利用します。
principalがアクセス可能なパス一覧を取得し、ベクトル検索やキーワード検索の対象を、このアクセス可能パスに絞り込みます。
効果としては、検索段階で権限外データを排除するため、生成AIが誤って過剰開示するリスクを大幅に低減できる見込みです。
Post-filter(生成後フィルタ)とは
生成AIがアクセス権限の回答に含めた情報を再検証し、権限外の情報を要約や拒否メッセージに置換しています。
Bedrock AgentのAction Groupで「回答候補に含まれるフォルダのパス」を抽出します。
Lambdaで再度ACLチェックを実施し、権限外なら「概要のみ」や「アクセス権がありません」と返すようにしました。
効果としては、プロンプト攻撃やモデルの幻覚で権限外情報が混入した場合でも、最終回答でブロック可能になる見込みです。
その他のセキュリティ設計では、FSx for ONTAPでの機能である2つの機能の活用です。
異常動作時のバックアップ
ARP(Autonomous Ransomware Protection)を有効化することで、不審なI/Oパターンを検知し、自動Snapshot発行を行うことでデータ保護が可能になる点です。
ARPを活用することで、ランサムウェアの被害を受けた場合でも、スナップショットからデータを迅速に復旧できます。
また今回のPoCではオンプレミスとのデータ連携部分は省略していますが、あくまでオリジナルデータがオンプレミスに存在するため、元のデータは不変です。
悪意ある操作防止
Volume削除や重大操作はONTAPの「SnapLock」で防止することができます。
SnapLockは指定した期間、ファイルの変更・削除を不可にする「WORM(Write Once, Read Many)」保護機能です。これにより、規制要件への準拠、ランサムウェア攻撃からのデータ保護、意図しないデータの改ざん防止に役立ちます。
ユースケース
今回のPoCでは「Taroがアクセスできるフォルダは?」と自然言語で質問すると、AIがACL評価と根拠としてフォルダパスを提示してくれます。
フォルダ名からアクセスできるユーザを回答することも将来的には検証予定です。
その際に、質問する人の属性に応じて管理者であればアクセスできるユーザを全て回答する、管理者以外でフォルダアクセス権がないユーザには回答不可で応答するなどの仕組みが取り入れられればと思います。
また、権限管理のAI支援として、エージェントからアクセス権の付与ができるようにしています。
実装の詳細は、この後の中編、後編にてお伝えいたします!
以上、お読みいただきありがとうございます。
次の中編では「FSx for ONTAP × Lambda/SSM × ACLログ — 収集と前処理の実装」についてお届けします!
参考情報

