スマートスタイル TECH BLOG

MariaDB MaxScale masking フィルタによるデータ保護

本記事はMariaDB Corporationより寄稿された記事となります

はじめに

MariaDB MaxScale 2.1 で導入された masking フィルタではマイナンバー,クレジットカード情報などの機密度の高い情報を簡単にマスキングすることができます。今回はこのマスキングフィルターに関して解説いたします。

制限事項

以下のタイプのカラムに対してのみマスキングは有効となります。

  • BINARY
  • VARBINARY
  • CHAR
  • VARCHAR
  • BLOB
  • TINYBLOB
  • MEDIUMBLOB
  • LONGBLOB
  • TEXT
  • TINYTEXT
  • MEDIUMTEXT
  • LONGTEXT
  • ENUM
  • SET

テスト環境

以下の環境でテストを実施しました。

  • MariaDB MaxScale 2.3.3
  • MariaDB Server 10.3.12
  • CentOS 7.6.1810

MaxScale Masking filter設定

下記の例のように,filter設定において,module=maskingを指定,service設定においてfilters=Maskingというようにfiltersパラメータにてfilterのオブジェクト名を参照します。

マスキングルール

マスキングのルールは以下の例のように,JSON形式で指定します。

このルールの場合,以下のようなマスキング/難読化を行います。

  • カラム名が card_number1 の場合は,すべて * でマスキング
  • カラム名が card_number2 の場合は,最後の4桁以外すべて * でマスキング
  • カラム名が card_number3 の場合は,難読化(obfuscation)

マスキング設定検証

サンプル・テーブル

サンプル・データ

以下のようなクレジットカード番号相当のものをINSERTします。

SELECT実行結果

MaxScaleノード上に MariaDB-client をインストールし,検証クエリを実行してみます。

意図した通りのマスキングが行われていることが確認できました。なお,バックエンドのデータベースに直接接続した場合は当然のことながらマスキングは行われませんので,留意願います。

まとめ

毎日のように大規模なデータ漏洩の報道がされている昨今,データベースProxyであるMaxScaleを介したマスキング,難読化により,アプリケーションコードの変更なく高度なデータ保護を行うことが可能であることが確認できました。


執筆者情報

後藤 智(GOTO Satoru)
2017年6月よりMariaDB Corporation AbにてAPAC(Asia Pacific)地域におけるプリセールス業務を主に担当。現在は主に日本を担当。
この執筆者の他の記事をよむ
Return Top