投稿者:Hideaki Tokida

機密情報などデータによっては取り扱いに気をつける必要があるものがあります。BigQueryに格納されているデータに対して簡単にデータ損失保護によるマスクを行うことが出来ますのでその方法をご紹介します。

この内容では、Google Cloud Platform の「データ損失保護(DLP)」を利用します。

DLPでは、指定したデータタイプのデータをマスクすることが出来ます。BigQueryで検索した結果に対して顧客に開示する前にデータを適切にすることを考えます。BigQueryには標準でコンソール画面上で結果をDLPに送る画面がありますので利用してみます。

サンプルデータ

スクリーンショット 2019-07-23 18.39.28.png

  • 適当ですが弊社の事業所の住所とかの情報が入っているものを用意しました。

DLPジョブの作成

BigQueryの結果画面から直接DLPへデータを送信することが出来ます。

スクリーンショット 2019-07-23 18.39.33.png

  • 「Export」タブから「DLPでスキャン」を指定します。

スクリーンショット 2019-07-23 18.39.52.png

  • 画面が遷移してDLPの設定画面に移動します。
  • DLPの設定で様々な調査を行うこことが出来ます。

スクリーンショット 2019-07-23 18.48.33.png

  • 入力InfoTypeのリファレンス

  • これらの項目を検査することが出来ます。

  • 日本特有の項目としては、JAPAN_BANK_ACCOUNT(日本の銀行口座番号), JAPAN_DRIVERS_LICENSE_NUMBER( 日本の運転免許証番号) , JAPAN_INDIVIDUAL_NUMBER (日本国民識別番号は、2016 年 1 月から始まった新しい国民 ID 番号であり、「マイナンバー」と呼ばれます), JAPAN_PASSPORT (日本のパスポート番号。パスポート番号はアルファベット 2 文字と 7 桁の数字で構成されています。) を対象とすることが出来ます。

結果

結果は、GCSやBigQueryに格納することが出来ます。

スクリーンショット 2019-07-23 19.04.45.png

この場合には、メールアドレス、電話番号、IPアドレスを検出してます(あっていますね) 次に、BgiQuery側を見てみます。

スクリーンショット 2019-07-23 19.06.06.png

想像と違いました。想定ではマスクされたデータが取得出来るのかと思いましたがDLPで検出した場所の詳細なポジションが表示されています。仮に公開する場合にはこの結果情報からデータをマスク(例えば***に変更する)などの処理が必要そうです。

  • まだβ版だからと思いますが開始するまでに非常に時間がかかりますのでバッチ用途で使うのが良いでしょう

まとめ

「データ損失保護(DLP)」サービス自体はAPIで提供されており、PubSub経由でデータをリアルタムに処理したりすることも出来ますがこのようにBigQueryのデータに対してバッチ処理的に利用することも出来ます。今後このように特定の処理を施した上で開示したい場合などのケースが出てきた際に利用すると便利そうです。 日本特有のデータが項目が増えてくると更に利用箇所が広がりそうです。またシステム的なIPアドレス等も対象となっている点も面白いところだと言えます。