Archivieren von Protokollen und Erstellen von Berichten der Berechtigungsverwaltung in Azure Monitor
Microsoft Entra ID speichert Überwachungsereignisse im Überwachungsprotokoll für maximal 30 Tage. Sie können die Überwachungsdaten jedoch über den in Wie lange speichert Microsoft Entra ID die Berichtsdaten? beschriebenen Standardaufbewahrungszeitraum hinaus aufbewahren, indem Sie diese an ein Azure Storage-Konto weiterleiten oder Azure Monitor verwenden. Anschließend können Sie Arbeitsmappen und benutzerdefinierte Abfragen und Berichte für diese Daten verwenden.
Konfigurieren von Microsoft Entra ID für die Verwendung mit Azure Monitor
Tipp
Die Schritte in diesem Artikel können je nach dem Portal, mit dem Sie beginnen, geringfügig variieren.
Bevor Sie Azure Monitor-Arbeitsmappen verwenden, müssen Sie Microsoft Entra ID so konfigurieren, dass eine Kopie der Überwachungsprotokolle an Azure Monitor gesendet wird.
Zum Archivieren von Microsoft Entra-Überwachungsprotokollen müssen Sie über Azure Monitor in einem Azure-Abonnement verfügen. Weitere Informationen zu Voraussetzungen und geschätzten Kosten für die Verwendung von Azure Monitor finden Sie unter Microsoft Entra-Aktivitätsprotokolle in Azure Monitor.
Melden Sie sich beim Microsoft Entra Admin Center mindestens mit der Rolle Sicherheitsadministrator an. Stellen Sie sicher, dass Sie Zugriff auf die Ressourcengruppe haben, die den Azure Monitor-Arbeitsbereich enthält.
Browsen Sie zu Identität>Überwachung & Integrität>Diagnoseeinstellungen.
Überprüfen Sie, ob bereits eine Einstellung zum Senden der Überwachungsprotokolle an diesen Arbeitsbereich vorhanden ist.
Wenn noch keine Einstellung vorhanden ist, wählen Sie Diagnoseeinstellung hinzufügen aus. Befolgen Sie die Anweisungen unter Integrieren von Microsoft Entra-Protokollen mit Azure Monitor-Protokollen, um das Microsoft Entra-Überwachungsprotokoll an den Azure Monitor-Arbeitsbereich zu senden.
Nachdem das Protokoll an Azure Monitor gesendet wurde, wählen Sie Log Analytics-Arbeitsbereiche und dann den Arbeitsbereich aus, der die Microsoft Entra-Überwachungsprotokolle enthält.
Wählen Sie Nutzung und geschätzte Kosten und dann Datenaufbewahrung aus. Stellen Sie den Schieberegler auf die Anzahl der Tage ein, für die Daten zum Erfüllen Ihrer Überwachungsanforderungen aufbewahrt werden sollen.
Wenn Sie später den Bereich der Datumsangaben in Ihrem Arbeitsbereich anzeigen möchten, können Sie die Arbeitsmappe Datumsbereich für archivierte Protokolle verwenden:
Browsen Sie zu Identität>Überwachung & Integrität>Workbooks.
Erweitern Sie den Abschnitt Problembehandlung für Microsoft Entra und wählen Sie Datumsbereich für archivierte Protokolle aus.
Anzeigen von Ereignissen für ein Zugriffspaket
Um Ereignisse für ein Zugriffspaket anzuzeigen, benötigen Sie Zugriff auf den zugrunde liegenden Azure Monitor-Arbeitsbereich (siehe Verwalten des Zugriffs auf Protokolldaten und Arbeitsbereiche in Azure Monitor) und eine der folgenden Rollen:
- Globaler Administrator
- Sicherheitsadministrator
- Sicherheitsleseberechtigter
- Meldet Reader
- Anwendungsadministrator
Gehen Sie folgendermaßen vor, um Ereignisse anzuzeigen:
Wählen Sie im Microsoft Entra Admin Center die Option Identität und dann Arbeitsmappen aus. Wenn Sie nur über ein einziges Abonnement verfügen, fahren Sie mit Schritt 3 fort.
Wenn Sie über mehrere Abonnements verfügen, wählen Sie das Abonnement aus, das den Arbeitsbereich enthält.
Wählen Sie die Arbeitsmappe Zugriffspaketaktivität aus.
Wählen Sie in dieser Arbeitsmappe einen Zeitbereich aus (wenn Sie nicht sicher sind, ändern Sie die Einstellung in Alle), und wählen Sie in der Dropdownliste aller Zugriffspakete mit Aktivitäten für diesen eine Zugriffspaket-ID aus. Es werden die Ereignisse im Zusammenhang mit dem Zugriffspaket angezeigt, die während des ausgewählten Zeitbereichs auftraten.
Jede Zeile enthält die Uhrzeit, die Zugriffspaket-ID, den Namen des Vorgangs, die Objekt-ID, den UPN und den Anzeigenamen des Benutzers, der den Vorgang gestartet hat. Weitere Details sind im JSON-Code enthalten.
Wenn Sie überprüfen möchten, ob Änderungen an Anwendungsrollenzuweisungen für eine Anwendung vorgenommen wurden, die nicht auf Zugriffspaketzuweisungen zurückzuführen sind (wenn z. B. ein globaler Admin eine Benutzerin oder einen Benutzer direkt einer Anwendungsrolle zugewiesen hat), können Sie die Arbeitsmappe mit dem Namen Aktivität der Anwendungsrollenzuweisung auswählen.
Erstellen von benutzerdefinierten Azure Monitor-Abfragen mit dem Microsoft Entra Admin Center
Sie können eigene Abfragen für Microsoft Entra-Überwachungsereignisse erstellen. Dazu zählen auch Ereignisse der Berechtigungsverwaltung.
Wählen Sie im Microsoft Entra Admin Center unter „Identität“ im Abschnitt „Überwachung“ im linken Navigationsmenü Protokolle aus, um eine neue Abfrageseite zu erstellen.
Der Arbeitsbereich sollte oben links auf der Abfrageseite angezeigt werden. Wenn Sie mehrere Azure Monitor-Arbeitsbereiche haben und der Arbeitsbereich, den Sie zum Speichern von Microsoft Entra-Überwachungsereignissen verwenden, nicht angezeigt wird, wählen Sie Bereich auswählen aus. Wählen Sie dann das richtige Abonnement und den entsprechenden Arbeitsbereich aus.
Löschen Sie als Nächstes im Textbereich der Abfrage die Zeichenfolge „Suchen *“, und ersetzen Sie sie durch die folgende Abfrage:
AuditLogs | where Category == "EntitlementManagement"
Wählen Sie dann Ausführen aus.
In der Tabelle werden standardmäßig die Überwachungsprotokollereignisse der letzten Stunde für die Berechtigungsverwaltung angezeigt. Sie können die Einstellung „Zeitbereich“ ändern, um ältere Ereignisse anzuzeigen. Wenn Sie diese Einstellung ändern, werden jedoch nur Ereignisse angezeigt, die nach der Konfiguration von Microsoft Entra ID für das Senden von Ereignissen an Azure Monitor aufgetreten sind.
Wenn Sie die ältesten und neuesten Überwachungsereignisse in Azure Monitor anzeigen möchten, verwenden Sie die folgende Abfrage:
AuditLogs | where TimeGenerated > ago(3653d) | summarize OldestAuditEvent=min(TimeGenerated), NewestAuditEvent=max(TimeGenerated) by Type
Weitere Informationen zu den Spalten, die für Überwachungsereignisse in Azure Monitor gespeichert werden, finden Sie unter Interpretieren des Microsoft Entra-Überwachungsprotokollschemas in Azure Monitor.
Erstellen von benutzerdefinierten Azure Monitor-Abfragen mit Azure PowerShell
Nachdem Sie Microsoft Entra ID zum Senden von Protokollen an Azure Monitor konfiguriert haben, können Sie über PowerShell auf die Protokolle zugreifen. Sie können dann über Skripts oder die PowerShell-Befehlszeile Abfragen senden, ohne über die Rolle „Globaler Administrator“ im Mandanten verfügen zu müssen.
Sicherstellen der richtigen Rollenzuweisung für Benutzer oder Dienstprinzipal
Stellen Sie sicher, dass dem Benutzer oder Dienstprinzipal, der sich bei Microsoft Entra ID authentifiziert, im Log Analytics-Arbeitsbereich die entsprechende Azure-Rolle zugewiesen ist. „Log Analytics-Leser“ oder „Log Analytics-Mitwirkender“ sind als Rollenoptionen verfügbar. Wenn Ihnen bereits eine dieser Rollen zugewiesen wurde, fahren Sie mit Abrufen der Log Analytics-ID mit einem Azure-Abonnement fort.
Führen Sie die folgenden Schritte aus, um die Rollenzuweisung festzulegen und eine Abfrage zu erstellen:
Suchen Sie im Microsoft Entra Admin Center den Log Analytics-Arbeitsbereich.
Wählen Sie Zugriffssteuerung (IAM).
Wählen Sie dann Hinzufügen aus, um eine Rollenzuweisung hinzuzufügen.
Installieren des Azure PowerShell-Moduls
Wenn Sie über die richtige Rollenzuweisung verfügen, starten Sie PowerShell, und installieren Sie das Azure PowerShell-Modul (falls noch nicht geschehen). Geben Sie dazu Folgendes ein:
install-module -Name az -allowClobber -Scope CurrentUser
Nun können Sie sich bei Microsoft Entra ID authentifizieren und die ID des Log Analytics-Arbeitsbereichs abrufen, den Sie abfragen möchten.
Abrufen der Log Analytics-ID mit einem Azure-Abonnement
Wenn Sie ein einzelnes Azure-Abonnement und einen einzelnen Log Analytics-Arbeitsbereich haben, geben Sie Folgendes ein, um sich bei Microsoft Entra ID zu authentifizieren, eine Verbindung mit dem jeweiligen Abonnement herzustellen und den Arbeitsbereich abzurufen:
Connect-AzAccount
$wks = Get-AzOperationalInsightsWorkspace
Abrufen der Log Analytics-ID mit mehreren Azure-Abonnements
Get-AzOperationalInsightsWorkspace funktioniert jeweils nur in einem Abonnement. Wenn Sie mehrere Azure-Abonnements haben, müssen Sie daher sicherstellen, dass Sie eine Verbindung mit dem Abonnement herstellen, zu dem der Log Analytics-Arbeitsbereich mit den Microsoft Entra-Protokollen gehört.
Mit den folgenden Cmdlets können Sie eine Liste der Abonnements anzeigen und nach der ID des Abonnements mit dem Log Analytics-Arbeitsbereich suchen:
Connect-AzAccount
$subs = Get-AzSubscription
$subs | ft
Sie können sich erneut authentifizieren und Ihre PowerShell-Sitzung mit einem Befehl (z. B. Connect-AzAccount –Subscription $subs[0].id
) mit diesem Abonnement verknüpfen. Weitere Informationen zum Authentifizieren bei Azure über die PowerShell (einschließlich der nicht interaktiven Authentifizierung) finden Sie unter Anmelden mit Azure PowerShell.
Wenn das Abonnement mehrere Log Analytics-Arbeitsbereiche enthält, können Sie mit dem Cmdlet Get-AzOperationalInsightsWorkspace eine Liste der Arbeitsbereiche zurückgeben. Sie können dann denjenigen finden, der über die Microsoft Entra-Protokolle verfügt. Das von diesem Cmdlet zurückgegebene Feld CustomerId
ist identisch mit der Arbeitsbereichs-ID, die im Microsoft Entra Admin Center in der Übersicht des Log Analytics-Arbeitsbereichs angezeigt wird.
$wks = Get-AzOperationalInsightsWorkspace
$wks | ft CustomerId, Name
Senden der Abfrage an den Log Analytics-Arbeitsbereich
Abschließend können Sie, wenn Sie einen Arbeitsbereich identifiziert haben, mit dem Befehl Invoke-AzOperationalInsightsQuery eine Kusto-Abfrage an diesen Arbeitsbereich senden. Diese Abfragen werden in der Kusto-Abfragesprache geschrieben.
Sie können beispielsweise mit PowerShell-Cmdlets den Datenbereich der aufgezeichneten Überwachungsereignisse aus dem Log Analytics-Arbeitsbereich abrufen. Dazu senden Sie eine Abfrage ähnlich der Folgenden:
$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
Mit einer Abfrage ähnlich der Folgenden können Sie auch Ereignisse der Berechtigungsverwaltung abrufen:
$bQuery = 'AuditLogs | where Category == "EntitlementManagement"'
$bResponse = Invoke-AzOperationalInsightsQuery -WorkspaceId $wks[0].CustomerId -Query $Query
$bResponse.Results |ft
Verwenden von Abfragefiltern
Sie können das Feld TimeGenerated
einschließen, um eine Abfrage auf einen bestimmten Zeitraum zu beschränken. Um beispielsweise die Überwachungsprotokollereignisse für Zugriffspaketzuweisungsrichtlinien für die Berechtigungsverwaltung abzurufen, die in den letzten 90 Tagen erstellt oder aktualisiert wurden, können Sie eine Abfrage bereitstellen, die dieses Feld sowie die Kategorie und den Vorgangstyp enthält.
AuditLogs |
where TimeGenerated > ago(90d) and Category == "EntitlementManagement" and Result == "success" and (AADOperationType == "CreateEntitlementGrantPolicy" or AADOperationType == "UpdateEntitlementGrantPolicy") |
project ActivityDateTime,OperationName, InitiatedBy, AdditionalDetails, TargetResources
Für die Überwachungsereignisse einiger Dienste wie die Berechtigungsverwaltung können Sie auch die betroffenen Eigenschaften der zu ändernden Ressourcen erweitern und filtern. Beispielsweise können Sie nur die Überwachungsprotokolldatensätze für Zugriffspaketzuweisungsrichtlinien anzeigen, die erstellt oder aktualisiert werden und für die keine Genehmigung für das Hinzufügen von Zuweisungen für Benutzer erforderlich ist.
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