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 ProtectionやEntra Internet/Private 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日間無料でデータが保存され、データインジェスト料金の対象にもならないテーブルがあり、アクティビティログもその対象となっています。
ログの出力設定
アクティビティログの送信を定義する診断設定は、サブスクリプション か 管理グループ に対して設定します。
サブスクリプション単位でアクティビティログの出力設定を行う場合
Azure PortalのAzure Monitorのアクティビティログから診断設定を追加します。
診断設定の設定画面自体はいつもの見慣れたAzureリソースと同様です。
管理グループ単位でアクティビティログの出力設定を行う場合
サブスクリプションの上位の管理グループ単位でアクティビティログの出力設定を行うことも可能です。
サブスクリプションを複数作成するようなAzureテナントの場合は、ルート管理グループ等で一括して設定するのが良さそうです。
ただし、Azure Portalからの設定には対応しておらず、Azure Resource Manager REST APIを使用して管理グループの診断設定を有効にする必要があります。
出力可能なログの種類
診断設定では、以下のログの出力設定が可能です。
操作ログを保存する目的であれば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