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.

Activity logs using the portal - screenshot

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.

Activity logs using the portal with summary pane open - screenshot

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
  • Amministrativo
Operazione
  • Crea assegnazione ruolo
  • Elimina assegnazione ruolo
  • Crea o aggiorna la definizione del ruolo personalizzata
  • Elimina la definizione del ruolo personalizzata

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:

  1. Creare un'area di lavoro Log Analytics.

  2. Configurare l'attività per l'area di lavoro.

  3. Visualizzare i dati analitici dei log attività. Un modo rapido per passare alla pagina Panoramica log attività consiste nel fare clic sull'opzione Log .

    Azure Monitor logs option in portal

  4. 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

Activity logs using the Advanced Analytics portal - screenshot

Passaggi successivi