Azure SQL Database の動的データマスク(DDM)で機密データを保護する

Azure SQL Database に顧客テーブルを作り、メールやクレジットカード番号などの列に動的データマスク(DDM)を適用する。マスク対象外の管理者と、マスクされる一般ユーザーで同じクエリの結果がどう変わるかを実際に確かめる。

中級75Azure 実環境

ラボ概要

サポート担当者が顧客の問い合わせ画面を開いたとき、画面にクレジットカード番号がそのまま表示されてよいだろうか。多くの業務では「データは見えてほしいが、機密の中身までは見せたくない」という中間の要求がある。アプリ側で列を出し分ける実装はバグも漏れも生みやすい。

動的データマスク(Dynamic Data Masking, DDM)は、この出し分けをデータベース側に寄せる仕組みだ。テーブルの実データは一切変えず、クエリ結果が返る瞬間にだけ指定した列を覆い隠す。誰に見せるかは権限で制御し、UNMASK を持つ管理者には素のデータが、持たない一般ユーザーにはマスクされた値が返る。

ここでは Azure SQL Database に顧客テーブルを作り、メール・電話・クレジットカード・給与の各列に種類の違うマスク関数を当てていく。仕上げに低権限ユーザーを 1 つ用意し、同じ SELECT が権限によって別の結果を返す様子を、ポータルのクエリ エディターと Cloud Shell の sqlcmd の両方で観察する。

DDM は深層防御の一層であって暗号化の代替ではない、という距離感も最後に確認する。学習者は Contributor 相当の一時ユーザーでサインイン済みで、リージョンは japaneast、単一のリソースグループ内で作業する。

ラボの構成

  1. 1SQL サーバーと SQL Database を作成する
  2. 2サンプルの顧客テーブルを作る
  3. 3列にマスクルールを適用する
  4. 4マスクされる一般ユーザーを作って見え方を比べる
  5. 5Cloud Shell の sqlcmd でも同じ差を確認する(任意)
  6. 6動作確認
  7. 7後片付け

詳細な手順は、ラボ開始後に画面内のガイドとして表示されます。

構成図

構成図

参考リソース

このラボが対応する試験の模擬問題集

本番形式の問題で理解度を確認できます。各試験とも先頭 15 問は無料です。

DP-300Azure Database Administrator練習テスト 2 回・全 160