Introduzione a ruoli, autorizzazioni e sicurezza con il monitoraggio di AzureGet started with roles, permissions, and security with Azure Monitor

Molti team hanno bisogno di regolare rigorosamente l'accesso ai dati e alle impostazioni di monitoraggio.Many teams need to strictly regulate access to monitoring data and settings. Ad esempio, se si dispone di membri del team che lavorano esclusivamente sul monitoraggio (tecnici del supporto, tecnici DevOps) o si usa un provider di servizi gestiti, si consiglia di concedere loro l'accesso ai dati di monitoraggio solo limitandone la possibilità di creare, modificare o eliminare le risorse.For example, if you have team members who work exclusively on monitoring (support engineers, devops engineers) or if you use a managed service provider, you may want to grant them access to only monitoring data while restricting their ability to create, modify, or delete resources. In questo articolo viene illustrato come applicare rapidamente un ruolo di monitoraggio predefinito nel Controllo degli accessi in base al ruolo a un utente in Azure o creare il proprio ruolo personalizzato per un utente che ha bisogno di autorizzazioni di monitoraggio limitate.This article shows how to quickly apply a built-in monitoring RBAC role to a user in Azure or build your own custom role for a user who needs limited monitoring permissions. Vengono poi esposte alcune considerazioni sulla sicurezza per le risorse legate al monitoraggio di Azure e viene illustrato come è possibile limitare l'accesso ai dati che contengono.It then discusses security considerations for your Azure Monitor-related resources and how you can limit access to the data they contain.

Ruoli di monitoraggio predefinitiBuilt-in monitoring roles

I ruoli predefiniti del monitoraggio di Azure consentono di limitare l'accesso alle risorse in una sottoscrizione e allo stesso tempo consentire ai responsabili del monitoraggio dell'infrastruttura di ottenere e configurare i dati necessari.Azure Monitor’s built-in roles are designed to help limit access to resources in a subscription while still enabling those responsible for monitoring infrastructure to obtain and configure the data they need. Il monitoraggio di Azure fornisce due ruoli predefiniti: un lettore di monitoraggio e un collaboratore al monitoraggio.Azure Monitor provides two out-of-the-box roles: A Monitoring Reader and a Monitoring Contributor.

Lettore di monitoraggioMonitoring Reader

Le persone a cui è assegnato il ruolo di lettore di monitoraggio possono visualizzare tutti i dati di monitoraggio in una sottoscrizione ma non possono modificare alcuna risorsa o impostazione relativa alle risorse di monitoraggio.People assigned the Monitoring Reader role can view all monitoring data in a subscription but cannot modify any resource or edit any settings related to monitoring resources. Questo ruolo è appropriato per gli utenti di un'organizzazione, ad esempio tecnici del supporto o delle operazioni, che devono essere in grado di:This role is appropriate for users in an organization, such as support or operations engineers, who need to be able to:

  • Visualizzare i dashboard di monitoraggio nel portale e creare dashboard di monitoraggio privati.View monitoring dashboards in the portal and create their own private monitoring dashboards.
  • Eseguire query per le metriche usando l'API REST di Monitoraggio di Azure, i cmdlet di PowerShell o l'interfaccia della riga di comando multipiattaforma.Query for metrics using the Azure Monitor REST API, PowerShell cmdlets, or cross-platform CLI.
  • Eseguire query per il registro attività usando il portale, l'API REST di monitoraggio di Azure, i cmdlet di PowerShell o l'interfaccia della riga di comando multipiattaforma.Query the Activity Log using the portal, Azure Monitor REST API, PowerShell cmdlets, or cross-platform CLI.
  • Visualizzare le impostazioni di diagnostica per una risorsa.View the diagnostic settings for a resource.
  • Visualizzare il profilo di registro per una sottoscrizione.View the log profile for a subscription.
  • Visualizzare le impostazioni di scalabilità automatica.View autoscale settings.
  • Visualizzare impostazioni e attività di avviso.View alert activity and settings.
  • Accedere ai dati di Application Insights e visualizzarli in AI Analytics.Access Application Insights data and view data in AI Analytics.
  • Cercare i dati dell'area di lavoro Log Analytics, inclusi i dati sull'uso dell'area di lavoro.Search Log Analytics workspace data including usage data for the workspace.
  • Visualizzare i gruppi di gestione di Log Analytics.View Log Analytics management groups.
  • Recuperare lo schema di ricerca di Log Analytics.Retrieve the Log Analytics search schema.
  • Elencare gli Intelligence Pack di Log Analytics.List Log Analytics intelligence packs.
  • Recuperare ed eseguire le ricerche salvate di Log Analytics.Retrieve and execute Log Analytics saved searches.
  • Recuperare la configurazione di archiviazione di Log Analytics.Retrieve the Log Analytics storage configuration.

