Azure Monitor を使用してセキュリティ イベントを監視する

完了

Azure Monitor のアクティビティ ログは Azure のプラットフォーム ログであり、サブスクリプション レベルのイベントに関する分析情報を提供します。 このアクティビティ ログには、リソースが変更されたときや仮想マシンが起動されたときなどの情報が含まれます。 Azure portal でアクティビティ ログを表示したり、PowerShell と Azure CLI を使用してエントリを取得したりすることができます。 この記事では、アクティビティ ログを表示して、さまざまな宛先に送信する方法について説明します。

その他の機能については、次の理由により、これらの場所の 1 つまたは複数にアクティビティ ログを送信するための診断設定を作成してください。

  • より複雑なクエリやアラートを作成したり、データ保持期間を延長 (最長 2 年) したりするために、Azure Monitor ログに送信するため。

  • Azure の外部に転送するために、Azure Event Hubs に送信するため。

  • より価格を抑えて、長期的なアーカイブのために、Azure Storage に送信するため。

  • アクティビティ ログのエントリはシステムによって生成されるため、変更または削除することはできません。

  • アクティビティ ログのエントリは、仮想マシンの再起動などのコントロール プレーンの変更を表しており、関連しないエントリは Azure リソース ログに書き込む必要があります。

保持期間

アクティビティログイベントは、Azure で 90 日間保持された後、削除されます。 ボリュームに関係なく、この期間中のエントリに対して料金は発生しません。 保持期間の延長など、より多くの機能を使用するには、診断設定を作成し、必要に応じてエントリを別の場所にルーティングします。 条件については、前のセクションを参照してください。

アクティビティ ログを表示する

アクティビティ ログには、Azure portal のほとんどのメニューからアクセスできます。 開くメニューによって、最初のフィルターが決まります。 [モニター] メニューから開くと、そのサブスクリプションに対するフィルターだけになります。 リソースのメニューから開くと、フィルターはそのリソースに対して設定されます。 いつでもフィルターを変更して、他のすべてのエントリを表示できます。 フィルターにプロパティを追加するには、[フィルターの追加] を選択します。

アクティビティ ログをダウンロードする

[CSV 形式でダウンロード] を選択し、現在のビューのイベントをダウンロードします。

変更履歴を表示する

イベントによっては、変更履歴を表示することができます。そこには、そのイベントの間に発生した変更が表示されます。 アクティビティ ログから、詳細を確認したいイベントを選びます。 [変更履歴] タブを選択すると、操作の時刻から 30 分前後のリソースの変更履歴を確認できます。

イベントに関連する変更がある場合は、表示される変更のリストから選ぶことができます。 変更を選ぶと、[変更履歴] ページが開きます。 このページには、リソースに対する変更が表示されます。 次の例では、VM のサイズが変更されていることがわかります。

アクティビティ ログ イベントを取得する他の方法

次の方法を使用して、アクティビティ ログ イベントにアクセスすることもできます。

  • PowerShell からアクティビティ ログを取得するには、Get-AzLog コマンドレットを使用します。 「Azure Monitor PowerShell のサンプル」を参照してください。
  • CLI からアクティビティ ログ エントリを取得するには、az monitor activity-log を使用します。 Azure Monitor CLI のサンプルをご覧ください。
  • REST クライアントからアクティビティ ログを取得するには、Azure Monitor REST API を使用します。

Log Analytics ワークスペースに送信する

アクティビティ ログを Log Analytics ワークスペースに送信して、Azure Monitor ログの機能を有効にします。この機能を使用すると、次のことができます。

  • アクティビティ ログ データを、Azure Monitor によって収集されたその他の監視データと関連付けることができます。
  • 複数の Azure サブスクリプションおよびテナントのログ エントリを 1 つの場所に統合して、まとめて分析できるようにします。
  • ログ クエリを使用して複雑な分析を実行し、アクティビティ ログのエントリから詳細な分析情報を取得できます。
  • より複雑なアラート ロジックに、アクティビティ エントリでログ アラートを使用できます。
  • アクティビティ ログ エントリを、アクティビティ ログの保持期間よりも長く保存できます。
  • Log Analytics ワークスペースに格納されているアクティビティ ログ データのインジェストや保持の料金が発生ません。
  • Log Analytics 内での既定の保持期間は 90 日です。

アクティビティ ログを Log Analytics ワークスペースに送信するには、[アクティビティ ログのエクスポート] を選びます。 任意の 1 つのサブスクリプションから最大 5 つのワークスペースに、アクティビティ ログを送信できます。

Log Analytics ワークスペースでは、アクティビティ ログのデータは AzureActivity という名前のテーブルに格納されます。このテーブルは、Log Analytics のログ クエリで取得できます。 このテーブルの構造はログ エントリのカテゴリによって異なります。

一部のシナリオでは、AzureActivity のフィールドの値が、大文字と小文字の違いはあるがそれ以外は同じ値の場合があります。 AzureActivity のデータに対してクエリを実行する際には、文字列比較に大文字と小文字を区別しない演算子を使用する、または、比較を行う前にスカラー関数を使用してフィールドの大文字と小文字を統一するなどの配慮が必要です。 例えば、フィールドに tolower() 関数を使用して常に小文字にする、または、文字列を比較する際に =~ 演算子を使用します。

Azure Storage への送信

監査、静的分析、またはバックアップのためにログ データを 90 日より長く保持する場合は、アクティビティ ログを Azure Storage アカウントに送信します。 イベントを保持する必要があるのが 90 日以内の場合は、ストレージ アカウントにアーカイブを設定する必要はありません。 アクティビティ ログのイベントは Azure プラットフォームに 90 日間保持されます。

アクティビティ ログを Azure に送信すると、イベントが発生するとすぐに、ストレージ アカウント内にストレージ コンテナーが作成されます。

各 PT1H.json BLOB には、BLOB URL で指定されている時間に受信したログ ファイルからのイベントを含む JSON オブジェクトが含まれています。 現在の時間内にイベントが発生すると、イベントは生成された時間に関係なく、受信されるたびに PT1H.json ファイルに追記されます。 BLOB は 1 時間ごとに作成されるため、URL 内の分の値 m=00 は常に 00 です。