このページの本文へ

前へ 1 2 次へ

SQL Server新旧バージョン混在環境での工夫など、「db tech showcase ONLINE 2020」講演レポート

ZOZOの「DB秘密情報取扱いガイドライン」とSQL Server実装例

2020年12月21日 08時00分更新

文● TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

動的なデータマスキング機能が使えない環境での対応

 こうして策定したガイドラインを、同社は「Microsoft SQL Server」で実装している。セッションで廣瀬氏は、実装の一部を紹介した。

 たとえば、秘密情報カラムへのアクセス制限だ。今回のケースでは、「秘密情報カラムにアクセスできるアカウントの制限」と「秘密情報カラムのマスク化」の2点をSQL Serverで実現させる必要があった。この2点は、SQL Server 2016から提供されている「動的なデータマスキング機能」を使えば解決する。この機能は、ユーザーのクエリに対して名前、メールアドレス、電話番号などのデータを自動的にマスクした状態で返す。

動的なデータマスキング機能

 ただし、この機能はSQL Server 2014以前のバージョンでは提供されていない。「当社ではSQL Server 2016より前のバージョンの環境もあるので、全環境では使えませんでした」(廣瀬氏)。そこで同社は、動的なデータマスキング機能の代替案として、次の3つの対応を行った。

動的なデータマスキングの代替案

 代替案の1つ目は「ロールの活用」。各ログイン/ユーザーへの個別設定ではなく、SQL Serverのユーザー定義ロールを活用して、秘密情報へのアクセスを制限するロールを作成した。作成したロールに対して、秘密情報カラムのSELECT権限をはく奪すればよい。

 代替案の2つ目は「秘密情報カラムに対するSELECT権限のはく奪(DENY)」だ。カラム単位で秘密情報のSELECT権限をはく奪すると、アクセス権のないユーザーで該当カラムを取得するSELECTを実行した際にエラーが発生する。さらに、秘密情報をSELECTしているVIEWの参照権限をはく奪した。

 「VIEWに対してSELECT権限を持っているとベーステーブルで権限がはく奪されていてもSELECTできてしまうので、SELECTをはく奪したカラムを参照しているVIEWに対しても権限をはく奪する必要があります」(廣瀬氏)

 代替案の3つ目は「動的なデータマスキングを使用しないマスク化」。各テーブルに対応したVIEW(マスク用VIEW)を作成し、テーブルに秘密情報カラムが存在する場合は該当のカラムをマスクするというやり方だ。

メールのカラムを秘密情報カラムとしてDENY

テーブルに対応したVIEWを作成

VIEWのSELECT結果、メールのカラムがマスキングされている

 マスク用VIEWは、秘密情報カラムが存在しないテーブルを含む全テーブルに作成し、エンジニアがデータを確認するときはマスク用VIEWを使用する。「これによって、各テーブルに秘密情報カラムが存在しているかどうかを意識することなく、SELECT文を書くことができます」(廣瀬氏)。

秘密情報のメンテナンスの自動化

 マスク用VIEWを作成するアプローチでは、テーブル内の秘密情報カラムの増減や、テーブルの定義変更などの変化があった場合、VIEWの再作成が必要になる。こういったマスク用VIEWのメンテナンス作業を、同社では自動化している。以下は、テーブルの定義変更に対する自動メンテナンスの実装だ。

テーブルの定義変更

 また、テーブル内の秘密情報カラムが増加した場合は、新たにDENYが設定されたカラムをマスク化する、減少した場合はDENYが取り消し(REVOKE)されたカラムを実データ化する必要がある。これを自動化するために、同社では2つのリストを作成して比較し、DENY設定の変化を検知している。

テーブル内の秘密情報カラムの増減に対する自動メンテナンス

* * *

 ZOZOテクノロジーズが運用中の「データベースの秘密情報取扱いガイドライン」と、そのルールをSQL Serverへ実装する具体的な方法を紹介した同セッション。廣瀬氏は、「新型コロナでリモートワークの機会が増えた企業の皆さんの、秘密情報保護の取り組みの参考になれば幸いです」と述べ、講演を締めくくった。

前へ 1 2 次へ

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

アクセスランキング

  1. 1位

    TECH

    フォーティネットの「SSL-VPN廃止」 IPsec移行と脱VPN、それぞれの注意点を総ざらい

  2. 2位

    ソフトウェア・仮想化

    「SaaSの死」の影響は感じない ― グローバル以上に好調な日本市場、ServiceNow鈴木社長が語る

  3. 3位

    ビジネス・開発

    いますぐ捨てたいITサービスは? AI推しにそろそろ飽きてません? 情シスさんのホンネを「ゆるっとナイト」で聞いた

  4. 4位

    TECH

    「蟻の一穴」となるリモートアクセスVPNの脆弱性 ZTNA/SASEはなぜ必要か?

  5. 5位

    ネットワーク

    ネットワークとセキュリティの統合に強み 通信事業者系ZTNA/SASEサービス3選

  6. 6位

    デジタル

    海外駐在員の負担を軽減し、ワンチームへ kintoneは言語と文化の壁を越える「翻訳の魔法」

  7. 7位

    エンタープライズ

    基盤も古いし、コードも酷い! そんなクエストにGitHub Copilotで試行錯誤しまくった「みんな」こそ最高

  8. 8位

    ITトピック

    「AI導入で人員を減らしても収益は増えない」その理由/「専任情シス不在」中小企業の3社に2社/ユーザーアカウント流出が加速、ほか

  9. 9位

    sponsored

    完全自動運転の実現へ、チューリングが開発基盤にGMO GPUクラウドを選んだ理由

  10. 10位

    ビジネス

    医療費5兆円抑制につながる“国産ヘルスケア基盤”構築へ SMBC×富士通×ソフトバンクが業務連携

集計期間:
2026年05月17日~2026年05月23日
  • 角川アスキー総合研究所