Gestire l'accesso ai dati di log e alle aree di lavoro in Monitoraggio di Azure

Monitoraggio di Azure archivia i dati di log in un'area di lavoro Log Analytics. Un'area di lavoro è un contenitore che include informazioni sui dati e sulla configurazione. Per gestire l'accesso ai dati di log, eseguire varie attività amministrative correlate all'area di lavoro.

Questo articolo illustra come gestire l'accesso ai log e amministrare le aree di lavoro che le contengono, tra cui come concedere l'accesso a:

  • Area di lavoro che usa le autorizzazioni dell'area di lavoro.
  • Utenti che devono accedere ai dati di log da risorse specifiche usando il controllo degli accessi in base al ruolo di Azure, noto anche come contesto delle risorse
  • Utenti che devono accedere ai dati di log in una tabella specifica nell'area di lavoro usando il controllo degli accessi in base al ruolo di Azure.

Per comprendere i concetti relativi ai log relativi alle strategie di controllo degli accessi in base al ruolo di Azure e alle strategie di accesso, leggere la progettazione della distribuzione dei log di Monitoraggio di Azure

Configurare la modalità di controllo di accesso

È possibile visualizzare la modalità di controllo di accesso configurata in un'area di lavoro dal portale di Azure o con Azure PowerShell. È possibile modificare questa impostazione usando uno dei metodi supportati seguenti:

  • Portale di Azure

  • Azure PowerShell

  • Modello di Azure Resource Manager

Dal portale di Azure

È possibile visualizzare la modalità di controllo di accesso dell'area di lavoro corrente nella pagina Panoramica dell'area di lavoro nel menu dell'area di lavoro Log Analytics .

View workspace access control mode

  1. Accedere al portale di Azure all'indirizzo https://portal.azure.com.
  2. Nella portale di Azure selezionare Aree di lavoro Log Analytics nell'area > di lavoro.

È possibile modificare questa impostazione dalla pagina Proprietà dell'area di lavoro. Se non si dispone delle autorizzazioni per configurare l'area di lavoro, la modifica dell'impostazione verrà disabilitata.

Change workspace access mode

Utilizzo di PowerShell

Usare il comando seguente per esaminare la modalità di controllo di accesso per tutte le aree di lavoro nella sottoscrizione:

Get-AzResource -ResourceType Microsoft.OperationalInsights/workspaces -ExpandProperties | foreach {$_.Name + ": " + $_.Properties.features.enableLogAccessUsingOnlyResourcePermissions}

L'output sarà simile al seguente:

DefaultWorkspace38917: True
DefaultWorkspace21532: False

Il valore indica che l'area di False lavoro è configurata con la modalità di accesso al contesto dell'area di lavoro. Il valore indica che l'area di True lavoro è configurata con la modalità di accesso al contesto delle risorse.

Nota

Se un'area di lavoro viene restituita senza un valore booleano ed è vuota, corrisponde anche ai risultati di un False valore.

Usare lo script seguente per impostare la modalità di controllo di accesso per un'area di lavoro specifica sull'autorizzazione del contesto di risorsa:

$WSName = "my-workspace"
$Workspace = Get-AzResource -Name $WSName -ExpandProperties
if ($Workspace.Properties.features.enableLogAccessUsingOnlyResourcePermissions -eq $null)
    { $Workspace.Properties.features | Add-Member enableLogAccessUsingOnlyResourcePermissions $true -Force }
else
    { $Workspace.Properties.features.enableLogAccessUsingOnlyResourcePermissions = $true }
Set-AzResource -ResourceId $Workspace.ResourceId -Properties $Workspace.Properties -Force

Usare lo script seguente per impostare la modalità di controllo di accesso per tutte le aree di lavoro nella sottoscrizione sull'autorizzazione del contesto di risorsa:

