AWS認定資格 WEB問題集&徹底解説

生成AIデベロッパー-プロフェッショナル

正解 D問題
分野3:AI の安全性、セキュリティ、ガバナンス 分野1:基盤モデルの統合、データ管理、コンプライアンス タスクステートメント3.2:データセキュリティとプライバシー制御の実装 タスクステートメント1.4:ベクトルストアソリューションの設計と実装
合格に向けて、もっと深く学習する
豊富な問題と詳細なAWSサービス解説を、24時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
ある大学の先端素材研究所は、Amazon Bedrock Knowledge Basesを用いて内部の研究資料を検索するRAGアプリケーションを構築している。資料リポジトリには、全研究者が閲覧できる「一般」技術ノートと、輸出管理規制の対象となり許可された上級研究者のみが閲覧できる「規制対象」の実験データが混在する。ドキュメントはAmazon S3に格納され、Amazon OpenSearch Serviceのベクトルストアにインデックスされている。

開発者は、若手研究者がナレッジベースを検索した際、そのクエリに意味的に関連していたとしても「規制対象」文書からの抜粋を技術的に取得できないようにする必要がある。
なお、資料は今後も単一のリポジトリと単一のナレッジベースで一元管理し、権限区分が増えてもデータソースやベクトルインデックスを分割せずに対応できることが条件である。

この要件を満たす実装はどれか。
  • bedrock:Retrieveアクションに対するIAMポリシーを作成し、リソースARNの条件で「規制対象」ドキュメントのIDプレフィックスを指定して拒否する。IAMが個々の検索結果チャンクを評価し、規制対象文書に該当する抜粋だけを応答から自動的に除外すると想定する
  • 「一般」用と「規制対象」用の2つのKnowledge Baseに資料を分離する。アプリケーションロジックで利用者の役職を判定し、上級研究者である場合のみ「規制対象」のKnowledge Baseを呼び出す
  • Amazon Bedrock Guardrailsを使用する。RetrieveAndGenerate API呼び出しに機微情報フィルタを備えたガードレールを適用し、実験データに関連するキーワードを検出して最終応答から規制対象のテキストをredactionする
  • メタデータフィルタリングによるアクセス制御リスト(ACL)を実装する。取り込み時に各ドキュメントへallow_group属性を付与してタグ付けし、検索時には利用者のグループに基づくメタデータフィルタ(例:filter:{"allow_group":"junior"})をRetrieve API呼び出しに注入する
解説 頻出度★★★★
この問題は、「単一のナレッジベース × 文書単位のアクセス制御 × 権限区分の増加に耐える」の要件で、取り込み時のメタデータ付与と検索時のメタデータフィルタという RAG の定石を選べるかがポイント

A. bedrock:Retrieveアクションに対するIAMポリシーを作成し、リソースARNの条件で「規制対象」ドキュメントのIDプレフィックスを指定して拒否する。IAMが個々の検索結果チャンクを評価し、規制対象文書に該当する抜粋だけを応答から自動的に除外すると想定する

IAM が評価できるのは API 呼び出しとリソース(ナレッジベースやデータソース)の単位までで、検索結果として返る個々のチャンクの中身を見て取捨選択する仕組みはありません。
bedrock:Retrieve に対するポリシーで拒否できるのは「そのナレッジベースを検索できるか否か」であり、同一ナレッジベース内の文書を選り分けることはできないのです。
選択肢自身が「〜と想定する」と書いているとおり、存在しない挙動を前提にしており実装できません。

B. 「一般」用と「規制対象」用の2つのKnowledge Baseに資料を分離する。アプリケーションロジックで利用者の役職を判定し、上級研究者である場合のみ「規制対象」のKnowledge Baseを呼び出す

ナレッジベースを分けてしまえば取得はできなくなりますが、単一のリポジトリと単一のナレッジベースで一元管理するという条件に反します。
権限区分が「一般/規制対象」の2つで固定なら成立しても、部門やプロジェクト単位で区分が増えるたびにナレッジベース・ベクトルインデックス・同期ジョブが増殖し、取り込みコストと運用負荷が線形に増えていきます。
アクセス判定をアプリ側の分岐に委ねる点も、選択肢 D と比べて優位性がありません。

C. Amazon Bedrock Guardrailsを使用する。RetrieveAndGenerate API呼び出しに機微情報フィルタを備えたガードレールを適用し、実験データに関連するキーワードを検出して最終応答から規制対象のテキストをredactionする

Amazon Bedrock Guardrails の機微情報フィルタは、PII やカスタム正規表現エンティティを対象に最終応答をブロック/マスクする出口側の制御です。
この方式では規制対象文書の検索そのものは実行されており、キーワードに引っかからない記述はそのまま応答に残るため「取得できないようにする」という要件を満たしません。
実験データを言い当てるキーワードを網羅し続ける運用も現実的ではなく、輸出管理規制の統制としては不十分です。

正解

D. メタデータフィルタリングによるアクセス制御リスト(ACL)を実装する。取り込み時に各ドキュメントへallow_group属性を付与してタグ付けし、検索時には利用者のグループに基づくメタデータフィルタ(例:filter:{"allow_group":"junior"})をRetrieve API呼び出しに注入する

Amazon Bedrock Knowledge Bases は、取り込み時にドキュメントへ付与したメタデータ属性を使い、Retrieve / RetrieveAndGenerate の retrievalConfiguration.vectorSearchConfiguration.filter でベクトル検索そのものを絞り込めます(equals・in・notIn などの演算子が利用可能)。
フィルタ条件に合わないチャンクはそもそも検索対象から外れるため、意味的にどれだけ近くても規制対象文書の抜粋が返ることはありません。
ナレッジベースは1つのまま、属性値を増やすだけで権限区分の追加に対応できるので、条件をすべて満たす唯一の実装です。