Nota

Questo ruolo non concede l'accesso in lettura ai dati del registro che sono stati trasmessi a un hub eventi o archiviati in un account di archiviazione.This role does not give read access to log data that has been streamed to an event hub or stored in a storage account. vedere di seguito .See below for information on configuring access to these resources.

Collaboratore al monitoraggioMonitoring Contributor

Le persone a cui è assegnato il ruolo di collaboratore al monitoraggio possono visualizzare tutti i dati di monitoraggio in una sottoscrizione e creare o modificare le impostazioni, ma non possono modificare altre risorse.People assigned the Monitoring Contributor role can view all monitoring data in a subscription and create or modify monitoring settings, but cannot modify any other resources. Questo ruolo è un soprainsieme del ruolo di lettore di monitoraggio ed è adatto ai membri del team di monitoraggio di un'organizzazione o ai fornitori di servizi gestiti che, oltre alle autorizzazioni di cui sopra, devono essere in grado di:This role is a superset of the Monitoring Reader role, and is appropriate for members of an organization’s monitoring team or managed service providers who, in addition to the permissions above, also need to be able to:

  • Pubblicare dashboard di monitoraggio come dashboard condivisi.Publish monitoring dashboards as a shared dashboard.
  • Configurare le impostazioni di diagnostica per una risorsa.Set diagnostic settings for a resource.
  • Impostare il profilo di registro per una sottoscrizione.Set the log profile for a subscription.
  • Configurare impostazioni e attività di avviso.Set alert activity and settings.
  • Creare componenti e test Web di Application Insights.Create Application Insights web tests and components.
  • Elencare le chiavi condivise dell'area di lavoro di Log Analytics.List Log Analytics workspace shared keys.
  • Abilitare o disabilitare gli Intelligence Pack di Log Analytics.Enable or disable Log Analytics intelligence packs.
  • Creare ed eliminare poi eseguire le ricerche salvate di Log Analytics.Create and delete and execute Log Analytics saved searches.
  • Creare ed eliminare la configurazione di archiviazione di Log Analytics.Create and delete the Log Analytics storage configuration.

per configurare un profilo di registro o un'impostazione di diagnostica, è necessario che all'utente sia concessa separatamente anche l'autorizzazione ListKeys nella risorsa di destinazione (account di archiviazione o spazio dei nomi dell'hub eventi).user must also separately be granted ListKeys permission on the target resource (storage account or event hub namespace) to set a log profile or diagnostic setting.

Nota

Questo ruolo non concede l'accesso in lettura ai dati del registro che sono stati trasmessi a un hub eventi o archiviati in un account di archiviazione.This role does not give read access to log data that has been streamed to an event hub or stored in a storage account. vedere di seguito .See below for information on configuring access to these resources.

Autorizzazioni per il monitoraggio e ruoli personalizzati nel Controllo degli accessi in base al ruoloMonitoring permissions and custom RBAC roles

