🔍

Azureのサインインログと操作ログを保存する方法

に公開

はじめに

最近、新たに作成したAzure Entraテナントでサインインや操作ログの保存設定を行う機会があり、取得できるログの種類と、保存するために必要な手順を整理してみました。
Entraテナントを頻繁に作成するケースは少ないため、あらためて設定方法を確認する良い機会となりました!

この記事では大きく2つの領域(Azure EntraのログとAzureリソースのログ)に分けてまとめています。

Azure Entraのサインインログと操作ログ(監査ログ)

Azure PortalやAzure CLIのサインインログやAzure Entraの操作ログ(ユーザーやグループ作成など)はデフォルトで収集されており、Azure Entra ID Freeでは7日間分のログが閲覧可能です。

Azure Portalで閲覧可能なログ

Azure Entraの以下3種類のログはAzure Portalで閲覧することができます。

  • サインインログ
    ユーザーやアプリの認証試行ごとに、日時・IP アドレス・デバイス・多要素認証の成否などを記録します。
  • 監査(Audit)ログ
    ユーザー/グループ/アプリの作成・更新・削除、ロールやポリシー変更など、Azure Entraテナント設定に対する管理操作を記録します。
  • プロビジョニングログ
    外部システム(Salesforce等)との同期による自動プロビジョニングで発生したユーザー/グループの作成・属性更新・削除イベントを記録します。

これらのログは追加設定を行わなくとも、Azure PortalのEntra IDの画面で確認することができます。

Azure Entraのログ保存期間

Azure Entraのライセンスによって保存期間が異なります。デフォルトで無料のEntra ID Freeの保存期間は7日間です。有償のAzure Entra P1/P2ライセンスが有効化されている場合は30日間となります。

ログ種別 Azure Entra Free Azure Entra P1 / P2
サインインログ 7日 30日
監査(Audit)ログ 7日 30日
プロビジョニングログ 7日 30日

30日間を超える期間でログを保管したい場合や、Kustoを使ったクエリやアラート発報を行いたい場合は、Azureリソースと同じように診断設定を使用してLog Analyticsやストレージアカウントに送信します。

Log Analyticsへ送信する場合は、Azure Monitor Logsの通常課金(インジェスト料金+保管料金)が発生します。

ログの出力設定

Azure PortalのEntra IDの画面から診断設定を追加します。

診断設定の設定画面自体はいつもの見慣れたAzureリソースと同様です。

出力可能なログの種類

診断設定では、以下のログの出力設定が可能です。
まずはサインイン系のログ(ユーザーやサービスプリンシパル/マネージドID)と監査(Audit)ログを設定し、それ以外はEntra ID ProtectionEntra InternetPrivate Accessなどの機能を有効化した時に出力されるものなので、必要に応じて設定を加えていくのが良さそうです。

カテゴリ 内容 Log Analytics テーブル名
AuditLogs Entraテナント内のオブジェクト作成・更新・削除操作(ユーザー、グループ、アプリ、ライセンスなど) AuditLogs
SignInLogs ユーザーのサインイン SigninLogs
NonInteractiveUserSignInLogs ユーザーの非対話型サインイン(トークンでサインイン) AADNonInteractiveUserSignInLogs
ServicePrincipalSignInLogs サービスプリンシパル(アプリ)のサインイン AADServicePrincipalSignInLogs
ManagedIdentitySignInLogs マネージドIDのサインイン AADManagedIdentitySignInLogs
ProvisioningLogs 外部システム(Salesforce等)との同期によるユーザー/グループのプロビジョニング操作 AADProvisioningLogs
ADFSSignInLogs AD FS(Active Directory Federation Services)アプリのサインイン ADFSSignInLogs
RiskyUsers リスク判定されたユーザー AADRiskyUsers
UserRiskEvents ユーザーリスクを発生させた詳細イベント AADUserRiskEvents
RiskyServicePrincipals リスク判定されたサービスプリンシパル AADRiskyServicePrincipals
ServicePrincipalRiskEvents サービスプリンシパルリスクを引き起こしたイベント詳細 AADServicePrincipalRiskEvents
NetworkAccessTrafficLogs Entra Internet/Private Access の通信ログ NetworkAccessTraffic
RemoteNetworkHealthLogs Global Secure Accessリモートネットワークの正常性ログ RemoteNetworkHealthLogs
EnrichedOffice365AuditLogs Entra Internet Access で拡張されたMicrosoft365監査ログ EnrichedMicrosoft365AuditLogs
MicrosoftGraphActivityLogs Microsoft Graph API呼び出しのログ MicrosoftGraphActivityLogs
MicrosoftServicePrincipalSignInLogs Microsoft製サービス間のサービスプリンシパルサインイン MicrosoftServicePrincipalSignInLogs
CustomSecurityAttributeAuditLogs カスタムセキュリティ属性の追加・変更 AADCustomSecurityAttributeAuditLogs

