Visualizzare i log attività per le modifiche del controllo degli accessi in base al ruolo di Azure
A volte sono necessarie informazioni sulle modifiche del controllo degli accessi in base al ruolo di Azure, ad esempio per scopi di controllo o risoluzione dei problemi. Ogni volta che un utente apporta modifiche alle assegnazioni di ruolo o alle definizioni di ruolo all'interno delle sottoscrizioni, le modifiche vengono registrate nel log attività di Azure. È possibile visualizzare i log attività per visualizzare tutte le modifiche al controllo degli accessi in base al ruolo di Azure negli ultimi 90 giorni.
Operazioni registrate
Ecco le operazioni correlate al controllo degli accessi in base al ruolo di Azure registrate nel log attività:
- Crea assegnazione ruolo
- Elimina assegnazione ruolo
- Crea o aggiorna la definizione del ruolo personalizzata
- Elimina la definizione del ruolo personalizzata
Azure portal
Il modo più semplice per iniziare è visualizzare i log attività con il portale di Azure. Lo screenshot seguente mostra un esempio di operazioni di assegnazione di ruolo nel log attività. Include anche un'opzione per scaricare i log come file CSV.
Per ottenere altre informazioni, fare clic su una voce per aprire il riquadro di riepilogo. Fare clic sulla scheda JSON per ottenere un log dettagliato.
Il log attività nel portale include diversi filtri. Ecco i filtri correlati al controllo degli accessi in base al ruolo di Azure:
Filtra | Valore |
---|---|
Categoria evento |
|
Operazione |
|
Per altre informazioni sui log attività, vedere Log attività di Azure.
Interpretare una voce di log
L'output del log dalla scheda JSON, Azure PowerShell o dall'interfaccia della riga di comando di Azure può includere molte informazioni. Ecco alcune delle proprietà chiave da cercare quando si tenta di interpretare una voce di log. Per filtrare l'output del log usando Azure PowerShell o l'interfaccia della riga di comando di Azure, vedere le sezioni seguenti.
Proprietà | Valori di esempio | Descrizione |
---|---|---|
authorization:action | Microsoft.Authorization/roleAssignments/write | Crea assegnazione ruolo |
Microsoft.Authorization/roleAssignments/delete | Elimina assegnazione ruolo | |
Microsoft.Authorization/roleDefinitions/write | Creare o aggiornare la definizione del ruolo | |
Microsoft.Authorization/roleDefinitions/delete | Eliminare la definizione del ruolo | |
authorization:scope | /subscriptions/{subscriptionId} /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId} |
Ambito dell'azione |
caller | admin@example.com {objectId} |
Chi ha avviato l'azione |
eventTimestamp | 2021-03-01T22:07:41.126243Z | Ora in cui si è verificata l'azione |
status:value | Iniziato Operazione riuscita Non inviata |
Stato dell'azione |
Azure PowerShell
Per visualizzare i log attività con Azure PowerShell, usare il comando Get-AzLog.
Questo comando elenca tutte le modifiche relative alle assegnazioni di ruolo in una sottoscrizione per gli ultimi 7 giorni:
Get-AzLog -StartTime (Get-Date).AddDays(-7) | Where-Object {$_.Authorization.Action -like 'Microsoft.Authorization/roleAssignments/*'}
Questo comando elenca tutte le modifiche relative alle definizioni di ruolo in un gruppo di risorse per gli ultimi 7 giorni:
Get-AzLog -ResourceGroupName pharma-sales -StartTime (Get-Date).AddDays(-7) | Where-Object {$_.Authorization.Action -like 'Microsoft.Authorization/roleDefinitions/*'}
Filtrare l'output del log
L'output del log può includere molte informazioni. Questo comando elenca tutte le modifiche apportate all'assegnazione di ruolo e alla definizione di ruolo in una sottoscrizione per gli ultimi sette giorni e filtra l'output:
Get-AzLog -StartTime (Get-Date).AddDays(-7) | Where-Object {$_.Authorization.Action -like 'Microsoft.Authorization/role*'} | Format-List Caller,EventTimestamp,{$_.Authorization.Action},Properties
Di seguito è riportato un esempio dell'output del log filtrato durante la creazione di un'assegnazione di ruolo:
Caller : admin@example.com
EventTimestamp : 3/1/2021 10:07:42 PM
$_.Authorization.Action : Microsoft.Authorization/roleAssignments/write
Properties :
statusCode : Created
serviceRequestId: {serviceRequestId}
eventCategory : Administrative
entity : /subscriptions/{subscriptionId}/resourceGroups/example-group/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}
message : Microsoft.Authorization/roleAssignments/write
hierarchy : {tenantId}/{subscriptionId}
Caller : admin@example.com
EventTimestamp : 3/1/2021 10:07:41 PM
$_.Authorization.Action : Microsoft.Authorization/roleAssignments/write
Properties :
requestbody : {"Id":"{roleAssignmentId}","Properties":{"PrincipalId":"{principalId}","PrincipalType":"User","RoleDefinitionId":"/providers/Microsoft.Authorization/roleDefinitions/fa23ad8b-c56e-40d8-ac0c-ce449e1d2c64","Scope":"/subscriptions/
{subscriptionId}/resourceGroups/example-group"}}
eventCategory : Administrative
entity : /subscriptions/{subscriptionId}/resourceGroups/example-group/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}
message : Microsoft.Authorization/roleAssignments/write
hierarchy : {tenantId}/{subscriptionId}
Se si usa un'entità servizio per creare assegnazioni di ruolo, la proprietà Caller sarà un ID oggetto entità servizio. È possibile usare Get-AzADServicePrincipal per ottenere informazioni sull'entità servizio.
Caller : {objectId}
EventTimestamp : 3/1/2021 9:43:08 PM
$_.Authorization.Action : Microsoft.Authorization/roleAssignments/write
Properties :
statusCode : Created
serviceRequestId: {serviceRequestId}
eventCategory : Administrative
Interfaccia della riga di comando di Azure
Per visualizzare i log attività usando l'interfaccia della riga di comando di Azure, usare il comando az monitor activity-log list.
Questo comando elenca i log attività in un gruppo di risorse dal 1° marzo, in attesa di sette giorni:
az monitor activity-log list --resource-group example-group --start-time 2021-03-01 --offset 7d
Questo comando elenca i log attività per il provider di risorse di autorizzazione dal 1° marzo, in attesa di sette giorni:
az monitor activity-log list --namespace "Microsoft.Authorization" --start-time 2021-03-01 --offset 7d
Filtrare l'output del log
L'output del log può includere molte informazioni. Questo comando elenca tutte le modifiche alle definizioni di ruolo e alle assegnazioni di ruolo in una sottoscrizione in attesa di sette giorni e filtra l'output:
az monitor activity-log list --namespace "Microsoft.Authorization" --start-time 2021-03-01 --offset 7d --query '[].{authorization:authorization, caller:caller, eventTimestamp:eventTimestamp, properties:properties}'
Di seguito è riportato un esempio dell'output del log filtrato durante la creazione di un'assegnazione di ruolo:
[
{
"authorization": {
"action": "Microsoft.Authorization/roleAssignments/write",
"role": null,
"scope": "/subscriptions/{subscriptionId}/resourceGroups/example-group/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}"
},
"caller": "admin@example.com",
"eventTimestamp": "2021-03-01T22:07:42.456241+00:00",
"properties": {
"entity": "/subscriptions/{subscriptionId}/resourceGroups/example-group/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
"eventCategory": "Administrative",
"hierarchy": "{tenantId}/{subscriptionId}",
"message": "Microsoft.Authorization/roleAssignments/write",
"serviceRequestId": "{serviceRequestId}",
"statusCode": "Created"
}
},
{
"authorization": {
"action": "Microsoft.Authorization/roleAssignments/write",
"role": null,
"scope": "/subscriptions/{subscriptionId}/resourceGroups/example-group/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}"
},
"caller": "admin@example.com",
"eventTimestamp": "2021-03-01T22:07:41.126243+00:00",
"properties": {
"entity": "/subscriptions/{subscriptionId}/resourceGroups/example-group/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
"eventCategory": "Administrative",
"hierarchy": "{tenantId}/{subscriptionId}",
"message": "Microsoft.Authorization/roleAssignments/write",
"requestbody": "{\"Id\":\"{roleAssignmentId}\",\"Properties\":{\"PrincipalId\":\"{principalId}\",\"PrincipalType\":\"User\",\"RoleDefinitionId\":\"/providers/Microsoft.Authorization/roleDefinitions/fa23ad8b-c56e-40d8-ac0c-ce449e1d2c64\",\"Scope\":\"/subscriptions/{subscriptionId}/resourceGroups/example-group\"}}"
}
}
]
Log di Monitoraggio di Azure
I log di Monitoraggio di Azure sono un altro strumento che è possibile usare per raccogliere e analizzare le modifiche del controllo degli accessi in base al ruolo di Azure per tutte le risorse di Azure. I log di Monitoraggio di Azure offrono i vantaggi seguenti:
- Possibilità di scrivere query e logica complesse
- Integrazione con avvisi, Power BI e altri strumenti
- Salvataggio dei dati per periodi di conservazione più estesi
- Riferimenti incrociati con gli altri log, ad esempio relativi a sicurezza e macchine virtuali o personalizzati
Ecco i passaggi di base per iniziare:
Configurare l'attività per l'area di lavoro.
Visualizzare i dati analitici dei log attività. Un modo rapido per passare alla pagina Panoramica log attività consiste nel fare clic sull'opzione Log .
Facoltativamente, usare Log Analytics di Monitoraggio di Azure per eseguire query e visualizzare i log. Per altre informazioni, vedere Introduzione alle query di log in Monitoraggio di Azure.
Ecco una query che restituisce le nuove assegnazioni di ruolo organizzate in base al provider di risorse di destinazione:
AzureActivity
| where TimeGenerated > ago(60d) and Authorization contains "Microsoft.Authorization/roleAssignments/write" and ActivityStatus == "Succeeded"
| parse ResourceId with * "/providers/" TargetResourceAuthProvider "/" *
| summarize count(), makeset(Caller) by TargetResourceAuthProvider
Ecco una query che restituisce le modifiche alle assegnazioni di ruolo visualizzate in un grafico:
AzureActivity
| where TimeGenerated > ago(60d) and Authorization contains "Microsoft.Authorization/roleAssignments"
| summarize count() by bin(TimeGenerated, 1d), OperationName
| render timechart