Condividi tramite


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.

Log attività tramite il portale - 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.

Log attività che usano il portale con riquadro di riepilogo aperto - Screenshot

Il log attività nel portale include diversi filtri. Di seguito sono elencati i filtri correlati a Azure-RBAC:

Filtro 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
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:

  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 andare alla pagina Panoramica log attività consiste nel fare clic sull'opzione Log.

    Opzione Log di Monitoraggio di Azure nel portale

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

Log attività tramite il portale Advanced Analytics - screenshot

Passaggi successivi