BigQueryのDynamic Data Maskingの機能が更新されました
はじめに
こんにちは!クラウドエース データML ディビジョン所属の住吉と申します。
データML ディビジョンとはクラウドエースのITエンジニアリングを担うシステム開発部の中で、特にデータ基盤構築・分析基盤構築からデータ分析までを含む一貫したデータ課題の解決を専門としております。
データML ディビジョンでは活動の一環として、毎週Google Cloud の新規リリースを調査・発表し、データ領域のプロダクトのキャッチアップをしています。その中でも重要と考えるリリースを本ページ含め記事として公開しています。
今回紹介するリリースは、「BigQueryのDynamic Data Maskingの機能更新」についてです。
そもそもDynamic Data Maskingとは
今回のリリース内容を紹介する前にそもそもDynamic Data Maskingとは何かに触れていきたいと思います。
BigQueryでは、列レベル(カラムごと)でデータのマスキングがサポートされています。
作業者にテーブル内の特定のカラム情報を見せたくないときなどに使用します。
マスキング方法は以下のルールから選択できます。カラムごと、プリンシパルごとに違うマスキングルールを適用することも可能です。
- null化
- デフォルトのマスキング値
- ハッシュ(SHA256)
- メールマスク
- 先頭の4文字
- 年月日マスク
- 末尾の4文字
マスキングルールの詳細はこちらの公式ドキュメントをご確認ください
BigQueryのDynamic Data Maskingの機能の更新について
では、タイトルのDynamic Data Maskingの機能の更新についてです。
今回の更新により、REPEATEDモードに設定されたRECORD列に対してもマスキングが可能になりました👏
この更新内容は2023年04月25日付に発表されたものです。
以前はData Maskingが設定されているREPEATEDモードに設定されたRECORDカラムを参照するとエラーが発生していたようです。
試してみた
実際にDynamic Data Maskingを試してみようと思います!
1. 使用データ
今回は下記のデータを用意しました。
2. ポリシータグの作成
列へのアクセスを制御するためのポリシータグを作成します。
ざっくりとした手順を下記にまとめます。
- ポリシータグの分類を作成
- 分類作成画面で作成したいポリシータグを記入
- 分類作成後、作成した分類名をクリックしてポリシータグを1つ選択してデータポリシーの管理をクリック
- 設定画面で
マスキングルール
とこのマスキングを適用したいプリンシパル
を設定
今回はhogeという名前のポリシータグの分類を作成して、その中に下記のような3つのポリシータグを作成しました。
3.マスキングポリシーをカラムに設定
用意したデータに作成したポリシータグを設定していきたいと思います。
ざっくりとした手順を下記にまとめます。
- 設定したいテーブルのスキーマタブを開く
- スキーマの編集をクリック
- マスキングを設定したいカラムを選択し、
ADD POLICY TAG
をクリック
- 設定したいポリシータグを選択して保存
- 設定後は下記のように設定したフィールド名のポリシータグ列に設定したタグが表示されます
ポリシータグが付けられたBigQueryの列の参照はきめ細かい読み取り
とマスクされた読み取り
のロールを持つユーザーのみに制限されます。
そのため、どのマスキングルールにも設定されていないユーザーが参照しようとしても上記の2つのロールを持っていなければエラーが返されます。
4.マスキングの確認
設定が完了したので、実際にマスキングされているか確認してみます。
-
プレビューから確認
プレビューからデータを覗いてみると、マスキングが設定されているカラムは表示されませんでした。 -
クエリから確認
クエリを投げてみると、しっかりマスキングされていることが確認できました🎉
(マスキングされているカラムは、address
、phone_number
、email_address
です)
5.REPEATEDモードに設定されたRECORDカラムのマスキング
次に今回紹介したリリース内容を試します!
REPEATEDモードに設定されたRECORDカラムにマスキングを設定して、確認してみようと思います。
sports_career.career
列にマスキングポリシーを設定しました
- クエリの実行結果
設定したカラム(sports_career.career、1番右の列)の値がマスキングされ、全てnull
になっていました🎉
6. ユーザーごとにマスキングルールを変えてみる
最後にユーザーごとにマスキングルールを変えてみたいと思います。
現在実行しているユーザーではphone_number
カラムにはデフォルトのマスキングルールを設定しているので、別のユーザーではphone_number
カラムのマスキングルールを先頭の4文字
に設定してみたいと思います。
設定したマスキングルールは下記です
- 実行結果
phone_numberのマスキングが先頭の4文字になっています🎉
また、phone_number以外のマスキングは先ほどのユーザーで実行したものと同じでした。
(CLIから実行したので見づらくてすみません🙇)`
まとめ
今回はBigQueryのDynamic Data Maskingの機能更新のリリース情報についてと併せてDynamic Data Maskingについてまとめてみました。
(リリース内容の紹介よりDynamic Data Maskingの紹介のほうがメインになっちゃいました・・)
Discussion