【正解】C
【0からの解説】
要件は「Redshift に保存済みの顧客データ(PII を含む)に対して、チームごとに『同じ列でも見せ方を変える』(あるチームには平文、別チームには難読化/マスク)を最小管理で実現する」ことです。これに最適なのが Amazon Redshift の
動的データマスキング(Dynamic Data Masking, DDM)+データベースロール です。
動的データマスキングでは、列に対してマスキングポリシーを定義し、それを「ロール(チーム)」単位でアタッチできます。同じ列でも、適用されたポリシーに応じてユーザーごとに平文・部分マスク・完全マスクなど異なる結果を返せます。たとえばマーケティングロールには連絡先は平文・クレームは難読化、分析ロールには PII を難読化、といったポリシーをロールに割り当てるだけで要件を満たせます。
この方式は、データを複製したり大量のビューを作ったりせず、既存の 1 つのテーブルに「ロール × マスキングポリシー」を設定するだけなので管理オーバーヘッドが最小です。よって C が正解です。
【誤りの選択肢】
A:チームごとに別クラスターを立て、必要データだけをロードする方法は、複数クラスターの運用・データ複製・整合性管理が必要で管理負荷が非常に高くなります。
B:ビューを要件ごとに作って付与する方法も実現は可能ですが、難読化のロジックや細かな要件が増えるほどビューの数と保守が膨らみます。列単位でロールごとに見せ方を変える動的データマスキングの方が、ビュー乱立を避けられ管理が容易です。
D:データを S3 へ移して Lake Formation で制御する案は、Redshift にすでにデータがある前提で、わざわざデータを別のストアへ移行・複製する大掛かりな変更が必要となり、管理オーバーヘッドが大きく「最小」の要件に反します。Redshift 内で完結する C が適切です。
【参考】
Amazon Redshift の動的データマスキングAmazon Redshift のロールベースアクセス制御(RBAC)