DEAデータのセキュリティとガバナンス
ある金融サービス企業の Amazon Redshift クラスターには、クレジットカード番号・口座番号・社会保障番号を含む顧客テーブルがあります。データアナリストはこのテーブルを分析に使用する必要がありますが、完全な PII(個人識別情報)を閲覧する権限は持たせたくありません。アナリストには「****-****-****-1234」のようにマスクされた値のみを返し、権限を持つデータエンジニアには完全な値を返す仕組みを、元テーブルのデータを複製せずに実現したいと考えています。最も適切な方法はどれですか?
Aマスク済みデータのみを含む別テーブルを作成し、アナリストには元テーブルへのアクセスを禁止してマスクテーブルのみを参照させる
マスク済みの別テーブルを作成するアプローチはデータの重複管理が必要になり、元テーブル更新がマスクテーブルにリアルタイムで反映されない整合性リスクもある。問題文で明示された「データを複製せずに」の要件を満たせない。
BAmazon Redshift の動的データマスキング(Dynamic Data Masking)ポリシーを作成し、アナリストのロールに割り当てる
✓ 正解
RedshiftのDDMはクエリ実行時に呼び出し元ロールに基づいてカラム値を動的にマスクする機能。元データを変更せず同一テーブルからロール別に異なる結果を返す。コード変更不要でデータ複製も発生せず、要件をすべて満たす。
CAWS Glue ETL ジョブでテーブルデータを変換・マスクして Amazon S3 に出力し、Amazon Athena でアナリストに参照させる
Glue ETL+Athenaの構成はRedshiftのデータをS3に出力するためアーキテクチャが複雑化し、データ複製が発生する。「データを複製せずに」の要件に反するうえ、Redshiftからのデータ移行コストや複雑さも生じる。
DAmazon Redshift の行レベルセキュリティ(Row-Level Security)ポリシーを作成してアナリストが参照できる行を制限する
RedshiftのRLSは特定条件の行を表示・非表示にする行レベルアクセス制御機能。カラム値を「****-1234」のように部分的にマスクする列レベルのデータ変換要件には対応しておらず、本問の要件を満たせない。
解説
Amazon Redshift の動的データマスキング(Dynamic Data Masking / DDM)は、クエリ実行時に呼び出し元のロールに基づいてカラム値を動的にマスクする機能です。元データは変更せず、同じテーブルに対するクエリ結果を権限に応じて変換して返します。MASK_FIRST_N や MASK_PARTIAL などの組み込みマスク関数を使用して、アナリストロールにはマスクポリシーを適用し、データエンジニアロールにはフルアクセスを維持できます。データ複製が不要で、単一テーブルからロール別に異なるビューを提供できます。
選択肢Aのマスク済み別テーブル作成アプローチは、データの重複管理が必要になり、元データの更新がマスクテーブルに反映されないリスクがあります。「データを複製せずに」という要件を満たしません。
選択肢CのAWS Glue ETL + Amazon Athena アプローチは、Redshift のデータを S3 に出力するためアーキテクチャが複雑になり、「データを複製せずに」の要件にも反します。
選択肢DのAmazon Redshift 行レベルセキュリティ(RLS)は行単位のアクセス制御であり、特定の行を表示/非表示にする機能です。カラム値を部分的にマスクする要件には対応していません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDEAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →