Log di archiviazione e creazione di report su gestione entitlement in Monitoraggio di Azure
Microsoft Entra ID archivia gli eventi di controllo per un massimo di 30 giorni nel log di controllo. Tuttavia, è possibile mantenere i dati relativi alle attività di controllo per più tempo rispetto al periodo di conservazione predefinito descritto in Per quanto tempo Microsoft Entra ID archivia i dati dei report? instradandoli a un account di archiviazione di Azure con Monitoraggio di Azure. È quindi possibile usare le cartelle di lavoro e le query e i report personalizzati in questi dati.
Configurare Microsoft Entra ID per l'uso di Monitoraggio di Azure
Suggerimento
La procedura descritta in questo articolo può variare leggermente in base al portale di partenza.
Prima di usare le cartelle di lavoro di Monitoraggio di Azure, è necessario configurare Microsoft Entra ID per inviare una copia dei log di controllo a Monitoraggio di Azure.
Per archiviare i log di controllo di Microsoft Entra è necessario disporre di Monitoraggio di Azure in una sottoscrizione di Azure. Per altre informazioni sui prerequisiti e sui costi stimati per l'uso di Monitoraggio di Azure, leggere Log attività di Microsoft Entra in Monitoraggio di Azure.
Accedere all'interfaccia di amministrazione di Microsoft Entra almeno come Amministratore della sicurezza. Assicurarsi di avere accesso al gruppo di risorse contenente l'area di lavoro Monitoraggio di Azure.
Passare a Identità> Monitoraggio e stato>Impostazioni di diagnostica .
Verificare se è già presente un'impostazione per inviare i log di controllo all'area di lavoro.
Se non è già presente un'impostazione, selezionare Aggiungi impostazione di diagnostica. Usare le istruzioni in Integrare log di Microsoft Entra con i log di monitoraggio di Azure per inviare il log di controllo di Microsoft Entra all'area di lavoro Monitoraggio di Azure.
Dopo l'invio del log a Monitoraggio di Azure, selezionare Aree di lavoro Log Analyticse selezionare l'area di lavoro che contiene i log di controllo di Microsoft Entra.
Selezionare Utilizzo e costi stimati e selezionare Conservazione dei dati. Modificare il dispositivo di scorrimento in base al numero di giorni per cui si vuole mantenere i dati per soddisfare i requisiti di controllo.
In seguito, per visualizzare l'intervallo di date contenute nell'area di lavoro, è possibile usare la cartella di lavoro Intervallo di date dei log archiviati:
Andare a Identità>Monitoraggio e integrità>Cartelle di lavoro.
Espandere la sezione Risoluzione dei problemi di Microsoft Entra e selezionare Intervallo di date del log archiviati.
Visualizzare gli eventi per un pacchetto di accesso
Per visualizzare gli eventi per un pacchetto di accesso, è necessario disporre dell'accesso all'area di lavoro Monitoraggio di Azure sottostante (vedere Gestire l'accesso ai dati di log e alle aree di lavoro in Monitoraggio di Azure per informazioni) e in uno dei ruoli seguenti:
- Amministratore globale
- Amministratore della sicurezza
- Ruolo con autorizzazioni di lettura per la sicurezza
- Amministratore che legge i report
- Amministratore applicazione
Usare la procedura seguente per visualizzare gli eventi:
Nell'interfaccia di amministrazione di Microsoft Entra, selezionare Identity e quindi selezionare Cartelle di lavoro. Se è disponibile solo una sottoscrizione, passare al passaggio 3.
Se sono disponibili più sottoscrizioni, selezionare la sottoscrizione che contiene l'area di lavoro.
Selezionare la cartella di lavoro denominata Attività del pacchetto di accesso.
Nella cartella di lavoro, selezionare un intervallo di tempo (modificare in Tutti se non si è sicuri) e selezionare un ID del pacchetto di accesso nell'elenco a discesa di tutti i pacchetti di accesso con attività durante tale intervallo di tempo. Vengono visualizzati gli eventi correlati al pacchetto di accesso che si sono verificati durante l'intervallo di tempo selezionato.
Ogni riga include l'ora, l'ID del pacchetto di accesso, il nome dell'operazione, l'ID dell'oggetto, il nome dell'entità utente e il nome visualizzato dell'utente che ha avviato l'operazione. Altri dettagli sono inclusi in JSON.
Per verificare se sono state apportate modifiche alle assegnazioni di ruolo dell'applicazione per un'applicazione non riconducibili alle assegnazioni dei pacchetti di accesso, ad esempio da un Amministratore globale che assegna direttamente un utente a un ruolo dell’applicazione, è possibile selezionare la cartella di lavoro denominata Attività di assegnazione dei ruoli dell'applicazione.
Creare query di Monitoraggio di Azure personalizzate usando l’interfaccia di amministrazione di Microsoft Entra
È possibile creare query personalizzate sugli eventi di controllo di Microsoft Entra, inclusi gli eventi di gestione entitlement.
In Identity dell’interfaccia di amministrazione di Microsoft Entra, fare clic su Log nella sezione Monitoraggio del menu di spostamento a sinistra per creare una nuova pagina di query.
L'area di lavoro deve essere visualizzata in alto a sinistra della pagina query. Se sono presenti più aree di lavoro di Monitoraggio di Azure e l'area di lavoro usata per archiviare gli eventi di controllo di Microsoft Entra non è visualizzata, selezionare Seleziona ambito. Selezionare quindi la sottoscrizione e l'area di lavoro corrette.
Successivamente, nell'area di testo della query, eliminare la stringa "Cerca*" e sostituirla con la query seguente:
AuditLogs | where Category == "EntitlementManagement"
Quindi seleziona Esegui.
La tabella visualizza gli eventi del log di controllo per la gestione entitlement dell'ultima ora per impostazione predefinita. È possibile modificare l'impostazione "Intervallo di tempo" per visualizzare gli eventi meno recenti. Tuttavia, modificando questa impostazione verranno visualizzati solo gli eventi che si sono verificati dopo la configurazione di Microsoft Entra ID per l'invio di eventi a Monitoraggio di Azure.
Per informazioni sugli eventi di controllo meno recenti e più recenti contenuti in Monitoraggio di Azure, usare la query seguente:
AuditLogs | where TimeGenerated > ago(3653d) | summarize OldestAuditEvent=min(TimeGenerated), NewestAuditEvent=max(TimeGenerated) by Type
Per altre informazioni sulle colonne archiviate per gli eventi di controllo in Monitoraggio di Azure, vedere Interpretare lo schema dei log di controllo di Microsoft Entra in Monitoraggio di Azure.
Creare query di Monitoraggio di Azure personalizzate usando Azure PowerShell
È possibile accedere ai log tramite PowerShell dopo aver configurato Microsoft Entra ID per inviare i log a Monitoraggio di Azure. Inviare quindi le query dagli script o dalla riga di comando di PowerShell, senza che sia necessario un amministratore globale nel tenant.
Verificare che l'assegnazione di ruolo dell'utente o dell'entità servizio sia corretta
Assicurarsi che l'utente o l'entità servizio che esegue l'autenticazione con Microsoft Entra ID siano nel ruolo di Azure appropriato nell'area di lavoro Log Analytics. Le opzioni dei ruoli sono Lettore di Log Analytics o Collaboratore di Log Analytics. Se si ha già uno di questi ruoli, passare a Recuperare l'ID di Log Analytics con una sottoscrizione di Azure.
Per impostare l'assegnazione di ruolo e creare una query, eseguire i passaggi seguenti:
Nell'interfaccia di amministrazione di Microsoft Entra individuare l'area di lavoro Log Analytics.
Seleziona Controllo di accesso (IAM).
Fare selezionare Aggiungi per aggiungere un'assegnazione di ruolo.
Installare un modulo Azure PowerShell
Una volta eseguita l'assegnazione di ruolo appropriata, avviare PowerShell e installare il modulo di Azure PowerShell (se non è già stato fatto), digitando:
install-module -Name az -allowClobber -Scope CurrentUser
A questo punto è possibile eseguire l'autenticazione a Microsoft Entra ID e recuperare l'ID dell'area di lavoro Log Analytics per cui si sta eseguendo la query.
Recuperare l'ID di Log Analytics con una sottoscrizione di Azure
Se si dispone di una sola sottoscrizione di Azure e di una singola area di lavoro Log Analytics, digitare quanto segue per eseguire l'autenticazione a Microsoft Entra ID, connettersi a tale sottoscrizione e recuperare l'area di lavoro:
Connect-AzAccount
$wks = Get-AzOperationalInsightsWorkspace
Recuperare l'ID di Log Analytics con più sottoscrizioni di Azure
Get-AzOperationalInsightsWorkspace funziona in una sottoscrizione alla volta. Perciò, se si dispone di più sottoscrizioni di Azure, è necessario assicurarsi di connettersi a quella contenente l'area di lavoro Log Analytics con i log di Microsoft Entra.
I cmdlet seguenti visualizzano un elenco di sottoscrizioni e individuano l'ID della sottoscrizione contenente l'area di lavoro Log Analytics:
Connect-AzAccount
$subs = Get-AzSubscription
$subs | ft
È possibile eseguire nuovamente l'autenticazione e associare la sessione di PowerShell a tale sottoscrizione usando un comando come Connect-AzAccount –Subscription $subs[0].id
. Per altre informazioni su come eseguire l'autenticazione in Azure da PowerShell, anche in modo non interattivo, vedere Accedere con Azure PowerShell.
Se nella sottoscrizione sono presenti più aree di lavoro Log Analytics, il cmdlet Get-AzOperationalInsightsWorkspace restituisce l'elenco delle aree di lavoro. Sarà quindi possibile trovare quella contenente i log di Microsoft Entra. Il campo CustomerId
restituito da questo cmdlet corrisponde al valore dell'"ID area di lavoro" visualizzato nell’interfaccia di amministrazione di Microsoft Entra nella panoramica dell'area di lavoro Log Analytics.
$wks = Get-AzOperationalInsightsWorkspace
$wks | ft CustomerId, Name
Inviare la query all'area di lavoro Log Analytics
Infine, dopo aver identificato un'area di lavoro, è possibile usare Invoke-AzOperationalInsightsQuery per inviare una query Kusto a tale area di lavoro. Queste query sono scritte nel linguaggio di query Kusto.
Ad esempio, è possibile recuperare l'intervallo di date dei record degli eventi di controllo dall'area di lavoro Log Analytics, con i cmdlet di PowerShell per inviare una query come la seguente:
$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
È anche possibile recuperare gli eventi di gestione entitlement usando una query come la seguente:
$bQuery = 'AuditLogs | where Category == "EntitlementManagement"'
$bResponse = Invoke-AzOperationalInsightsQuery -WorkspaceId $wks[0].CustomerId -Query $Query
$bResponse.Results |ft
Uso dei filtri di query
È possibile includere il campo TimeGenerated
per definire l'ambito di una query in un intervallo di tempo specifico. Ad esempio, per recuperare gli eventi del log di controllo per i criteri di assegnazione dei pacchetti di accesso alla gestione entitlement creati o aggiornati negli ultimi 90 giorni, è possibile fornire una query che include questo campo, nonché la categoria e il tipo di operazione.
AuditLogs |
where TimeGenerated > ago(90d) and Category == "EntitlementManagement" and Result == "success" and (AADOperationType == "CreateEntitlementGrantPolicy" or AADOperationType == "UpdateEntitlementGrantPolicy") |
project ActivityDateTime,OperationName, InitiatedBy, AdditionalDetails, TargetResources
Per gli eventi di controllo di alcuni servizi, ad esempio la gestione entitlement, è anche possibile espandere e filtrare le proprietà interessate delle risorse da modificare. Ad esempio, è possibile visualizzare solo i record del log di controllo per i criteri di assegnazione dei pacchetti di accesso creati o aggiornati, che non richiedono l'approvazione per gli utenti per l'aggiunta di un'assegnazione.
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