Get-AzResource -ResourceType Microsoft.OperationalInsights/workspaces -ExpandProperties | foreach {
if ($_.Properties.features.enableLogAccessUsingOnlyResourcePermissions -eq $null)
    { $_.Properties.features | Add-Member enableLogAccessUsingOnlyResourcePermissions $true -Force }
else
    { $_.Properties.features.enableLogAccessUsingOnlyResourcePermissions = $true }
Set-AzResource -ResourceId $_.ResourceId -Properties $_.Properties -Force
}

Uso di un modello di Resource Manager

Per configurare la modalità di accesso in un modello di azure Resource Manager, impostare il flag di funzionalità enableLogAccessUsingOnlyResourcePermissions nell'area di lavoro su uno dei valori seguenti.

  • false: impostare l'area di lavoro su autorizzazioni del contesto dell'area di lavoro. Questa è l'impostazione predefinita se il flag non è impostato.
  • true: impostare l'area di lavoro su autorizzazioni del contesto di risorsa.

Gestire l'accesso usando le autorizzazioni dell'area di lavoro

A ogni area di lavoro possono essere associati più account, ognuno dei quali può avere accesso a diverse aree di lavoro. L'accesso viene gestito usando il controllo degli accessi in base al ruolo di Azure.

Le attività seguenti richiedono anche le autorizzazioni di Azure:

Azione Autorizzazioni di Azure necessarie Note
Aggiunta e rimozione di soluzioni di monitoraggio Microsoft.Resources/deployments/*
Microsoft.OperationalInsights/*
Microsoft.OperationsManagement/*
Microsoft.Automation/*
Microsoft.Resources/deployments/*/write
Queste autorizzazioni devono essere concesse a livello di gruppo di risorse o di sottoscrizione.
Modifica del piano tariffario Microsoft.OperationalInsights/workspaces/*/write
Visualizzazione dei dati nei riquadri delle soluzioni Backup e Site Recovery Amministratore/Coamministratore Risorse di accesso distribuite usando il modello di distribuzione classica
Creare un'area di lavoro nel portale di Azure Microsoft.Resources/deployments/*
Microsoft.OperationalInsights/workspaces/*
Visualizzare le proprietà di base dell'area di lavoro e immettere il pannello dell'area di lavoro nel portale Microsoft.OperationalInsights/workspaces/read
Eseguire query sui log usando qualsiasi interfaccia Microsoft.OperationalInsights/workspaces/query/read
Accedere a tutti i tipi di log usando query Microsoft.OperationalInsights/workspaces/query/*/read
Accedere a una tabella di log specifica Microsoft.OperationalInsights/workspaces/query/<table_name>/read
Leggere le chiavi dell'area di lavoro per consentire l'invio di log a questa area di lavoro Microsoft.OperationalInsights/workspaces/sharedKeys/action

Gestire l'accesso con le autorizzazioni di Azure

Per concedere l'accesso all'area di lavoro Log Analytics usando le autorizzazioni di Azure, seguire la procedura descritta in Assegnare i ruoli di Azure per gestire l'accesso alle risorse della sottoscrizione di Azure. Ad esempio, ruoli personalizzati, vedere Ruoli personalizzati di esempio

Azure offre due ruoli utente predefiniti per le aree di lavoro di Log Analytics:

  • Lettore di Log Analytics
  • Collaboratore di Log Analytics

I membri del ruolo Lettore di Log Analytics possono eseguire queste operazioni:

  • Visualizzare e cercare tutti i dati di monitoraggio
  • Visualizzare le impostazioni di monitoraggio, inclusa la configurazione della diagnostica di Azure in tutte le risorse di Azure.

Il ruolo di lettore di Log Analytics include le azioni di Azure seguenti:

Tipo Autorizzazione Descrizione
Azione */read Consente di visualizzare tutte le risorse di Azure e la configurazione delle risorse. Include la visualizzazione di:
Stato dell'estensione macchina virtuale
Configurazione della diagnostica di Azure nelle risorse
Tutte le proprietà e le impostazioni di tutte le risorse.
Per le aree di lavoro, consente autorizzazioni complete senza restrizioni per leggere le impostazioni dell'area di lavoro ed eseguire query sui dati. Vedere altre opzioni granulari sopra.
Azione Microsoft.OperationalInsights/workspaces/analytics/query/action Deprecato, non è necessario assegnarli agli utenti.
Azione Microsoft.OperationalInsights/workspaces/search/action Deprecato, non è necessario assegnarli agli utenti.
Azione Microsoft.Support/* Consente di aprire casi di supporto
Non azione Microsoft.OperationalInsights/workspaces/sharedKeys/read Impedisce la lettura della chiave dell'area di lavoro, necessaria per l'uso dell'API di raccolta dati e per l'installazione degli agenti. Ciò impedisce all'utente di aggiungere nuove risorse all'area di lavoro

I membri del ruolo Collaboratore di Log Analytics possono eseguire queste operazioni:

  • Include tutti i privilegi del ruolo lettore di Log Analytics, consentendo all'utente di leggere tutti i dati di monitoraggio

  • Creare e configurare account di Automazione

  • Consente di aggiungere e rimuovere soluzioni di gestione

    Nota

    Per eseguire correttamente le ultime due azioni, questa autorizzazione deve essere concessa a livello di gruppo di risorse o di abbonamento.

  • Leggere le chiavi dell'account di archiviazione

  • Configurare la raccolta di log da Archiviazione di Azure

  • Modificare le impostazioni di monitoraggio per le risorse di Azure, tra cui

    • Aggiunta dell'estensione macchina virtuale alle VM
    • Configurazione della diagnostica di Azure in tutte le risorse di Azure

Nota

È possibile usare la possibilità di aggiungere un'estensione macchina virtuale a una VM per ottenere il controllo completo su di essa.

Il ruolo di collaboratore di Log Analytics include le azioni di Azure seguenti:

Autorizzazione Descrizione
*/read Consente di visualizzare tutte le risorse e le configurazioni delle risorse. Include la visualizzazione di:
Stato dell'estensione macchina virtuale
Configurazione della diagnostica di Azure nelle risorse
Tutte le proprietà e le impostazioni di tutte le risorse.
Per le aree di lavoro, consente autorizzazioni complete senza restrizioni per leggere l'impostazione dell'area di lavoro ed eseguire query sui dati. Vedere altre opzioni granulari sopra.
Microsoft.Automation/automationAccounts/* Consente di creare e configurare account di automazione di Azure, inclusa l'aggiunta e modifica di runbook
Microsoft.ClassicCompute/virtualMachines/extensions/*
Microsoft.Compute/virtualMachines/extensions/*
Consente di aggiungere, aggiornare e rimuovere estensioni macchina virtuale, inclusa l'estensione Microsoft Monitoring Agent e l'estensione agente OMS per Linux
Microsoft.ClassicStorage/storageAccounts/listKeys/action
Microsoft.Storage/storageAccounts/listKeys/action
Consente di visualizzare la chiave dell'account di archiviazione, è necessaria per configurare Log Analytics per la lettura dei log dagli account di archiviazione di Azure
Microsoft.Insights/alertRules/* Consente di aggiungere, aggiornare e rimuovere regole di avviso
Microsoft.Insights/diagnosticSettings/* Consente di aggiungere, aggiornare e rimuovere impostazioni di diagnostica dalle risorse di Azure
Microsoft.OperationalInsights/* Aggiungere, aggiornare e rimuovere la configurazione per le aree di lavoro Log Analytics. Per modificare le impostazioni avanzate dell'area di lavoro, l'utente deve Microsoft.OperationalInsights/workspaces/write.
Microsoft.OperationsManagement/* Consente di aggiungere e rimuovere soluzioni di gestione
Microsoft.Resources/deployments/* Consente di creare ed eliminare distribuzioni, è necessaria per aggiungere e rimuovere soluzioni, aree di lavoro e account di automazione
Microsoft.Resources/subscriptions/resourcegroups/deployments/* Consente di creare ed eliminare distribuzioni, è necessaria per aggiungere e rimuovere soluzioni, aree di lavoro e account di automazione

Per aggiungere e rimuovere utenti da un ruolo utente, è necessario avere le autorizzazioni Microsoft.Authorization/*/Delete e Microsoft.Authorization/*/Write.

Usare questi ruoli per concedere agli utenti l'accesso ad ambiti diversi:

  • Sottoscrizione: accesso a tutte le aree di lavoro nella sottoscrizione
  • Gruppo di risorse: accesso a tutte le aree di lavoro nel gruppo di risorse
  • Risorsa: accesso alla sola area di lavoro specificata

È consigliabile eseguire assegnazioni a livello di risorsa (area di lavoro) per garantire un controllo di accesso accurato. Usare i ruoli personalizzati per creare ruoli con le autorizzazioni specifiche necessarie.

Autorizzazioni per le risorse

Quando gli utenti eseguono query sui log da un'area di lavoro usando l'accesso al contesto delle risorse, avranno le autorizzazioni seguenti per la risorsa:

Autorizzazione Descrizione
Microsoft.Insights/logs/<tableName>/read

Esempi:
Microsoft.Insights/logs/*/read
Microsoft.Insights/logs/Heartbeat/read
Possibilità di visualizzare tutti i dati di log per la risorsa.
Microsoft.Insights/diagnosticSettings/write Possibilità di configurare l'impostazione di diagnostica per consentire la configurazione dei log per questa risorsa.

