SQL Server新旧バージョン混在環境での工夫など、「db tech showcase ONLINE 2020」講演レポート
ZOZOの「DB秘密情報取扱いガイドライン」とSQL Server実装例
2020年12月21日 08時00分更新
インサイトテクノロジーが主催するデータベース技術者のためのテクノロジーカンファレンス「db tech showcase ONLINE 2020」が、2020年10月27日~12月10日までの7週間にわたって開催された(2021年3月末までアーカイブ動画を公開中)。
新型コロナウイルスの「第3波」到来により、全社的なリモートワークを継続している企業も少なくない。多くの社員が社内のデータベースへリモートアクセスするようになった今、機密情報へのアクセスに関するルールを再検討し、情報保護を強化する必要性が増している。
11月24日に行われたZOZOテクノロジーズ ECプラットフォーム部 テックリードの廣瀬真輝氏によるセッションでは、ZOZOテクノロジーズが現在運用中の「データベースの秘密情報取扱いガイドライン」を策定するまでの具体的な作業の流れと、策定したガイドラインをSQL Serverへ実装する方法が紹介された。
DB秘密情報ガイドライン策定の流れ
同社ではまず、秘密情報取扱いガイドラインを策定するにあたって「何が『秘密情報』に区分されるのか」、どんな情報を保護対象とするのかを明確化した。
そのうえで、秘密情報と区分された情報に関する次の2つの台帳を作成した。
(1)秘密情報管理台帳
秘密情報に該当するデータベース上のテーブル、カラムを管理する台帳。さまざまなデータベースに散在する秘密情報を集約するために作成するもので、データベース間のデータ連携時には、この台帳を確認するだけでマスク対象のカラムを判断できる。
(2)閲覧者管理台帳
秘密情報の閲覧権限を持つ人(閲覧者)を管理する台帳で、「誰が」「どのデータストアの秘密情報を閲覧可能なのか」を集約して管理するために作成するもの。
この2つの台帳をベースにして、秘密情報の取扱いルールを次の5つのステップで策定した。念頭に置いたのは、「エンジニアの運用負荷をできるだけ上げずに、秘密情報の閲覧可能者をできるだけ限定すること」(廣瀬氏)だという。
1.新しく追加されるデータの取扱い基準の設定
新たに取得する情報について「誰が」「どのような基準で判断するか」「秘密情報への該当時はどういうアクションが必要か」を明確化した。具体的には、プロダクトまたはデータベースごとにアサインしたレビュー担当者が、社内の情報区分に従って秘密情報かどうかを判断し、2つの台帳に記載する。秘密情報をマスク化してアクセス制限し、情報の管理を行っている部署に報告するといったアクションをとる。
2.既存データで秘密情報に該当する項目の洗い出し
全カラムを精査するのが理想だが、大量のデータがあるため現実的ではなかった。そこで、住所や氏名などが入っている可能性が高い文字列型カラムや、「address」など秘密情報に該当しそうな名前のカラムをリストアップし、人力で精査した。最後に責任者チェックを通じて最終的な秘密情報カラムリストを作成し、秘密情報管理台帳に記載した。
3.秘密情報にアクセスできるアカウントの制限
データベースの秘密情報を閲覧できる人数を、1データベースあたり2人程度までと大きく絞り込んだ。さらに秘密情報が閲覧可能な人に対しても、閲覧可能なアカウント(調査で必要なとき用)、閲覧不可能なアカウント(普段使い用)という2種類のアカウントを発行している。
4.権限のないアカウントからのアクセス制御
権限のない人(閲覧者管理台帳に記載のない人)は秘密情報カラム(秘密情報管理台帳に記載のあるカラム)を閲覧できないようアクセス制限をかけた。ただし、秘密情報カラムのアクセス制御をどこまで行えるかはデータベース製品の機能次第となる。
5. 権限保持者の大幅な削減による運用負荷増への対処
単純に秘密情報を閲覧可能な人数を減らすだけでは、エンジニアの調査や運用の負荷が大幅に増加してしまう懸念がある。そこで、ワークフロー申請によって一時的に有効な秘密情報閲覧権限を発行できる仕組みを整備した。