構成図

Amazon S3(一般/規制対象が混在)
   │ 取り込み時に allow_group 属性を付与
   ▼
Knowledge Base(OpenSearch ベクトルインデックス)
   ▲ filter(allow_group=junior)を注入
   │
若手研究者のクエリ → アプリ(利用者グループを判定)
   ▲
   └─ 「一般」文書のチャンクだけが返る
これだけ覚える(記憶フック)
RAG の文書単位アクセス制御はメタデータフィルタ。IAM はチャンクを見ない、Guardrails は出口の話。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
クエリに意味的に関連していても規制対象文書の抜粋を返さない 応答を後から削るのではなく検索段階で候補から外す必要がある。ベクトル検索へ条件を渡せるのはメタデータフィルタ
→選択肢(D)が正解
単一のリポジトリ・単一のナレッジベースで一元管理する ナレッジベースを権限区分ごとに分ける構成は条件違反。区分が増えるほどインデックスと同期ジョブが増殖する
→選択肢(B)を消す
文書(チャンク)単位で取得可否を制御する IAM の粒度はAPI とリソース ARN までで、検索結果チャンクの中身は評価しない
→選択肢(A)を消す
輸出管理規制への準拠(漏れが許されない) キーワード検出による出力の秘匿は取りこぼしが前提。しかも検索自体は実行されている
→選択肢(C)を消す
権限区分が増えても実装を作り直さない 取り込み時の属性値を増やし、検索時のフィルタ条件を変えるだけで拡張できる
→選択肢(D)が正解
ひっかけポイント
  • 選択肢 A は「IAM が個々の検索結果チャンクを評価すると想定する」と書いている。存在しない挙動を前提にした選択肢で、こう書かれていたら真っ先に疑う
  • 選択肢 B は一見すると最も確実な分離に見えるが、設問の「単一のナレッジベースで一元管理」「分割せずに権限区分の増加へ対応」という条件を読み落とすと引っかかる
  • Guardrails は強力だが出口(応答)の制御であり、検索そのものを止められない。「検索されたうえで隠す」と「そもそも検索しない」の違いが本問の分かれ目
  • メタデータフィルタは取り込み時のタグ付けとセット。取り込み後に属性を足しても、再同期しなければインデックスには反映されない
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「規制対象文書は別リージョン・別データソースで完全に隔離せよという監査要件がある」 ナレッジベースを分離する構成(選択肢 B の方式)が正解に転じる。
「回答に含まれる氏名やメールアドレスを伏せ字にしたい Guardrails の機微情報フィルタが正解軸に。文書単位の制御とは目的が異なる。
ナレッジベース自体を呼べるユーザーを限定したい」 IAM ポリシー(bedrock:Retrieve のリソース指定)で足りる。粒度がナレッジベース単位なら IAM の出番。
「利用者の所属を IdP のグループから自動で反映させたい」 Amazon Cognito / IAM Identity Center のクレームをアプリで読み、フィルタ値へマッピングする設計が問われる。
「RAG の回答が参照文書に基づいているか検証したい」 Guardrails のコンテキストグラウンディングチェックが正解軸に。
関連サービスの解説 Amazon Bedrock
Amazon OpenSearch Service
Amazon Simple Storage Service (Amazon S3)
リファレンス この問題を解くために必要な知識を扱う公式ドキュメントです。
知識項目 公式ドキュメント
Knowledge Bases のクエリ時メタデータフィルタリング(filter 演算子) クエリとレスポンスの生成を設定してカスタマイズする - Amazon Bedrock
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 0%
No.17 解説
ある大学の先端素材研究所は、Amazon Bedrock Knowledge Basesを用いて内部の研究資料を検索するRAGアプリケーションを構築している。資料リポジトリには、全研究者が閲覧できる「一般」技術ノートと、輸出管理規制の対象となり許可された上級研究者のみが閲覧できる「規制対象」の実験データが混在する。ドキュメントはAmazon S3に格納され、Amazon OpenSearch Serviceのベクトルストアにインデックスされている。

開発者は、若手研究者がナレッジベースを検索した際、そのクエリに意味的に関連していたとしても「規制対象」文書からの抜粋を技術的に取得できないようにする必要がある。
なお、資料は今後も単一のリポジトリと単一のナレッジベースで一元管理し、権限区分が増えてもデータソースやベクトルインデックスを分割せずに対応できることが条件である。

この要件を満たす実装はどれか。
  • bedrock:Retrieveアクションに対するIAMポリシーを作成し、リソースARNの条件で「規制対象」ドキュメントのIDプレフィックスを指定して拒否する。IAMが個々の検索結果チャンクを評価し、規制対象文書に該当する抜粋だけを応答から自動的に除外すると想定する
  • 「一般」用と「規制対象」用の2つのKnowledge Baseに資料を分離する。アプリケーションロジックで利用者の役職を判定し、上級研究者である場合のみ「規制対象」のKnowledge Baseを呼び出す
  • Amazon Bedrock Guardrailsを使用する。RetrieveAndGenerate API呼び出しに機微情報フィルタを備えたガードレールを適用し、実験データに関連するキーワードを検出して最終応答から規制対象のテキストをredactionする
  • メタデータフィルタリングによるアクセス制御リスト(ACL)を実装する。取り込み時に各ドキュメントへallow_group属性を付与してタグ付けし、検索時には利用者のグループに基づくメタデータフィルタ(例:filter:{"allow_group":"junior"})をRetrieve API呼び出しに注入する

(会員限定)当問題の評価をお願いします。改善に活用します。