/read L'autorizzazione viene in genere concessa da un ruolo che include */lettura o* autorizzazioni, ad esempio i ruoli Lettore e Collaboratore predefiniti. I ruoli personalizzati che includono azioni specifiche o ruoli predefiniti dedicati potrebbero non includere questa autorizzazione.

Vedere Definizione del controllo di accesso per tabella di seguito se si vuole creare un controllo di accesso diverso per tabelle diverse.

Esempi di ruoli personalizzati

  1. Per concedere a un utente l'accesso ai dati di log dalle risorse, seguire questa procedura:

    • Configurare la modalità di controllo di accesso dell'area di lavoro per l'uso delle autorizzazioni per l'area di lavoro o le risorse

    • Concedere agli utenti */read o Microsoft.Insights/logs/*/read alle autorizzazioni le risorse. Se sono già assegnati al ruolo lettore di Log Analytics nell'area di lavoro, è sufficiente.

  2. Per concedere a un utente l'accesso ai dati di log dalle risorse e configurare le relative risorse per inviare i log all'area di lavoro, seguire questa procedura:

    • Configurare la modalità di controllo di accesso dell'area di lavoro per l'uso delle autorizzazioni per l'area di lavoro o le risorse

    • Concedere agli utenti le autorizzazioni seguenti per l'area di lavoro: Microsoft.OperationalInsights/workspaces/read e Microsoft.OperationalInsights/workspaces/sharedKeys/action. Con queste autorizzazioni, gli utenti non possono eseguire query a livello di area di lavoro. Possono enumerare l'area di lavoro e usarla come destinazione per le impostazioni di diagnostica o la configurazione dell'agente.

    • Concedere agli utenti le autorizzazioni seguenti per le risorse: Microsoft.Insights/logs/*/read e Microsoft.Insights/diagnosticSettings/write. Se sono già assegnati al ruolo Collaboratore Log Analytics , è stato assegnato il ruolo Lettore o sono state concesse */read le autorizzazioni per questa risorsa, è sufficiente.

  3. Per concedere a un utente l'accesso ai dati di log dalle proprie risorse senza poter leggere gli eventi di sicurezza e inviare i dati, eseguire le operazioni seguenti:

    • Configurare la modalità di controllo di accesso dell'area di lavoro per l'uso delle autorizzazioni per l'area di lavoro o le risorse

    • Concedere agli utenti le autorizzazioni seguenti per le risorse: Microsoft.Insights/logs/*/read.

    • Aggiungere il comando NonAction seguente per impedire agli utenti di leggere il tipo SecurityEvent: Microsoft.Insights/logs/SecurityEvent/read. NonAction deve trovarsi nello stesso ruolo personalizzato dell'azione che fornisce l'autorizzazione di lettura (Microsoft.Insights/logs/*/read). Se l'utente ha intrinseco l'azione di lettura da un altro ruolo assegnato a questa risorsa o alla sottoscrizione o al gruppo di risorse, sarà in grado di leggere tutti i tipi di log. Questo vale anche se ereditano */read, che esistono, ad esempio, con il ruolo Lettore o Collaboratore.

  4. Per concedere a un utente l'accesso ai dati di log dalle risorse e leggere tutti i dati di accesso Azure AD e leggere i dati di log della soluzione Gestione aggiornamenti dall'area di lavoro, seguire questa procedura:

    • Configurare la modalità di controllo di accesso dell'area di lavoro per l'uso delle autorizzazioni per l'area di lavoro o le risorse

    • Concedere agli utenti le autorizzazioni seguenti per l'area di lavoro:

      • Microsoft.OperationalInsights/workspaces/read: obbligatorio in modo che l'utente possa enumerare l'area di lavoro e aprire il pannello dell'area di lavoro nel portale di Azure
      • Microsoft.OperationalInsights/workspaces/query/read : obbligatorio per ogni utente che può eseguire query
      • Microsoft.OperationalInsights/workspaces/query/SigninLogs/read: per poter leggere Azure AD log di accesso
      • Microsoft.OperationalInsights/workspaces/query/Update/read : per poter leggere i log della soluzione Gestione aggiornamenti
      • Microsoft.OperationalInsights/workspaces/query/UpdateRunProgress/read : per poter leggere i log della soluzione Gestione aggiornamenti
      • Microsoft.OperationalInsights/workspaces/query/UpdateSummary/read : per poter leggere i log di gestione degli aggiornamenti
      • Microsoft.OperationalInsights/workspaces/query/Heartbeat/read : necessario per poter usare la soluzione Gestione aggiornamenti
      • Microsoft.OperationalInsights/workspaces/query/ComputerGroup/read : necessario per poter usare la soluzione Gestione aggiornamenti
    • Concedere agli utenti le autorizzazioni seguenti per le risorse: */read, assegnate al ruolo Lettore o Microsoft.Insights/logs/*/read.

Controllo degli accessi in base al ruolo di Azure a livello di tabella

Il controllo degli accessi in base al ruolo di Azure a livello di tabella consente di definire un controllo più granulare per i dati in un'area di lavoro Log Analytics oltre alle altre autorizzazioni. Questo controllo consente di definire tipi di dati specifici accessibili solo a un set specifico di utenti.

Il controllo di accesso alle tabelle viene implementato con i ruoli personalizzati di Azure per concedere l'accesso a tabelle specifiche nell'area di lavoro. Questi ruoli vengono applicati alle aree di lavoro con modalità di controllo di accesso del contesto dell'area di lavoro o del contesto delle risorse indipendentemente dalla modalità di accesso dell'utente.

Creare un ruolo personalizzato con le azioni seguenti per definire l'accesso al controllo di accesso alle tabelle.

  • Per concedere l'accesso a una tabella, includerlo nella sezione Azioni della definizione del ruolo. Per sottrarre l'accesso dalle azioni consentite, includerlo nella sezione NotActions .
  • Usare Microsoft.OperationalInsights/workspaces/query/* per specificare tutte le tabelle.

Ad esempio, per creare un ruolo con accesso alle tabelle Heartbeat e AzureActivity , creare un ruolo personalizzato usando le azioni seguenti:

"Actions":  [
    "Microsoft.OperationalInsights/workspaces/read",
    "Microsoft.OperationalInsights/workspaces/query/read",
    "Microsoft.OperationalInsights/workspaces/query/Heartbeat/read",
    "Microsoft.OperationalInsights/workspaces/query/AzureActivity/read"
  ],

Per creare un ruolo con accesso solo alla tabella SecurityBaseline , creare un ruolo personalizzato usando le azioni seguenti:

"Actions":  [
    "Microsoft.OperationalInsights/workspaces/read",
    "Microsoft.OperationalInsights/workspaces/query/read",
    "Microsoft.OperationalInsights/workspaces/query/SecurityBaseline/read"
],

Gli esempi precedenti definiscono un elenco di tabelle consentite. Questo esempio mostra la definizione dell'elenco bloccato quando un utente può accedere a tutte le tabelle ma alla tabella SecurityAlert :

"Actions":  [
    "Microsoft.OperationalInsights/workspaces/read",
    "Microsoft.OperationalInsights/workspaces/query/read",
    "Microsoft.OperationalInsights/workspaces/query/*/read"
],
"notActions":  [
    "Microsoft.OperationalInsights/workspaces/query/SecurityAlert/read"
],

