Azure Log Analytics での AIP ログ分析が提供終了なので代替手段をまとめてみる。

はじめに

 Azure Information Protection (以降、 AIP と記載します。)は[ 情報の保護 ]と呼ばれ、ドキュメントやメールに秘密度ラベルを付けることで組織外への情報漏洩を予防するソリューションです。

これまで AIP の設定は Azure Portal から実施していましたが、 Microsoft 365 (以降、 M365 と記載します。)へ統合が進められ、現在は M365 コンプライアンスセンターからも設定できるようになっていました。


 統合が進められている中で、今回発表のあった内容は以下になります。

 2022 年 3 月 18 日より、Microsoft は AIP 監査ログを格納するための新しい Log Analytics ワークスペースのオンボード をサポートしなくなりました。
 AIP 監査ログが既に構成されているお客様は、これらの監査ログを 2022 年 9 月 30 日まで Log Analytics ワークスペースに転送します。 その時点で、お客様は新しい AIP データを Log Analytics ワークスペースに転送できません。
 代わりに、包括的なログ記録とレポートを提供する Microsoft 365 コンプライアンス センター アクティビティ エクスプローラーとコンテンツ エクスプローラーを使用することを強くお勧めします。


引用元[ Azure Information Protection の分析 (マイクロソフト公式 Documents)]


 Azure から M365 への統合準備が完了し、これからは、 M365 コンプライアンスセンターにある下記のいずれかのサービスを使うことなります。

 ・コンテンツエクスプローラー

 ・アクティビティエクスプローラー


それぞれのサービスについては以下で詳しく説明します。どちらの機能においても事後確認の際に利用するもので、機密情報の種類、保持ラベル、秘密度ラベルの3種類のいずれかを検知し、操作したユーザー情報や該当アイテム(ドキュメント、メール)の発見に役立ちます。

 機密情報の種類・・・アイテム内のマイナンバー情報やクレジットカードの番号など、特定のキーボードを検知します。

 保持ラベル・・・アイテムの保持・削除の管理ができます。保持ラベルのついたアイテムを自社テナントから外部に持ち出したとき、保持ラベルの効果は無くなります。

 秘密度ラベル・・・機密情報が意図しない相手に漏洩しないように保護する機能です。秘密度ラベルが付いたアイテムは社外であってもある程度管理することができ、遠隔でアクセス権を無くすことなどができます。

コンテンツエクスプローラー

 コンテンツエクスプローラーでは、機密情報の種類単位で該当したアイテムや、保持ラベル、秘密度ラベルのついているアイテムのスナップショットを見ることができます。

あくまでスナップショットを見る機能なので、これまで Azure Log Analytics で AIP のアクティビティの内容を知りたい場合は、アクティビティエクスプローラーを使うことになります。

アクティビティエクスプローラー

 アクティビティエクスプローラーは、 Azure Log Analytics の代替機能と呼べるサービスです。機能差(アクティビティエクスプローラーの方が取得できるログ数が多い等)についてはこちらの公式ドキュメント等から確認して頂ければと思います。

Azure Log Analytics とアクティビティエクスプローラーを比較した際、メリット・デメリットはこのようになると思います。

 メリット

  Azure Log Analytics (Azure リソース)を使わないのでAzure サブスクリプションが不要です。

  つまり、月額固定のライセンス費用(M 365 E5やO 365 E5等)だけになります。

 デメリット

  ログの保持期間が30日になります。期間を選択することは出来ません。

  Azure Log Analytics では課金は発生しましたが、最大2年間(730日)の保持が可能でした。

デメリットの回避策としては、30日ごとにアクティビティログをエクスポートして保持しておくことになります。エクスポートの際、一度にエクスポートできるアクティビティ量に制約があり、一括取得可能な件数は1万件までです。


30日間に1万件以上のアクティビティが発生する企業にとっては、アクティビティをソートして1万件以内になるように分割取得する作業が発生し、アクティビティ量と比例して作業時間が増えてしまいます。一括取得する手段としては Microsoft 365 監査ログを Office 365 Management API を使って収集します。 Microsoft 365 監査ログのログ保持期間は規定で1年間です。

Office Management API

公式ドキュメントはこちらになります。

手順は以下の4工程です。

 0.ユーザーと管理者のアクティビティの記録を開始する

 1.Azure AD テナントにアプリ登録を行う

 2.Office 365 Management API サブスクリプションを開始する

 3.Office 365 Management API を使ってアクティビティを取得する

0.ユーザーと管理者のアクティビティの記録を開始する

コンプライアンスセンター > 監査 > ユーザーと管理者のアクティビティの記録を開始する

(上記手順の GUI 上で開始できない場合)Powershell で開始します。
i:ExchangeOnlineManagement モジュールをインポート
 > Import-Module ExchangeOnlineManagement
ii:ExchangeOnlineManagement に接続
 > Connect-ExchangeOnline -UserPrincipalName xxxExamplexxx@domain.onmicrosoft.com
iii:監査ログの取得が開始されているかを確認(結果が UnifiedAuditLogIngestionEnabled : True となっていれば開始されていますので、作業 iiii は不要です。)
 > Get-AdminAuditLogConfig | FL UnifiedAuditLogIngestionEnabled
iiii:監査ログの取得を開始
 > Set-AdminAuditLogConfig -UnifiedAuditLogIngestionEnabled $true


