Microsoft 365 EDM分類子を使う

皆さんこんにちは。国井です。
突然ですが、EDMと言ったら何を思い浮かべますか?
ウェイウェイな感じの音楽ですか?

いいや違います!Exact Data Match(EDM)でしょ。
EDMとはDLPなどで特定の情報を検出するときに利用するMicrosoft 365 E5 Complianceの機能でCSV形式のデータに含まれる情報から特定の情報が含まれるときにそれを検知できる機能です。
言葉だけで説明してもよくわからないと思いますので一例を挙げましょう。
例えばここに個人情報が含まれるCSV形式のデータがあります。

image

この個人情報が何者かによってコピーされ、データが流出しようとしたときにDLPで検出するにはどういう設定をしますか?名前で探しますか?
名前だと同姓同名の人がいたりして、ある程度の誤検知は免れない状況になると思います。

そこでEDMではこうした個人情報があるときに名前と住所と従業員番号の3つが同時にドキュメント内に出現したら個人情報を流出させようとしていると判断します。

image

こうすることでより確実にうちの会社で扱う個人情報を見つけ出すことができます。

ここでのポイントは同じ行にあるデータ3点ってことです。
もしあるデータに名前と住所と従業員番号の3つが含まれていたとしても以下のパターンだと検出はしません。

image

なるほど。
じゃあ今度はこれをどうやって使うかについてみていくことにしましょう。

機密情報の種類(SIT)の定義

機密情報の種類とはSensitive Information Typeの略でSITとも呼ばれる、機密情報を検知するためのルールを指します。SITはMicrosoft Purview管理センターのデータの分類 > Classifiers からアクセス可能な項目でクレジットカード番号を検出するSITとか、マイナンバーを検出するSITなど、色々なものが最初から用意されています。もちろん、自社の従業員番号みたいなSITもカスタムで作ることができます。

それでなんでSITの話をしているかと疑問に思ったかもしれません。それはEDMのデータを登録するときには列のいずれかがSITに一致するデータであることが前提条件になるからです。ということで今回はEmployeeID列で使われている従業員番号を検出するSITを作るところからスタートします。

機密情報の種類画面から新しいSITを作成するウィザードを実行し、SITのパターンを定義します。今回はEmployeeIDを正規表現で定義します。
https://compliance.microsoft.com から データの分類 > 分類器 の順にアクセスし、
[機密情報の種類]から機密情報の種類を作成します。
作成画面の中では機密情報の種類のパターンとして正規表現を利用した定義を行います。

image

従業員番号は最初にアルファベット3文字、続けて数字6桁なので

\s[A-Z]{3}[0-9]{6}\s

と入れてみました。

image

あとはウィザードを最後まで進めれば完成です。

EDM分類子 – スキーマの定義

今度はCSVファイルの登録をするのですが、スキーマ部分(1行目の部分)と実データ部分(2行目以降の部分)を別々に登録しなければなりません。

image

そのため、まずはスキーマの登録からスタートします。
スキーマの定義は
https://compliance.microsoft.com から データの分類 > 分類器 の順にアクセスし、EDM分類子タブから EDM分類子を作成する をクリックしてウィザードをスタートします。

ウィザードでは最初にスキーマの定義方法を選択します。

image

ここではCSVファイルをアップロードして、ファイルの1行目部分を自動的に読み取らせます。ファイルをアップロードするとこんな感じ。

image

続く画面で、定義した列の中で特定の列の内容はSITに一致するデータが含まれていますよ、という指定をします。今回の場合で言えばEmployeeID列に従業員番号が含まれるので、機密情報の種類項目で作成した従業員番号を表すSITを割り当てます。
あと、主要要素をひとつ選択しておくこともお忘れなく。

image

続く画面で検出ルールを定義します。鉛筆ボタンをクリックして、

image

コンテンツにどういうデータが含まれていたら検出するかを設定します。
現在の設定ではEmployeeID列と同時にName, Birthdate, StreetAddress の中から2つの要素が含まれていたら検出するという定義になっています。

image

設定はこのままにしてウィザードを最後まで進めます。
出来上がったらEDM分類子(私がウィザードで作成した分類子はEmployeeDB2という名前です)をクリックして、EDMスキーマ名を確認しておきましょう。

image

EDM分類子 – 実データのアップロード

スキーマの定義ができたら続けて実データ(CSVファイルの2行目以降の部分)を登録します。
実データの登録はマイクロソフトのWebサイトで提供されるツールをインストールし、コマンドから登録します。ツールをインストールしたらPowerShellを起動し、ツールを実行します。

cd "C:\Program Files\Microsoft\EdmUploadAgent"
.\EdmUploadAgent.exe /Authorize

ここまでのコマンドを実行すると認証画面が出てくるのでコンプライアンス管理者のアカウントでサインインします。
このとき、コンプライアンス管理者のアカウントはAzure ADに作られたEDM_DataUploadersという名前のグループのメンバーになっていることが前提条件になります。

サインインが完了したらクラウドからスキーマの定義(XMLファイル)をダウンロードします。
(employeedb2schemaはEDMスキーマ名を表します)

.\EdmUploadAgent.exe /SaveSchema /DataStoreName employeedb2schema /OutputDir "C:\Users\vmadmin\Documents\"

スキーマの定義をダウンロードしたら、いよいよCSVファイルをアップロードします。
(ここではCSVファイルの名前をEmployeeData.csvとしています)

.\EdmUploadAgent.exe /UploadData /DataStoreName employeedb2schema /DataFile "C:\Users\vmadmin\Documents\EmployeeData.csv" /HashLocation "C:\Users\vmadmin\Documents\" /Schema "C:\Users\vmadmin\Documents\employeedb2schema.xml"

Microsoft Purview管理センター画面に戻って、インデックス作成が完了したことが確認できれば出来上がりです!

image

そして同時にSITも自動的に作成されていることが確認できます。

image

これにより、ここまでの手順で作成したルールがDLPなどの検出ルールとして利用できるようになります。

試してみるときは

このようにして作成した機密情報の種類をDLPポリシーで利用していただければ、個人情報の有無をベースにしたアクセス制御ができます。手軽に動作検証をしたい場合には
機密情報の種類画面から作成したSITを選択し、テストをクリックして、

image

サンプルファイルをアップロードすれば、そのファイルが機密情報の種類で定義したルールに当てはまるか確認できます。

image

お試しあれ