Log personalizzati

I log personalizzati vengono creati da origini dati, ad esempio log personalizzati e API dell'agente di raccolta dati HTTP. Il modo più semplice per identificare il tipo di log consiste nel controllare le tabelle elencate in Log personalizzati nello schema del log.

Non è possibile concedere l'accesso a singoli log personalizzati, ma è possibile concedere l'accesso a tutti i log personalizzati. Per creare un ruolo con accesso a tutti i log personalizzati, creare un ruolo personalizzato usando le azioni seguenti:

"Actions":  [
    "Microsoft.OperationalInsights/workspaces/read",
    "Microsoft.OperationalInsights/workspaces/query/read",
    "Microsoft.OperationalInsights/workspaces/query/Tables.Custom/read"
],

Un approccio alternativo per gestire l'accesso ai log personalizzati consiste nell'assegnarli a una risorsa di Azure e gestire l'accesso usando il paradigma del contesto delle risorse. Per usare questo metodo, è necessario includere l'ID risorsa specificandolo nell'intestazione x-ms-AzureResourceId quando i dati vengono inseriti in Log Analytics tramite l'API dell'agente di raccolta dati HTTP. L'ID risorsa deve essere valido e avere le regole di accesso applicate. Dopo aver inserito i log, sono accessibili a coloro con accesso in lettura alla risorsa, come illustrato qui.

