Azure Data Lake Gen2の監査ログからファイル/ディレクトリの各種更新検知を試みた

Azure Data Lake Gen2(以下ADLS)の監査ログからADLSにファイルをアップロードしたときや、権限変更したときのログの記録について説明します。

概要

ADLSでは、ファイルをアップロードした時刻はプロパティの作成日時や最終変更日時で確認することができます。一方で、ファイルにACLを付与した際の時間は上記2つでは確認することができません。

そこで、監視の診断設定から監査ログを設定し、Azure Log Analytics(以下Log Analytics)でどのように記録されるか説明します。

診断設定

対象のALDSの「診断設定」→「blob」をクリックします。

「診断設定を追加する」をクリックします。

名前を設定し、「audit」にチェックを入れます。次にログの送信先として「Log Aanalyticsワークスペースへの送信」にチェックを入れ、ワークスペースの設定を行います。設定が完了したら「保存」をクリックします。

以上で、設定は完了です。

Log Analyticsでの確認

それでは、本記事で操作を実施した際のログについて、見てみましょう。

なお、ログを確認するためには、StorageBlobLogsというテーブルにデータが蓄積されます。また、ログにはTimeGenerated[UTC]というカラムに操作した時間が記録されますが、本記事では省略します。

  • ファイルのアップロード
  • ファイル名の変更
  • ファイルのACLの権限設定
  • ファイルの削除
  • ディレクトリ作成
  • ディレクトリの名前変更
  • ディレクトリ削除

ファイルのアップロード

sample.txtという名前のファイル(容量は1KB)をアップロードした場合、以下の様な特徴を持つログが残ります。

まず初めに「OperationName」に「PutBlob」が記録されます。

また、「ObjectKey」にはファイルパスが記載されています。

ファイル名の変更

ファイル名の変更では「OperationName」に「RenamePathFile」が記録されます。

「ObjectKey」には変更後のファイルパスが記載されています。

また「SourceUri」には変更前、「DestinationUri」には変更後のファイルパスが記録されています。

ファイルのACLの権限設定

ACLの権限設定では「OperationName」に「SetPathAccessControl」が記録されます。

「ObjectKey」にはACLを変更した対象のファイルパスが記載されています。

ファイルの削除

ファイル削除では「OperationName」に「DeleteFile」が記録されます。

「ObjectKey」には削除した対象のファイルパスが記載されています。

ディレクトリ作成

ディレクトリ作成では「OperationName」に「CreatePathDir」が記録されます。

「ObjectKey」には作成した対象のパス名が記載されています。

ディレクトリの名前変更

ディレクトリ名変更では「OperationName」に「RenamePathFile」が記録されます。

「ObjectKey」には変更後のパス名が記載されています。

また「SourceUri」には変更前、「DestinationUri」には変更後のパス名が記録されています。

ディレクトリ削除

ディレクトリ削除では「OperationName」に「DeleteDirectory」が記録されます。

「ObjectKey」には削除した対象のパス名が記載されています。

まとめ

診断設定をすることで、ファイルのプロパティでは確認することができなかったACLの権限変更をLogAnalyticsから確認することができました。

これを利用すればADLS上のファイルやディレクトリのあらゆる変更を検知することができます。

執筆担当者プロフィール
齊藤 泰一

齊藤 泰一(日本ビジネスシステムズ株式会社)

機械学習系ソリューション開発、開発環境自動化などを担当。

担当記事一覧