共用方式為


教學課程:建立Log Analytics工作區以分析登入記錄

在本教學課程中,您會了解如何:

  • 建立 Log Analytics 工作區
  • 設定診斷設定以整合登入記錄與Log Analytics工作區
  • 使用 Kusto 查詢語言執行查詢 (KQL)

必要條件

若要使用 Log Analytics 來分析活動記錄,您需要下列角色和需求:

建立 Log Analytics 工作區

在此步驟中,您會建立Log Analytics工作區,也就是您最終傳送登入記錄的位置。 您必須先有 Azure 資源群組,才能建立工作區。

  1. 以至少具有Log Analytics 參與者許可權的安全性系統管理員身分登入 Azure 入口網站。

  2. 瀏覽至「Log Analytics 工作區」

  3. 選取 建立

    Log Analytics 工作區頁面中 [建立] 按鈕的螢幕快照。

  4. 在 [建立 Log Analytics 工作區] 頁面上,執行下列步驟:

    1. 選取您的訂用帳戶。

    2. 選取資源群組。

    3. 指定您工作區的名稱。

    4. 選取您的區域。

    建立新日誌分析工作區詳細頁面的螢幕快照。

  5. 選擇「檢閱 + 建立」。

  6. 選取 [建立],然後等候部署。 您可能需要重新整理頁面,才能看到新的工作區。

設定診斷設定

若要將身分識別記錄資訊傳送至新的工作區,您必須設定診斷設定。 Azure 和 Microsoft Entra 有不同的診斷設定選項,因此在下一組步驟中,讓我們切換至 Microsoft Entra 系統管理中心,以確保所有專案都與身分識別相關。

  1. 以至少安全性系統管理員的身分登入Microsoft Entra 系統管理中心

  2. 流覽至 Entra ID>監視與健康>診斷設定

  3. 選取 [新增診斷設定]。

    [新增診斷設定] 選項的螢幕快照。

  4. 在 [診斷設定] 頁面上,執行下列步驟:

    1. 提供診斷設定的名稱。

    2. 在 [記錄] 中,選取 [稽核記錄] 和 [登錄記錄]。

    3. 在 [目的地詳細資料] 中,選取傳送至 [Log Analytics],然後選取新的記錄分析工作區。

    4. 選取儲存

    選取診斷設定選項的螢幕快照。

您選取的記錄最多可能需要 15 分鐘的時間,記錄才會填入 Log Analytics 工作區。

在 Log Analytics 中執行查詢

透過記錄串流至 Log Analytics 工作區,您可以使用 Kusto 查詢語言 (KQL) 來執行查詢。 執行查詢的最低特殊許可權角色是 報表讀取者 角色

  1. 流覽至 Entra ID>監控與狀態>日誌分析

  2. 在 [搜尋] 文字方塊中,輸入您的查詢,然後選取 [執行]

Kusto 查詢範例

從輸入資料中取出 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)

選取五個隨機條目,並在結果中投射出您希望看到的欄位:

  • SigninLogs | take 5 | project ClientAppUsed, Identity, ConditionalAccessStatus, Status, TimeGenerated

取得前 5 個項目 (以遞減方式排序),並投影您想要查看的資料行:

  • SigninLogs | take 5 | project ClientAppUsed, Identity, ConditionalAccessStatus, Status, TimeGenerated

將值與其他兩個資料行結合,以建立新的資料行:

  • SigninLogs | limit 10 | extend RiskUser = strcat(RiskDetail, "-", Identity) | project RiskUser, ClientAppUsed

後續步驟