目次

  1. はじめに
  2. Log Analytics ワークスペースを作成する
  3. Entra ID の診断設定を有効にする
  4. アクショングループを作成する
  5. アラートルールを作成する
  6. アラートに対処する
  7. まとめ

0. はじめに

特定のアカウントでサインインが発生した場合、管理者として通知を受け取りたい場面があるかと思います。
本記事では、Microsoft Entra ID において診断設定を有効化し、特定のユーザーのサインインログを基にアラートを通知するための設定手順をご紹介します。
手順を実施するにあたり、必要となる権限およびライセンスは以下の通りです。

  • 監視共同作成者(Monitoring Contributor)(Azure ロール)
  • ディレクトリ閲覧者(Entraロール)
  • Microsoft Entra ID P1 または P2 ライセンス(組織の人数分)

1. Log Analytics ワークスペースを作成する

Azure ポータルのホームの検索ウィンドウで「Log Analytics ワークスペース」と検索し、該当のサービスを選択します。
必要事項を記入し、「作成」します。

2. Entra ID の診断設定を有効にする

続いて、Entra ID → 監視 → 診断設定 の順に進みます。
「+診断設定を追加する」をクリックし、診断設定を構成します。
本記事では AuditLogs と SignInLogs を、先ほど作成した Log Analytics ワークスペースへ送信します。
なお、送信先でログが表示されはじめるまで、最大で3日かかる場合があります。


ここで、AuditLogs と SignInLogs の違いを簡単に説明します。
AuditLogs は管理者が行った「変更」が記録の対象であるのに対し SignInLogs は「サインイン」そのものが対象となります。

AuditLogsSignInLogs
内容何を変更したか誰がログインしたか
ログの例ユーザー作成
ロール付与 等
成功/失敗
IPアドレス/国 等

なお、この診断設定は Microsoft 365 テナント全体の機能であるため、特定のユーザーのログだけに絞って収集することができません。Log Analytics ワークスペースへのログ取り込み量に応じた Azure 利用料が高額となる可能性があるため、初回は1週間程度など短期間のみログを収集し、月額費用への影響を確認することをおすすめします。

Log Analytics ワークスペースごとのコストを確認するには、Log Analytics ワークスペース → 設定 → 使用量と推定コスト の順に進みます。

3. アクショングループを作成する

アクショングループでは、アラートの通知先を設定します。
既にアクショングループがある場合は「4. アラートルールを作成する」のステップに進みます。
Azure ポータルで、監視 → アラート → アクショングループ の順に開きます。

「+作成」からアクショングループを作成します。

「アクション」タブでは、メール通知の場合空欄のままにしておきます。
「確認と作成」をクリックし、「作成」します。

4. アラートルールを作成する

監視の対象としたいユーザーのオブジェクト ID をメモしておきます。
確認箇所:Entra ID → Users → オブジェクト ID

Azure ポータルで、監視 → アラート → アラートルール の順に移動します。
「+作成」を選択し、手順1で作成した Log Analytics ワークスペースを選択します。

条件タブではシグナル名から「カスタム ログ検索」を選択します。
表示されたログ検索ウィンドウに検索クエリを記入し、「実行」をクリックします。 UserId は先ほどメモしたユーザーのオブジェクト ID を使用します。

【サンプルのクエリ】

SigninLogs
| where UserId == "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"

複数のアカウントを対象に検索する場合は or で区切ります。

SigninLogs
| where UserId == “00aa00aa-bb11-cc22-dd33-44ee44ee44ee” or UserId == "11bb11bb-cc22-dd33-ee44-55ff55ff55ff"

【サンプルの結果】

① 時刻の表示を UTC からローカル時刻に変更可能です
② 展開することでサインインの詳細な内容を確認できます

「アラートの編集を続行する」をクリックし、その他の項目を設定します。

項目
メジャーテーブルの行
集計の種類カウント
集計の粒度10分(何分スパンの測定をしたいか)
リソース ID 列分割しない
しきい値の種類Static
演算子次の値より大きい
しきい値0
評価の頻度10分(何分毎に測定したいか)

次のアクションタブでは、手順3で作成したアクショングループを選択します。

次の詳細タブでも、各項目を設定します。 基本的には既定のままで問題ありません。

項目
重大度重大(後から変更可能)
アラートルール名<任意の名前>(半角英数推奨)
アラートを自動的に解決するはい

最後に内容を確認し、「作成」します。

5. アラートに対処する

まずはログを保管します。
届いたアラート通知メールの「View alert details」から詳細を確認します。

「結果をログに表示」をクリックします。

時刻の表示をローカル時刻に変更後、「共有」からすべての列を CSV でエクスポートします。

保管後、結果のレビューを行います。project オペレーターで表示する列を選択することも可能です。

【サンプルクエリ】

SigninLogs
| where UserId == "00aa00aa-bb11-cc22-dd33-44ee44ee44ee“
| project TimeGenerated, ResultSignature, UserPrincipalName, Location, IPAddress, AppDisplayName, ClientAppUsed

6. まとめ

以上、特定アカウントのサインインを検知し、管理者へ自動通知するための設定手順をご紹介しました。
本設定を利用することで、通常は使われないアカウントの利用や、不審なサインインにいち早く気付くことが可能になります。特に緊急用アカウントや重要アカウントの監視は、セキュリティ対策として有効です。

なお、診断設定はテナント全体に影響し、ログ量に応じて Azure 利用料が発生します。実運用前にコストを確認し、必要に応じて監視期間や条件を調整することをおすすめします。

監視やアラート設計についてお悩みの点がございましたら、お気軽にお問い合わせください。