A volte i log personalizzati provengono da origini non associate direttamente a una risorsa specifica. In questo caso, creare un gruppo di risorse solo per gestire l'accesso a questi log. Il gruppo di risorse non comporta alcun costo, ma fornisce un ID risorsa valido per controllare l'accesso ai log personalizzati. Ad esempio, se un firewall specifico invia log personalizzati, creare un gruppo di risorse denominato "MyFireWallLogs" e assicurarsi che le richieste API contengano l'ID risorsa "MyFireWallLogs". I record di log del firewall sono quindi accessibili solo agli utenti a cui è stato concesso l'accesso a MyFireWallLogs o a quelli con accesso completo all'area di lavoro.

Considerazioni

  • Se a un utente viene concessa l'autorizzazione di lettura globale con i ruoli Lettore o Collaboratore standard che includono l'azione */read , eseguirà l'override del controllo di accesso per tabella e concederà loro l'accesso a tutti i dati di log.
  • Se a un utente viene concesso l'accesso per tabella ma nessun'altra autorizzazione, sarà possibile accedere ai dati di log dall'API ma non dal portale di Azure. Per fornire l'accesso dalla portale di Azure, usare Lettore Log Analytics come ruolo di base.
  • Gli amministratori e i proprietari della sottoscrizione avranno accesso a tutti i tipi di dati indipendentemente dalle altre impostazioni di autorizzazione.
  • I proprietari dell'area di lavoro vengono considerati come qualsiasi altro utente per il controllo di accesso per tabella.
  • È consigliabile assegnare ruoli ai gruppi di sicurezza anziché ai singoli utenti per ridurre il numero di assegnazioni. Ciò consente anche di usare gli strumenti di gestione dei gruppi esistenti per configurare e verificare l'accesso.

Passaggi successivi