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

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

中級約 75 分Azure 実環境

ラボ概要

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

動的データマスク(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後片付け

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

手順のプレビュー(最初のステップ)

> このラボのリソースはすべて japaneast に、割り当て済みの単一リソースグループ内で作成します。新しいリソースグループは作らないでください。

1. SQL サーバーと SQL Database を作成する

Azure Portal 上部の検索ボックスに「SQL データベース」と入力し、SQL データベース を開いて + 作成 をクリックします。

「基本」タブで次のように設定します。

  • リソースグループ: 割り当て済みのリソースグループを選択
  • データベース名: maskdemo
  • サーバー: 新規作成 をクリックし、次を入力
- サーバー名: ddm-<好きな英数字>(全世界で一意。例 ddm-7k3x9a)

- 場所: (Asia Pacific) Japan East

- 認証方法: SQL 認証を使用する

- サーバー管理者ログイン: sqladmin

- パスワード: 強力なパスワードを設定し、必ず控える(後の sqlcmd で使います)

- OK をクリック

  • SQL エラスティック プールを使用しますか?: いいえ
  • ワークロード環境: 開発
コンピューティングとストレージ の データベースの構成 をクリックします。サービスレベルで Basic を選び(または Standard の S0)、適用 します。料金と作成時間を抑えるためにこの小さい SKU を使います。

「ネットワーク」タブに進みます。

  • 接続方法: パブリック エンドポイント
  • 現在のクライアント IP アドレスを追加する: はい
  • Azure サービスおよびリソースにこのサーバーへのアクセスを許可する: はい
このラボでは Portal のクエリ エディターと Cloud Shell の両方から接続するため「Azure サービス許可」を有効にしておくと躓きが減ります。ただし本番ではこの設定は全 Azure テナントからの到達を許す広いルールなので、特定 IP に絞るのが推奨です。

確認および作成 → 作成 をクリックします。デプロイには数分かかります。完了したら リソースに移動 で maskdemo データベースを開いておきます。

残り 6 セクションの手順は、ラボを開始すると画面内に表示されます

構成図

構成図

参考リソース

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

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

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