Log Analytics ワークスペースのログ画面で上記の表に記載した各テーブルに対してkusto検索が行えます。

Azureリソースの操作ログ(アクティビティログ)

Azureリソースの操作ログはアクティビティログとしてデフォルトで収集されており、90日間分のログが閲覧可能です。

Azure Portalで閲覧可能なログ

アクティビティログはAzure Portalで閲覧することができます。
Azure Monitor、もしくはサブスクリプションや個別のAzureリソースでアクティビティログのメニューを開きます。

アクティビティログの保存期間

90日間を超える期間でログを保管したい場合や、Kustoを使ったクエリやアラート発報を行いたい場合は、Azureリソースと同じように診断設定を使用してLog Analyticsやストレージアカウントに送信します。

アクティビティログに関しては、Log Analyticsへ送信する場合でも、データ取り込み(インジェスと料金)と 90日以内の保存料金は無料です。

Log Analyticsには、90日間無料でデータが保存され、データインジェスト料金の対象にもならないテーブルがあり、アクティビティログもその対象となっています。
https://learn.microsoft.com/ja-jp/azure/azure-monitor/logs/data-retention-configure?utm_source=chatgpt.com&tabs=portal-3%2Cportal-1%2Cportal-2#log-tables-with-90-day-default-retention

ログの出力設定

アクティビティログの送信を定義する診断設定は、サブスクリプション管理グループ に対して設定します。

サブスクリプション単位でアクティビティログの出力設定を行う場合

Azure PortalのAzure Monitorのアクティビティログから診断設定を追加します。

診断設定の設定画面自体はいつもの見慣れたAzureリソースと同様です。

管理グループ単位でアクティビティログの出力設定を行う場合

サブスクリプションの上位の管理グループ単位でアクティビティログの出力設定を行うことも可能です。
サブスクリプションを複数作成するようなAzureテナントの場合は、ルート管理グループ等で一括して設定するのが良さそうです。

ただし、Azure Portalからの設定には対応しておらず、Azure Resource Manager REST APIを使用して管理グループの診断設定を有効にする必要があります。

https://learn.microsoft.com/ja-jp/azure/governance/management-groups/overview#auditing-management-groups-by-using-activity-logs

出力可能なログの種類

診断設定では、以下のログの出力設定が可能です。
操作ログを保存する目的であればAdministrativeを出力に選択します。必要に応じて他のログも出力も検討してください。

カテゴリ 対象 Log Analytics テーブル名
Administrative Azureリソースの作成・更新・削除・アクセス制御(IAM)変更など AzureActivity
Security Defender for Cloud等のセキュリティアラート AzureActivity
Policy Azure Policyの効果(Audit/Deny/DeployIfNotExists) AzureActivity
Recommendation Azure Advisorの最適化・コスト削減提案 AzureActivity
ServiceHealth Azureサービスの障害・計画メンテナンス情報 AzureActivity
Alert Azure Monitorアラートの発報/解消 AzureActivity
Autoscale 自動スケールのアウト/イン実行結果 AzureActivity
ResourceHealth リソース健全性ステータス変化 AzureActivity

Log Analytics ワークスペースのログ画面で上記の表に記載した各テーブルに対してkusto検索が行えます。
アクティビティログの各カテゴリのログは、全てAzureActivityテーブルに出力されるので、CategoryValueカラムでカテゴリ名でフィルタを掛けます。

最後に

復習を兼ねて、Azureで取得できるサインインや操作ログの種類と、保存手順をまとめてみました。

Activity Logs InsightsやEntra IDのMicrosoft Graphアクティビティログなど気になる機能もあるので、そのあたりも掘り下げて触っていきたいと思います!

参考

Discussion