Se i precedenti ruoli predefiniti non soddisfano le esigenze esatte del team, è possibile creare un ruolo personalizzato nel Controllo degli accessi in base al ruolo con autorizzazioni più granulari.If the above built-in roles don’t meet the exact needs of your team, you can create a custom RBAC role with more granular permissions. Di seguito sono riportate le più comuni operazioni nel Controllo degli accessi in base al ruolo di monitoraggio di Azure con le relative descrizioni.Below are the common Azure Monitor RBAC operations with their descriptions.

OperazioneOperation DescrizioneDescription
Microsoft.Insights/ActionGroups/[Read, Write, Delete]Microsoft.Insights/ActionGroups/[Read, Write, Delete] Gruppi di azioni di lettura, scrittura ed eliminazione.Read/write/delete action groups.
Microsoft.Insights/ActivityLogAlerts/[Read, Write, Delete]Microsoft.Insights/ActivityLogAlerts/[Read, Write, Delete] Avvisi del log attività di lettura, scrittura ed eliminazione.Read/write/delete activity log alerts.
Microsoft.Insights/AlertRules/[Read, Write, Delete]Microsoft.Insights/AlertRules/[Read, Write, Delete] Regole di avviso di lettura, scrittura ed eliminazione (avvisi relativi alle metriche).Read/write/delete alert rules (metric alerts).
Microsoft.Insights/AlertRules/Incidents/ReadMicrosoft.Insights/AlertRules/Incidents/Read Elenco degli eventi imprevisti (cronologia della regola di avviso attivata) per le regole di avviso.List incidents (history of the alert rule being triggered) for alert rules. Si applica solo al portale.This only applies to the portal.
Microsoft.Insights/AutoscaleSettings/[Read, Write, Delete]Microsoft.Insights/AutoscaleSettings/[Read, Write, Delete] Impostazioni di scalabilità automatica di lettura, scrittura ed eliminazione.Read/write/delete autoscale settings.
Microsoft.Insights/DiagnosticSettings/[Read, Write, Delete]Microsoft.Insights/DiagnosticSettings/[Read, Write, Delete] Impostazioni di diagnostica di lettura, scrittura ed eliminazione.Read/write/delete diagnostic settings.
Microsoft.Insights/EventCategories/ReadMicrosoft.Insights/EventCategories/Read Enumerazione di tutte le categorie possibili nel log attività.Enumerate all categories possible in the Activity Log. Operazione usata dal portale di Azure.Used by the Azure Portal.
Microsoft.Insights/eventtypes/digestevents/ReadMicrosoft.Insights/eventtypes/digestevents/Read Questa autorizzazione è necessaria per gli utenti che hanno bisogno dell'accesso ai registri attività tramite il portale.This permission is necessary for users who need access to Activity Logs via the portal.
Microsoft.Insights/eventtypes/values/ReadMicrosoft.Insights/eventtypes/values/Read Elenco degli eventi dei registri attività (eventi di gestione) in una sottoscrizione.List Activity Log events (management events) in a subscription. Questa autorizzazione è applicabile sia all'accesso programmatico che all'accesso al portale per il registro attività.This permission is applicable to both programmatic and portal access to the Activity Log.
Microsoft.Insights/ExtendedDiagnosticSettings/[Read, Write, Delete]Microsoft.Insights/ExtendedDiagnosticSettings/[Read, Write, Delete] Impostazioni di diagnostica di lettura, scrittura ed eliminazione per i log del flusso di rete.Read/write/delete diagnostic settings for network flow logs.
Microsoft.Insights/LogDefinitions/ReadMicrosoft.Insights/LogDefinitions/Read Questa autorizzazione è necessaria per gli utenti che hanno bisogno dell'accesso ai registri attività tramite il portale.This permission is necessary for users who need access to Activity Logs via the portal.
Microsoft.Insights/LogProfiles/[Read, Write, Delete]Microsoft.Insights/LogProfiles/[Read, Write, Delete] Profili di log di lettura, scrittura ed eliminazione (streaming del log attività nell'hub eventi o nell'account di archiviazione).Read/write/delete log profiles (streaming Activity Log to event hub or storage account).
Microsoft.Insights/MetricAlerts/[Read, Write, Delete]Microsoft.Insights/MetricAlerts/[Read, Write, Delete] Avvisi relativi alle metriche quasi in tempo reale di lettura, scrittura ed eliminazione (anteprima pubblica).Read/write/delete near real-time metric alerts (public preview).
Microsoft.Insights/MetricDefinitions/ReadMicrosoft.Insights/MetricDefinitions/Read Definizioni delle metriche (elenco dei tipi di metriche disponibili per una risorsa).Read metric definitions (list of available metric types for a resource).
Microsoft.Insights/Metrics/ReadMicrosoft.Insights/Metrics/Read Metriche per una risorsa.Read metrics for a resource.
Microsoft.Insights/Register/ActionMicrosoft.Insights/Register/Action Registrazione del provider di risorse di Monitoraggio di Azure.Register the Azure Monitor resource provider.