1.Azure AD テナントにアプリ登録を行う

Azure AD を開く> アプリの登録 > 新規登録



アプリの名前を決める(ここではOffice Management APIとします。)

APIにアクセスできる範囲を決める(ここではこの Azure AD テナントユーザーに限定。)

登録を選択(リダイレクトURIは考慮不要。)



遷移先のページで API のアクセス許可 > アクセス許可の追加



Office Management APIs を選択



委任されたアクセス許可 > ActivityFeed.Read と ActivityFeed.ReadDLP を選択



アプリケーションの許可 > ActivityFeed.Read と ActivityFeed.ReadDLP を選択 > アクセス許可の追加



ドメインに管理者の同意を与えます



はい



各アクセス許可リストの状態がドメインに付与されていることを確認



証明書とシークレット > クライアントシークレット > 新しいクライアントシークレット



クライアントシークレットの名前を決める(ここではOffice Management APIとします。)

有効期限を決める(ここではMS推奨値の6か月とします。最大2年間)



発行されたクライアントシークレットの値をメモ

(値はページを閉じると、再取得できなくなります。そうなった場合は、再度新しいクライアントシークレットを作成します。)

2.Office 365 Management API サブスクリプションを開始する

Web APIを使います。(ここではGoogle Chrome 拡張機能の Talend API を使います。)


各項目を入力 > Send > レスポンスコード 200 を確認
 ●Method → POST
 ●URI → https://login.microsoftonline.com/< Azure AD のテナント名>/oauth2/token?api-version=1.0(ここでは Azure AD のテナント名を ssrorganization.onmicrosoft.com とします。)
 ●HEADER は記述不要(勝手に追加された項目は消す必要有りません。)
 ●BODY は以下4つを指定
  ・grant_type → client_credentials
  ・resource → https://manage.office.com
  ・client_id → 下記図赤枠に記載のあるアプリケーション(クライアントID)


  ・client_secret → 先程メモしたクライアントシークレットの値(IDではなく値)



結果のBODYに記載されている Access_token をメモ



念のため、アクセストークンに割り当てられているアクセス権限を確認(飛ばしても問題ない手順です。)
 JWT の Encoded にアクセストークンをペースト > Decoded – payload – role を確認
( Azure AD で割り当てたロールが反映されている事)

 



guidgenerator を使用し、払い出した Publisher GUID をメモ



各項目を入力 > Send > レスポンスコード 200 を確認
 ●Method → POST
 ●URI → https://manage.office.com/api/v1.0/<Azure AD の GUID >/activity/feed/subscriptions/start?contentType=Audit.General&PublisherIdentifier=<先ほど作ったパブリッシャーコード>

 ●HEADER は以下1つ指定(勝手に追加された項目は消す必要有りません。)
  ・Authorization → Bearer 先程メモした Access_token
 ●BODY は引き続き4つを指定(1つ前のPOSTリクエストのBODYと同じで大丈夫です。)

[0.ユーザーと管理者のアクティビティの記録を開始する ]の実施後、1時間未満で POST リクエストを行った場合、内部処理が追いついておらずエラーコードが返される可能性があります。表示された場合は少し待った後に、再度実施してみてください。

3.Office 365 Management API を使ってアクティビティを取得する

Office 365 Management API が利用可能になったので、次は GET リクエストを使いアクティビティを取得します。
この作業を行っておくと、アクティビティエクスプローラーのエクスポート1万件制限に抵触することなく、一括取得できます。


各項目を入力 > Send > レスポンスコード 200 を確認
 ●Method → GET
 ●URI → https://manage.office.com/api/v1.0/<Azure AD の GUID >/activity/feed/subscriptions/content?contentType=Audit.General&PublisherIdentifier=<先ほど作ったパブリッシャーコード>&startTime=yyyy-MM-ddThh:mm:ss&endTime=yyyy-MM-ddThh:mm:ss
(startTimeとendTimeは任意入力項目です。入力する場合、endTimeよりもstartTimeの方が時系列が前である必要があり、開始から終了までの期間範囲は24時間未満に設定します。)


レスポンスボディはこのようになりました。



ここからは見方の説明になります。
contentUri がリストで表示されますので、どれか1つを選択してみます。



選択した contentUri が GET リクエストされ、以下のような詳細ログがレスポンスされます。



Body を整形してみました。
RecordType でどんなイベントだったかが分かります。レファレンスはこちら(MS公式ドキュメント)



今回は83なので SensitivityLabelAction で、ラベルがファイルに適用、更新、削除されたときのイベントであることが分かります。



さいごに

 本記事では、AIP のログ保存先に Azure Log Analytics が提供終了となるアナウンスを受け、Log Analytics に代わるコンプライアンスセンターのソリューションの説明と Management API を使ってログをより詳細に管理する方法をご紹介させていただきました。
私事ですが、Azure AD でアクセス許可設定を行う時に、委任されたアクセス許可の設定しかしておらず、いつまでたっても Office 365 Management API サブスクリプションの開始ができなかったので、 JWT を使って Bearer トークンからアクセス許可を確認する手順を入れさせていただきました。
最後までご覧いただきありがとうございました。


———-
参考記事
O365管理APIを介したMicrosoft365コンプライアンス監査ログアクティビティ-パート1(Microsoft ブログ)

いいね (←参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルプロセス&テクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください