在 Azure 監視器中封存權利管理的記錄和報告

Microsoft Entra ID 會在稽核記錄中儲存最多 30 天的稽核事件。 不過,您可以透過將稽核數據路由傳送至 Azure 儲存體 帳戶或使用 Azure 監視器,將稽核數據保留超過預設保留期限,如 Microsoft Entra ID 儲存報告數據多久?中所述。 然後,您可以針對此數據使用活頁簿和自定義查詢和報表。

設定 Microsoft Entra ID 以使用 Azure 監視器

提示

本文中的步驟可能會根據您從開始的入口網站稍有不同。

使用 Azure 監視器活頁簿之前,您必須先設定 Microsoft Entra ID,將其稽核記錄複本傳送至 Azure 監視器。

封存 Microsoft Entra 稽核記錄需要您在 Azure 訂用帳戶中擁有 Azure 監視器。 您可以深入瞭解在 Azure 監視器中使用 Azure 監視器在 Microsoft Entra 活動記錄中使用 Azure 監視器的必要條件和預估成本。

必要角色:全域 管理員 istrator

  1. 以全域 管理員 istrator 身分登入 Microsoft Entra 系統管理中心。 請確定您可以存取包含 Azure 監視器工作區的資源群組。

  2. 流覽至 [身分>識別監視與健康情況>診斷設定]。

  3. 檢查是否已設定將稽核記錄傳送至該工作區。

  4. 如果還沒有設定,請選取 [新增診斷設定]。 使用整合 Microsoft Entra 記錄與 Azure 監視器記錄中的指示,將 Microsoft Entra 稽核記錄傳送至 Azure 監視器工作區。

    Diagnostics settings pane

  5. 將記錄傳送至 Azure 監視器之後,請選取 [Log Analytics 工作區],然後選取包含 Microsoft Entra 稽核記錄的工作區。

  6. 選取 [使用量] 和 [估計成本],然後選取 [數據保留]。 將滑桿變更為您想要保留數據的天數,以符合稽核需求。

    Log Analytics workspaces pane

  7. 稍後,若要查看工作區中保留的日期範圍,您可以使用 [封存記錄日期範圍 ] 活頁簿:

    1. 流覽至 [身分識別>監視與健康情況>活頁簿]。

    2. 展開 Microsoft Entra Troubleshooting 區段,然後選取 [封存記錄日期範圍]。

檢視存取套件的事件

若要檢視存取套件的事件,您必須能夠存取基礎 Azure 監視器工作區(如需相關信息,請參閱 管理 Azure 監視器 中記錄數據和工作區的存取權),以及下列其中一個角色:

  • 全域管理員
  • 安全性系統管理員
  • 安全性讀取者
  • 報告讀取者
  • 應用程式系統管理員

使用下列程式來檢視事件:

  1. 在 Microsoft Entra 系統管理中心中,選取 [身分 識別],然後選取 [ 活頁簿]。 如果您只有一個訂用帳戶,請移至步驟 3。

  2. 如果您有多個訂用帳戶,請選取包含工作區的訂用帳戶。

  3. 選取名為 Access Package Activity的活頁簿。

  4. 在該活頁簿中,選取時間範圍(如果不確定,請變更為 [全部 ]),然後從在該時間範圍內具有活動之所有存取套件的下拉式清單中選取存取套件標識符。 將會顯示與所選時間範圍期間所發生之存取套件相關的事件。

    View access package events

    每個數據列都包含時間、存取套件識別碼、作業名稱、物件標識碼、UPN,以及啟動作業的用戶顯示名稱。 JSON 中包含其他詳細數據。

  5. 如果您想要查看應用程式角色指派是否有因存取套件指派而對應用程式角色指派所做的變更,例如由全域管理員將使用者直接指派給應用程式角色,則您可以選取名為 應用程式角色指派活動的活頁簿。

    View app role assignments

使用 Microsoft Entra 系統管理中心建立自定義 Azure 監視器查詢

您可以在 Microsoft Entra 稽核事件上建立自己的查詢,包括權利管理事件。

  1. 在 Microsoft Entra 系統管理中心的 [身分識別] 中,選取 左側導覽功能表中 [監視] 區段底下的 [記錄 ],以建立新的查詢頁面。

  2. 您的工作區應該會顯示在查詢頁面的左上方。 如果您有多個 Azure 監視器工作區,且您用來儲存 Microsoft Entra 稽核事件的工作區未顯示,請選取 [選取 範圍]。 然後,選取正確的訂用帳戶和工作區。

  3. 接下來,在查詢文字區域中,刪除字串 「search *」,並將它取代為下列查詢:

    AuditLogs | where Category == "EntitlementManagement"
    
  4. 然後,選取 [執行]

    Click Run to start query

下表顯示依預設,過去一小時內權利管理的稽核記錄事件。 您可以變更 [時間範圍] 設定,以檢視較舊的事件。 不過,變更此設定只會顯示 Microsoft Entra ID 設定為將事件傳送至 Azure 監視器之後所發生的事件。

如果您想要知道 Azure 監視器中保存的最舊且最新的稽核事件,請使用下列查詢:

AuditLogs | where TimeGenerated > ago(3653d) | summarize OldestAuditEvent=min(TimeGenerated), NewestAuditEvent=max(TimeGenerated) by Type

如需儲存在 Azure 監視器中稽核事件之數據行的詳細資訊,請參閱 在 Azure 監視器中解譯 Microsoft Entra 稽核記錄架構。

使用 Azure PowerShell 建立自定義 Azure 監視器查詢

設定 Microsoft Entra ID 以將記錄傳送至 Azure 監視器之後,您可以透過 PowerShell 存取記錄。 然後,從腳本或PowerShell命令行傳送查詢,而不需要成為租使用者中的全域 管理員 istrator。

確定用戶或服務主體具有正確的角色指派

請確定您將驗證至 Microsoft Entra ID 的使用者或服務主體位於 Log Analytics 工作區中適當的 Azure 角色中。 角色選項為Log Analytics讀取者或Log Analytics參與者。 如果您已經在其中一個角色中,請跳至使用一個 Azure 訂用帳戶擷取 Log Analytics 識別碼。

若要設定角色指派並建立查詢,請執行下列步驟:

  1. 在 Microsoft Entra 系統管理中心中,找出 Log Analytics 工作區

  2. 選取存取控制 (IAM)

  3. 然後選取 [ 新增 ] 以新增角色指派。

    Add a role assignment

安裝 Azure PowerShell 模組

擁有適當的角色指派后,請啟動 PowerShell 並 安裝 Azure PowerShell 模組 (如果您尚未這麼做),方法是輸入:

install-module -Name az -allowClobber -Scope CurrentUser

現在您已準備好向 Microsoft Entra 識別碼進行驗證,並擷取您要查詢的 Log Analytics 工作區標識碼。

使用一個 Azure 訂用帳戶擷取 Log Analytics 識別符

如果您只有單一 Azure 訂用帳戶和單一 Log Analytics 工作區,請輸入下列命令以向 Microsoft Entra ID 進行驗證、聯機到該訂用帳戶,然後擷取該工作區:

Connect-AzAccount
$wks = Get-AzOperationalInsightsWorkspace

擷取具有多個 Azure 訂用帳戶的 Log Analytics 識別符

Get-AzOperationalInsightsWorkspace 一次在一個訂用帳戶中運作。 因此,如果您有多個 Azure 訂用帳戶,您想要確定您已使用 Microsoft Entra 記錄連線到具有 Log Analytics 工作區的訂用帳戶。

下列 Cmdlet 會顯示訂用帳戶清單,並尋找具有 Log Analytics 工作區的訂用帳戶標識碼:

Connect-AzAccount
$subs = Get-AzSubscription
$subs | ft

您可以使用 之類的 Connect-AzAccount –Subscription $subs[0].id命令,重新驗證PowerShell工作階段,並將PowerShell工作階段與該訂用帳戶產生關聯。 若要深入瞭解如何從 PowerShell 向 Azure 進行驗證,包括非互動方式,請參閱 使用 Azure PowerShell 登入。

如果該訂用帳戶中有多個Log Analytics工作區,則 Cmdlet Get-AzOperationalInsightsWorkspace 會傳回工作區清單。 然後,您可以找到具有 Microsoft Entra 記錄的記錄檔。 CustomerId此 Cmdlet 傳回的字段與 Log Analytics 工作區概觀中 Microsoft Entra 系統管理中心所顯示的「工作區標識符」值相同。

$wks = Get-AzOperationalInsightsWorkspace
$wks | ft CustomerId, Name

將查詢傳送至Log Analytics工作區

最後,識別出工作區之後,您可以使用 Invoke-AzOperationalInsightsQuery 將 Kusto 查詢傳送至該工作區。 這些查詢是以 Kusto 查詢語言撰寫

例如,您可以使用 PowerShell Cmdlet 從 Log Analytics 工作區擷取稽核事件記錄的日期範圍,以傳送查詢,例如:

$aQuery = "AuditLogs | where TimeGenerated > ago(3653d) | summarize OldestAuditEvent=min(TimeGenerated), NewestAuditEvent=max(TimeGenerated) by Type"
$aResponse = Invoke-AzOperationalInsightsQuery -WorkspaceId $wks[0].CustomerId -Query $aQuery
$aResponse.Results |ft

您也可以使用查詢來擷取權利管理事件,例如:

$bQuery = 'AuditLogs | where Category == "EntitlementManagement"'
$bResponse = Invoke-AzOperationalInsightsQuery -WorkspaceId $wks[0].CustomerId -Query $Query
$bResponse.Results |ft 

使用查詢篩選

您可以包含 TimeGenerated 欄位,將查詢範圍限定在特定時間範圍。 例如,若要擷取在過去 90 天內建立或更新權利管理存取套件指派原則的稽核記錄事件,您可以提供包含此字段的查詢以及類別和作業類型。

AuditLogs | 
where TimeGenerated > ago(90d) and Category == "EntitlementManagement" and Result == "success" and (AADOperationType == "CreateEntitlementGrantPolicy" or AADOperationType == "UpdateEntitlementGrantPolicy") | 
project ActivityDateTime,OperationName, InitiatedBy, AdditionalDetails, TargetResources

針對某些服務的稽核事件,例如權利管理,您也可以擴充和篩選正在變更之資源受影響的屬性。 例如,您可以檢視建立或更新存取套件指派原則的稽核記錄檔記錄,而不需要核准使用者新增指派。

AuditLogs | 
where TimeGenerated > ago(90d) and Category == "EntitlementManagement" and Result == "success" and (AADOperationType == "CreateEntitlementGrantPolicy" or AADOperationType == "UpdateEntitlementGrantPolicy") | 
mv-expand TargetResources | 
where TargetResources.type == "AccessPackageAssignmentPolicy" | 
project ActivityDateTime,OperationName,InitiatedBy,PolicyId=TargetResources.id,PolicyDisplayName=TargetResources.displayName,MP1=TargetResources.modifiedProperties | 
mv-expand MP1 | 
where (MP1.displayName == "IsApprovalRequiredForAdd" and MP1.newValue == "\"False\"") |
order by ActivityDateTime desc 

下一步