Nota

L'accesso ad avvisi, impostazioni di diagnostica e metriche per una risorsa richiede che l'utente disponga dell'accesso in lettura per il tipo di risorsa e l'ambito di tale risorsa.Access to alerts, diagnostic settings, and metrics for a resource requires that the user has Read access to the resource type and scope of that resource. La creazione ("scrittura") di un'impostazione di diagnostica o di un profilo di registro che archivia in un account di archiviazione o trasmette a un hub eventi richiede che l'utente disponga anche dell'autorizzazione ListKeys nella risorsa di destinazione.Creating (“write”) a diagnostic setting or log profile that archives to a storage account or streams to event hubs requires the user to also have ListKeys permission on the target resource.

Ad esempio, usando la tabella sopra è possibile creare un ruolo personalizzato nel Controllo degli accessi in base al ruolo per un "lettore di registro attività" come il seguente:For example, using the above table you could create a custom RBAC role for an “Activity Log Reader” like this:

$role = Get-AzureRmRoleDefinition "Reader"
$role.Id = $null
$role.Name = "Activity Log Reader"
$role.Description = "Can view activity logs."
$role.Actions.Clear()
$role.Actions.Add("Microsoft.Insights/eventtypes/*")
$role.AssignableScopes.Clear()
$role.AssignableScopes.Add("/subscriptions/mySubscription")
New-AzureRmRoleDefinition -Role $role 

Considerazioni sulla sicurezza per i dati sul monitoraggioSecurity considerations for monitoring data

I dati sul monitoraggio dei dati, in particolare i file di registro, possono contenere informazioni sensibili, come indirizzi IP o nomi utente.Monitoring data—particularly log files—can contain sensitive information, such as IP addresses or user names. I dati sul monitoraggio di Azure sono forniti in tre forme base:Monitoring data from Azure comes in three basic forms:

  1. Registro attività, che descrive tutte le azioni del piano di controllo nella sottoscrizione di Azure.The Activity Log, which describes all control-plane actions on your Azure subscription.
  2. Registri di diagnostica, cioè registri generati da una risorsa.Diagnostic Logs, which are logs emitted by a resource.
  3. Metriche, generate dalle risorse.Metrics, which are emitted by resources.

