チュートリアル: Log Analytics ワークスペースを構成する
このチュートリアルでは、次の作業を行う方法について説明します。
- 監査とサインインのログ用に Log Analytics ワークスペースを構成する
- Kusto クエリ言語 (KQL) を使用してクエリを実行する
- クイックスタート テンプレートを使用してカスタム ブックを作成する
- 既存のブック テンプレートにクエリを追加する
前提条件
Log Analytics を使ってアクティビティ ログを分析するには、次のものが必要です。
- Premium P1 ライセンスがある Microsoft Entra テナント
- Log Analytics ワークスペース および そのワークスペースへのアクセス
- Azure Monitor と Microsoft Entra ID の適切なロール
以下の記事の内容を確認します。
Log Analytics の構成
ヒント
この記事の手順は、開始するポータルによって若干異なる場合があります。
この手順では、監査とサインインのログ用に Log Analytics ワークスペースを構成する方法の概要を示します。 Log Analytics ワークスペースを構成するには、ワークスペースを作成して、診断設定を構成する必要があります。
ワークスペースの作成
Azure portal にサービス管理者以上としてサインインします
Log Analytics ワークスペースに移動します。
[作成] を選択します
[Log Analytics ワークスペースの作成] ページで、次の手順を実行します。
サブスクリプションを選択します。
リソース グループを選択します。
ワークスペースに名前を付けます。
地域を選択します。
[確認および作成] を選択します。
[作成] を選択し、デプロイを待ちます。 新しいワークスペースを表示するには、ページの更新が必要な場合があります。
診断設定を構成する
診断設定を構成するには、Microsoft Entra 管理センターに切り替えて、ID ログ情報を新しいワークスペースに送信する必要があります。
セキュリティ管理者以上として Microsoft Entra 管理センターにサインインします。
[Identity] (ID)>[監視と正常性]>[診断設定] の順に移動します。
[診断設定の追加] を選択します。
[診断設定] ページで、次の手順を実行します。
[カテゴリの詳細] で、 [AuditLogs] と [SigninLogs] を選択します。
[宛先の詳細] で、 [Log Analytics への送信] を選択し、新しい Log Analytics ワークスペースを選択します。
[保存] を選択します。
Log Analytics で Kusto 照会言語 (KQL) を使用してログのクエリを実行できるようになりました。 ログが設定されるまで約 15 分待つことが必要な場合があります。
Log Analytics でクエリを実行する
この手順では、Kusto クエリ言語 (KQL) を使用してクエリを実行する方法を示します。
クエリの実行
Microsoft Entra 管理センターにレポート閲覧者以上でサインインしてください。
[ID]>[監視と正常性]>[Log Analytics] に移動します。
[検索] ボックスにクエリを入力し、[実行] を選択します。
KQL クエリの例
入力データから 10 個のエントリをランダムに取得する:
SigninLogs | take 10
条件付きアクセスが成功したサインインを確認する
SigninLogs | where ConditionalAccessStatus == "success" | project UserDisplayName, ConditionalAccessStatus
成功した数をカウントする
SigninLogs | where ConditionalAccessStatus == "success" | project UserDisplayName, ConditionalAccessStatus | count
成功したサインインの数をユーザー別および日別に集計する:
SigninLogs | where ConditionalAccessStatus == "success" | summarize SuccessfulSign-ins = count() by UserDisplayName, bin(TimeGenerated, 1d)
ユーザーが特定の期間に特定の操作を行った回数を表示する:
AuditLogs | where TimeGenerated > ago(30d) | where OperationName contains "Add member to role" | summarize count() by OperationName, Identity
操作名で結果をピボットする
AuditLogs | where TimeGenerated > ago(30d) | where OperationName contains "Add member to role" | project OperationName, Identity | evaluate pivot(OperationName)
内部結合を使用して監査ログとサインイン ログをマージする:
AuditLogs |where OperationName contains "Add User" |extend UserPrincipalName = tostring(TargetResources[0].userPrincipalName) | |project TimeGenerated, UserPrincipalName |join kind = inner (SigninLogs) on UserPrincipalName |summarize arg_min(TimeGenerated, *) by UserPrincipalName |extend SigninDate = TimeGenerated
クライアント アプリの種類別にサインイン数を表示する:
SigninLogs | summarize count() by ClientAppUsed
日別にサインイン数をカウントする:
SigninLogs | summarize NumberOfEntries=count() by bin(TimeGenerated, 1d)
5 つのエントリをランダムに取得し、結果に表示する列を射影する:
SigninLogs | take 5 | project ClientAppUsed, Identity, ConditionalAccessStatus, Status, TimeGenerated
上位の 5 つを降順で取得し、表示する列を射影する
SigninLogs | take 5 | project ClientAppUsed, Identity, ConditionalAccessStatus, Status, TimeGenerated
値を他の 2 つの列に結合して新しい列を作成する:
SigninLogs | limit 10 | extend RiskUser = strcat(RiskDetail, "-", Identity) | project RiskUser, ClientAppUsed
カスタム ブックを作成する
この手順では、クイックスタート テンプレートを使用して新しいブックを作成する方法を示します。
Microsoft Entra 管理センターにレポート閲覧者以上でサインインしてください。
[ID]>[監視と正常性]>[ブック] の順に移動します。
[クイック スタート] セクションで、[空] を選択します。
[追加] メニューで、[テキストの追加] を選択します。
テキスト ボックスに「
# Client apps used in the past week
」と入力し、[編集が完了しました] を選択します。テキスト ウィンドウの下にある [追加] メニューを開き、[クエリの追加] を選択します。
クエリ テキスト ボックスに「
SigninLogs | where TimeGenerated > ago(7d) | project TimeGenerated, UserDisplayName, ClientAppUsed | summarize count() by ClientAppUsed
」と入力します。[クエリの実行] を選択します。
ツール バーの [視覚化] メニューで、[円グラフ] を選択します。
ページの上部の [編集が完了しました] を選択します。
[保存] アイコンを選択してブックを保存します。
表示されるダイアログ ボックスにタイトルを入力し、リソース グループを選択して、[適用] を選択します。
ブック テンプレートにクエリを追加する
この手順では、既存のブック テンプレートにクエリを追加する方法を示します。 この例は、条件付きアクセスの成功と失敗の分布を示すクエリに基づいています。
Microsoft Entra 管理センターにレポート閲覧者以上でサインインしてください。
[ID]>[監視と正常性]>[ブック] の順に移動します。
[条件付きアクセス] セクションで、[条件付きアクセスの分析情報とレポート] を選択します。
ツール バーで、[編集] を選択します。
ツール バーで、[編集] ボタンの横にある 3 つのドット、[追加]、[クエリの追加] の順に選択します。
クエリ テキスト ボックスに「
SigninLogs | where TimeGenerated > ago(20d) | where ConditionalAccessPolicies != "[]" | summarize dcount(UserDisplayName) by bin(TimeGenerated, 1d), ConditionalAccessStatus
」と入力します。[クエリの実行] を選択します。
[期間] メニューで [クエリに設定] を選択します。
[視覚化] メニューから [横棒グラフ] を選択します。
[詳細設定] を開きます。
[グラフのタイトル] フィールドに「
Conditional Access status over the last 20 days
」と入力し、[編集が完了しました] を選択します。
条件付きアクセスの成功と失敗のグラフに、テナントの色分けされたスナップショットが表示されます。