無限ノック › DEA 練習問題一覧 › 問題
DEAデータのセキュリティとガバナンス

ある小売企業は全国の販売データを Amazon Redshift の sales テーブルに統合管理しています。各地域の営業マネージャーは担当地域のデータのみ参照でき、他地域のデータは一切見えない必要があります。テーブル設計を変更せず、ユーザー属性に基づく行単位の参照制御をデータベース内で完結させる最も適切な方法はどれですか?

A
担当地域のデータのみを返す地域別ビューを Redshift に作成し、各営業マネージャーのデータベースロールに対応するビューへの参照権限を GRANT してテーブルへの直接アクセスを禁止する
地域別ビューで担当データのみを見せることは可能ですが、地域が増えるたびにビューを新規作成して権限を付与し直す必要があります。ユーザー属性に連動した動的なアクセス制御ではなく、スケーラビリティに欠ける静的な設計です。
B
Amazon Redshift の行レベルセキュリティ(RLS)ポリシーを定義してユーザー属性に基づく地域フィルター条件を記述し、sales テーブルにアタッチすることで行単位の参照制御を実現する
✓ 正解
Redshift ネイティブの RLS 機能を使い、CREATE RLS POLICY でユーザー属性に基づくフィルター条件を定義して sales テーブルにアタッチするだけで行単位の制御を実現します。テーブル設計を変更せずデータベース内で完結し、要件を最もシンプルかつスケーラブルに満たす構成です。
C
AWS Lake Formation の行レベルフィルターを Redshift Spectrum の外部テーブルに適用して Spectrum 経由でのみアクセスさせ、ローカルテーブルへの直接接続を IAM ポリシーで制限する
Lake Formation の行レベルフィルターを Redshift Spectrum 外部テーブルに適用すること自体は技術的に可能ですが、既存のローカル sales テーブルを Spectrum 外部テーブルへ移行する必要があります。テーブル設計を変更しないという要件に反し、Lake Formation・Spectrum の追加構成も必要で複雑です。
D
Amazon Redshift の動的データマスキングポリシーを作成して地域列の値をハッシュ化し、担当外のユーザーには実際の地域名を識別できないようにすることで参照制御として機能させる
動的データマスキングは指定列の値を別の値やハッシュに置換する機能であり、行そのものを非表示にする行レベルフィルタリングとは本質的に異なります。地域列をハッシュ化しても担当外地域の行は参照できてしまい、アクセス制御として機能しません。

解説

Amazon Redshift の行レベルセキュリティ(RLS)は、テーブルへのアクセス時にユーザーの属性(セッション変数や current_user など)に基づいてフィルタリング条件を自動適用するデータベースネイティブ機能です。CREATE RLS POLICY でフィルター条件を定義し、ATTACH RLS POLICY ON テーブル TO ロール でアタッチするだけで、ビューや別テーブルを作成せずに行単位のアクセス制御が実現できます。ユーザーは自分が参照権限を持つ行のみを受け取り、他の行の存在も認識できません。テーブル設計を変更せずデータベース内で完結するため、要件に最も適した構成です。 選択肢Aの地域別ビューは機能しますが、地域が増えるたびにビューを新規作成・管理する必要があり、スケーラビリティに欠けます。 選択肢CのAWS Lake Formation の行レベルフィルターを Redshift Spectrum 外部テーブルに適用すること自体は技術的に可能ですが、既存のローカル sales テーブルを Spectrum 経由の外部テーブルへ移行する必要があります。これは「テーブル設計を変更せず」という要件に反するほか、Lake Formation と Spectrum の追加構成が必要で Redshift RLS よりも複雑な実装となります。 選択肢DのAmazon Redshift の動的データマスキングは列の値を変換・隠蔽する機能であり、行単位で異なるユーザーに異なるデータセットを返す行レベルフィルタリングとは目的が根本的に異なります。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDEAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DEA の問題一覧に戻る