Tutti e tre questi tipi di dati possono essere archiviati in un account di archiviazione o trasmessi a un hub eventi, che sono entrambi risorse di Azure di scopo generico.All three of these data types can be stored in a storage account or streamed to Event Hub, both of which are general-purpose Azure resources. Poiché si tratta di risorse di scopo generico, la creazione, l'eliminazione e l'accesso sono operazioni privilegiate e generalmente riservate agli amministratori.Because these are general-purpose resources, creating, deleting, and accessing them is a privileged operation usually reserved for an administrator. Si consiglia di usare le procedure seguenti con le risorse relative al monitoraggio per evitare un uso improprio:We suggest that you use the following practices for monitoring-related resources to prevent misuse:

  • Usare un account di archiviazione singolo e dedicato per il monitoraggio dei dati.Use a single, dedicated storage account for monitoring data. Se è necessario separare i dati di monitoraggio in più account di archiviazione, non condividere mai l'uso di un account di archiviazione tra dati relativi al monitoraggio e non relativi al monitoraggio, perché in questo modo si potrebbe inavvertitamente fornire l'accesso ai dati non relativi al monitoraggio a chi ha bisogno solo dei dati di monitoraggio (es.If you need to separate monitoring data into multiple storage accounts, never share usage of a storage account between monitoring and non-monitoring data, as this may inadvertently give those who only need access to monitoring data (eg. SIEM di terze parti).a third-party SIEM) access to non-monitoring data.
  • Usare un singolo bus di servizio o spazio dei nomi dell'hub eventi dedicato in tutte le impostazioni di diagnostica per lo stesso motivo specificato sopra.Use a single, dedicated Service Bus or Event Hub namespace across all diagnostic settings for the same reason as above.
  • Limitare l'accesso agli hub eventi o agli account di archiviazione relativi al monitoraggio tenendoli in un gruppo di risorse separato e usare l'ambito nei ruoli di monitoraggio per limitare l'accesso solo a tale gruppo di risorse.Limit access to monitoring-related storage accounts or event hubs by keeping them in a separate resource group, and use scope on your monitoring roles to limit access to only that resource group.
  • Non concedere mai l'autorizzazione ListKeys ad account di archiviazione o hub eventi nell'ambito della sottoscrizione quando un utente ha bisogno solo dell'accesso ai dati di monitoraggio.Never grant the ListKeys permission for either storage accounts or event hubs at subscription scope when a user only needs access to monitoring data. Piuttosto, assegnare queste autorizzazioni all'utente nell'ambito di una risorsa o di un gruppo di risorse (se si dispone di un gruppo di risorse di monitoraggio dedicato).Instead, give these permissions to the user at a resource or resource group (if you have a dedicated monitoring resource group) scope.

Quando un utente o un'applicazione richiede l'accesso ai dati di monitoraggio in un account di archiviazione, è necessario generare una firma di accesso condiviso per l'account nell'account di archiviazione che contiene i dati di monitoraggio con accesso in sola lettura a livello di servizio all'archivio BLOB.When a user or application needs access to monitoring data in a storage account, you should generate an Account SAS on the storage account that contains monitoring data with service-level read-only access to blob storage. In PowerShell, potrebbe avere un aspetto simile al seguente:In PowerShell, this might look like:

$context = New-AzureStorageContext -ConnectionString "[connection string for your monitoring Storage Account]"
$token = New-AzureStorageAccountSASToken -ResourceType Service -Service Blob -Permission "rl" -Context $context

A questo punto è possibile fornire il token all'entità che ha bisogno di leggere da quell'account di archiviazione; tale token può elencare e leggere da tutti i BLOB nell'account di archiviazione.You can then give the token to the entity that needs to read from that storage account, and it can list and read from all blobs in that storage account.

In alternativa, se è necessario verificare l'autorizzazione con il Controllo degli accessi in base al ruolo, è possibile concedere a tale entità l'autorizzazione Microsoft.Storage/storageAccounts/listkeys/action su quel particolare account di archiviazione.Alternatively, if you need to control this permission with RBAC, you can grant that entity the Microsoft.Storage/storageAccounts/listkeys/action permission on that particular storage account. Questo è necessario per gli utenti che devono essere in grado di configurare un'impostazione di diagnostica o un profilo di registro per l'archiviazione in un account di archiviazione.This is necessary for users who need to be able to set a diagnostic setting or log profile to archive to a storage account. Ad esempio, è possibile creare il seguente ruolo personalizzato nel Controllo degli accessi in base al ruolo per un utente o un'applicazione che deve solo leggere da un account di archiviazione:For example, you could create the following custom RBAC role for a user or application that only needs to read from one storage account:

