お問い合わせ
3 分で読むことができます

Snowflakeのマスキング機能を試してみた

執筆者 BI LAB編集室 更新日時 2021年3月16日

Topics: SQL masking

目次

データを扱う上で、
住所や生年月日といった
個人情報データの扱いに
苦労している方は多いのではないでしょうか。

例えば…
個人情報を含むテーブルを複製して、
マスキング用の加工処理を加えた後、
分析者に渡す…みたいなフローを組んでいませんか?
正直メンドクサイ…。(つ∀-)オヤスミー

そんなあなたに朗報です!
Snowflakeなら動的なマスキング機能、
ダイナミックデータマスキングを使うことができます。

これによってオリジナルデータに手を加える必要なく、
クエリの実行者に応じてデータを動的にマスキングすることができます。

つまり、同じテーブルに対して

・管理者がクエリを実行->マスキングしない
・分析者がクエリを実行->マスキングする

といった動作を可能にします!

凄いぞ、Snowflake。

 

実践

実際に試してみましょう。

今回はテスト用にuserテーブルを作成しました。

このテーブルのmailカラムをマスキングすることにします。

 

1. マスキングポリシーを作成

まず最初に、マスキングポリシーを作成します。
公式ドキュメントのCREATE MASKING POLICYを参考に作成してみましょう。

上記では「ユーザーのロールがSYSADMIN以外の場合は'機密情報だよ(^_-)-☆'でマスキングする」ポリシー、email_maskを作成しています。

 

2. マスキングポリシーをテーブルに適用

続いて、先ほど作成したマスキングポリシーをuserテーブルに適用します。
公式ドキュメントのALTER TABLE ... ALTER COLUMNを参考にすると…

ALTER TABLE {テーブル名} ALTER COLUMN {カラム名} SET MASKING POLICY

このようにテーブル定義を変更することで適用できます。

 

では、userテーブルのmailカラムにemail_maskを適用します。

 

これで設定は完了です!

 

3. 動作確認

最後に動作確認します。

まずはSYSADMINロールで確認します。

そのまま表示されていますね。

 

ではSYSADMIN以外のロール、VIEWERロールで確認してみると…
この通り!

ちゃんとマスキングされていますね!

 

さらに別のロール、ANALYSTロールで確認しても…

マスキングされていますね!
素晴らしい…。

 

以上です!凄く簡単に設定できて驚きました。

データのマスキングに悩んでいる方はぜひ
Snowlflakeダイナミックデータマスキングを使ってみて下さい!

※ダイナミックデータマスキングはEnterprise Edition以上の機能となります。

Snowflakeを体験してみませんか?

INSIGHT LABではSnowflake紹介セミナーを定期開催しています。Snowflakeの製品紹介だけでなく、デモンストレーションを通してSnowflakeのシンプルなUI操作や処理パフォーマンスの高さを体感いただけます。

詳細はこちら

BI LAB編集室

執筆者 BI LAB編集室

BI LAB(データ活用研究所)編集室です。 BI、AI、DWHなどデータ活用に関するトレンドやニュースやコラムをほぼ毎日配信しています。押さえておきたい基本知識から、最新ニュース、事例インタビューやお役立ち情報・セミナーレポートまで、データ活用の専門家ならではの視点と情報量でお届けします。

4 分で読むことができます。
Snowflakeの料金体系|クレジットと費用最適化のポイントをご紹介
5 分で読むことができます。
【禁断の比較?】SnowflakeとTreasure Dataを比べてみました
1 分で読むことができます。
誤ってupdateしてしまったレコードをtime travelで復元する
5 分で読むことができます。
【Snowflake】新機能「Streamlit in Snowflake」とは何者か!?
3 分で読むことができます。
AWS Lambdaを使ってSnowflakeとSFTPサーバーを連携してみた