Visualizzare i log attività per le modifiche del controllo degli accessi in base al ruolo di Azure
Talvolta è necessario visualizzare informazioni sul controllo degli accessi in base al ruolo di Azure (Azure RBAC), ad esempio a scopo di controllo o per la risoluzione di problemi. Ogni volta che un utente apporta modifiche alle assegnazioni o alle definizioni di ruolo all'interno delle sottoscrizioni, le modifiche vengono registrate in Log attività di Azure. È possibile visualizzare i log attività per vedere tutte le modifiche apportate 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 che vengono registrate nel log attività:
- Crea assegnazione ruolo
- Elimina assegnazione ruolo
- Crea o aggiorna la definizione del ruolo personalizzata
- Elimina la definizione del ruolo personalizzata
Portale di Azure
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 inoltre un'opzione per scaricare i log in formato 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. Di seguito sono elencati i filtri correlati a Azure-RBAC:
Filtro | 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 |
---|---|---|
autorizzazione:azione | 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 | |
autorizzazione:ambito | /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 |
stato:valore | Avviato Riuscito 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 alle assegnazioni di ruolo e alle definizioni di ruolo in una sottoscrizione per gli ultimi sette giorni e filtra i risultati:
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
Log di Monitoraggio di Azure è un altro strumento che è possibile usare per raccogliere e analizzare le modifiche Azure RBAC 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 andare 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 dei log del 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