$role = Get-AzureRmRoleDefinition "Reader"
$role.Id = $null
$role.Name = "Monitoring Storage Account Reader"
$role.Description = "Can get the storage account keys for a monitoring storage account."
$role.Actions.Clear()
$role.Actions.Add("Microsoft.Storage/storageAccounts/listkeys/action")
$role.Actions.Add("Microsoft.Storage/storageAccounts/Read")
$role.AssignableScopes.Clear()
$role.AssignableScopes.Add("/subscriptions/mySubscription/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myMonitoringStorageAccount")
New-AzureRmRoleDefinition -Role $role 

Avviso

L'autorizzazione ListKeys consente all'utente di elencare le chiavi dell'account di archiviazione primario e secondario.The ListKeys permission enables the user to list the primary and secondary storage account keys. Queste chiavi concedono all'utente tutte le autorizzazioni accettate (lettura, scrittura, creazione di BLOB, eliminazione di BLOB e così via) in tutti i servizi accettati (BLOB, coda, tabella, file) di tale account di archiviazione.These keys grant the user all signed permissions (read, write, create blobs, delete blobs, etc.) across all signed services (blob, queue, table, file) in that storage account. Se possibile, si consiglia di usare una firma di accesso condiviso dell'account come descritto sopra.We recommend using an Account SAS described above when possible.

Un modello simile può essere seguito con gli hub eventi, tuttavia è innanzitutto necessario creare una regola di autorizzazione di ascolto dedicata.A similar pattern can be followed with event hubs, but first you need to create a dedicated Listen authorization rule. Se si desidera concedere l'accesso a un'applicazione che ha bisogno solo di ascoltare gli hub eventi relativi al monitoraggio, procedere come segue:If you want to grant access to an application that only needs to listen to monitoring-related event hubs, do the following:

  1. Creare un criterio di accesso condiviso negli hub eventi creati per trasmettere i dati di monitoraggio solo con attestazioni di ascolto.Create a shared access policy on the event hub(s) that were created for streaming monitoring data with only Listen claims. Questa operazione può essere eseguita nel portale.This can be done in the portal. Ad esempio, è possibile chiamarlo "monitoringReadOnly".For example, you might call it “monitoringReadOnly.” Se possibile, si dovrà fornire la chiave direttamente al consumatore e ignorare il passaggio successivo.If possible, you will want to give that key directly to the consumer and skip the next step.
  2. Se il consumatore deve essere in grado di ottenere la chiave ad hoc, concedere all'utente l'azione ListKeys per l'hub eventi.If the consumer needs to be able to get the key ad-hoc, grant the user the ListKeys action for that event hub. Questo è necessario anche per gli utenti che devono essere in grado di configurare un'impostazione di diagnostica o un profilo di registro per trasmettere agli hub eventi.This is also necessary for users who need to be able to set a diagnostic setting or log profile to stream to event hubs. Ad esempio, è possibile creare una regola nel Controllo degli accessi in base al ruolo:For example, you might create an RBAC rule:

    $role = Get-AzureRmRoleDefinition "Reader"
    $role.Id = $null
    $role.Name = "Monitoring Event Hub Listener"
    $role.Description = "Can get the key to listen to an event hub streaming monitoring data."
    $role.Actions.Clear()
    $role.Actions.Add("Microsoft.ServiceBus/namespaces/authorizationrules/listkeys/action")
    $role.Actions.Add("Microsoft.ServiceBus/namespaces/Read")
    $role.AssignableScopes.Clear()
    $role.AssignableScopes.Add("/subscriptions/mySubscription/resourceGroups/myResourceGroup/providers/Microsoft.ServiceBus/namespaces/mySBNameSpace")
    New-AzureRmRoleDefinition -Role $role 
    

Passaggi successiviNext steps