AWS認定資格 WEB問題集&徹底解説
生成AIデベロッパー-プロフェッショナル
問題文と選択肢
開発者は、若手研究者がナレッジベースを検索した際、そのクエリに意味的に関連していたとしても「規制対象」文書からの抜粋を技術的に取得できないようにする必要がある。
なお、資料は今後も単一のリポジトリと単一のナレッジベースで一元管理し、権限区分が増えてもデータソースやベクトルインデックスを分割せずに対応できることが条件である。
この要件を満たす実装はどれか。
- 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呼び出しに注入する
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 のコンテキストグラウンディングチェックが正解軸に。 |
リファレンス
この問題を解くために必要な知識を扱う公式ドキュメントです。| 知識項目 | 公式ドキュメント |
|---|---|
| Knowledge Bases のクエリ時メタデータフィルタリング(filter 演算子) | クエリとレスポンスの生成を設定してカスタマイズする - Amazon Bedrock |
開発者は、若手研究者がナレッジベースを検索した際、そのクエリに意味的に関連していたとしても「規制対象」文書からの抜粋を技術的に取得できないようにする必要がある。
なお、資料は今後も単一のリポジトリと単一のナレッジベースで一元管理し、権限区分が増えてもデータソースやベクトルインデックスを分割せずに対応できることが条件である。
この要件を満たす実装はどれか。
- 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呼び出しに注入する
次の問題前の問題
会員機能
お役立ち情報
- プレミアム会員のご紹介
- 「徹底解説」のご紹介
- 「模擬試験」のご紹介
- 収録問題と試験ガイドの対応
- 会員機能のご紹介
- おすすめの勉強方法
- AWSサービスの解説
- AWS認定資格の種類・対象者・受験料・合格ライン
- スマホのホーム画面に登録する方法
姉妹サイト
- CLF:AWS 認定クラウドプラクティショナー
- SAA:AWS 認定ソリューションアーキテクト-アソシエイト
- AIF:AWS 認定AIプラクティショナー
- SOA:AWS 認定CloudOpsエンジニア-アソシエイト
- DVA:AWS 認定デベロッパー-アソシエイト
- DEA:AWS 認定データエンジニア-アソシエイト
- MLA:AWS 認定機械学習エンジニア-アソシエイト
- SAP:AWS 認定ソリューションアーキテクト-プロフェッショナル
- DOP:AWS 認定DevOpsエンジニア-プロフェッショナル
- AIP:AWS 認定生成AIデベロッパー-プロフェッショナル
- SCS:AWS 認定セキュリティ-専門知識
- AZ-900:Microsoft Azure Fundamentals
- AI-900:Microsoft Azure AI Fundamentals