Controllo per database Azure SQL e Azure Synapse Analytics

Si applica a: Azure SQL Database Azure Synapse Analytics

Il controllo per Azure SQL Database e Azure Synapse Analytics tiene traccia degli eventi del database e li scrive in un log di controllo nell'account di archiviazione di Azure, nell'area di lavoro Log Analytics o in Hub eventi.

Inoltre, il servizio di controllo:

  • Consente di gestire la conformità alle normative, ottenere informazioni sull'attività del database e rilevare discrepanze e anomalie che possono indicare problemi aziendali o possibili violazioni della sicurezza.

  • Supporta e facilita il rispetto degli standard di conformità, pur non garantendo la conformità. Per altre informazioni, vedere il Centro protezione di Microsoft Azure in cui è possibile trovare l'elenco più recente delle certificazioni di conformità database SQL.

Nota

Per informazioni sul controllo Istanza gestita di SQL di Azure, vedere l'articolo seguente Introduzione al controllo Istanza gestita di SQL.

Panoramica

È possibile usare il servizio di controllo del database SQL per eseguire le operazioni seguenti:

  • Conservare un audit trail degli eventi selezionati. È possibile definire categorie di azioni di database da controllare.
  • Creare report sulle attività del database. È possibile usare i report preconfigurati e un dashboard per iniziare rapidamente a usare l'attività e la segnalazione di eventi.
  • Analizzare i report. È possibile individuare eventi sospetti, attività insolite e tendenze.

Importante

Il controllo per Azure SQL database, Azure Synapse e Istanza gestita di SQL di Azure è ottimizzato per la disponibilità e le prestazioni dei database o delle istanze controllate. Durante periodi di attività molto elevata o carico di rete elevato, la funzionalità di controllo può consentire alle transazioni di procedere senza registrare tutti gli eventi contrassegnati per il controllo.

Limitazioni del controllo

  • Il tipo di autenticazione dell'identità gestita dall'utente per abilitare il controllo nell'archiviazione dietro il firewall non è attualmente supportato.
  • L'abilitazione del controllo in una Azure Synapse sospesa non è supportata. Per abilitare il controllo, riprendere Azure Synapse.
  • Il controllo per Azure Synapse pool SQL supporta solo i gruppi di azioni di controllo predefiniti.
  • Quando si configura il controllo per il server logico in Azure o Azure SQL Database con destinazione log come account di archiviazione, l'account di archiviazione di destinazione deve essere abilitato con accesso alle chiavi dell'account di archiviazione. Se l'account di archiviazione è configurato solo per l'uso dell'autenticazione di Azure AD e non è configurato per l'utilizzo delle chiavi di accesso, il controllo non può essere configurato.

Definire criteri di controllo a livello di server o a livello di database

Un criterio di controllo può essere definito per un database specifico o come criterio server predefinito in Azure (che ospita database SQL o Azure Synapse):

  • I criteri server si applicano a tutti i database nuovi ed esistenti in un server.

  • Se il controllo del server è abilitato, viene sempre applicato al database. Il database verrà controllato, indipendentemente dalle impostazioni di controllo del database.

  • Quando i criteri di controllo vengono definiti a livello di database a livello di database in un'area di lavoro Log Analytics o in una destinazione di Hub eventi, le operazioni seguenti non manterranno i criteri di controllo a livello di database di origine:

  • L'abilitazione del controllo nel database, oltre a abilitarla nel server, non esegue l'override o modifica alcuna delle impostazioni del controllo del server. I due controlli coesisteranno. In altre parole, il database viene controllato due volte in parallelo, una volta con i criteri del server e una volta con i criteri del database.

    Nota

    È consigliabile evitare di abilitare sia il controllo del server che il controllo BLOB del database insieme, a meno che:

    • Si vuole usare un account di archiviazione diverso, un periodo di conservazione o un'area di lavoro Log Analytics per un database specifico.
    • Per un database specifico si vogliono controllare tipi o categorie di eventi diversi dagli altri database nel server. Ad esempio, potrebbe essere necessario controllare gli inserimenti di tabella solo per un database specifico.

    In caso contrario, è consigliabile abilitare solo il controllo a livello di server e lasciare disabilitato il controllo a livello di database per tutti i database.

Commenti

  • L'archiviazione Premium con BlockBlobStorage è supportata. L'archiviazione Standard è supportata. Tuttavia, per il controllo di scrivere in un account di archiviazione dietro una rete virtuale o un firewall, è necessario disporre di un account di archiviazione per utilizzo generico v2. Se si dispone di un account di archiviazione per utilizzo generico v1 o un account di archiviazione BLOB, eseguire l’aggiornamento a un account di archiviazione per utilizzo generico v2. Per istruzioni specifiche, vedere Scrivere il controllo in un account di archiviazione protetto da rete virtuale e firewall. Per altre informazioni, vedere Tipi di account di archiviazione.
  • Lo spazio dei nomi gerarchico per tutti i tipi di account di archiviazione Standard e account di archiviazione Premium con BlockBlobStorage è supportato.
  • I log di controllo vengono scritti in Aggiungere BLOB in un archivio BLOB di Azure nella sottoscrizione di Azure
  • I log di controllo sono in formato xel e possono essere aperti usando SQL Server Management Studio (SSMS).
  • Per configurare un archivio log non modificabile per gli eventi di controllo a livello di server o di database, seguire le istruzioni fornite da Archiviazione di Azure. Assicurarsi di aver selezionato Consenti aggiunte aggiuntive quando si configura l'archiviazione BLOB non modificabile.
  • È possibile scrivere log di controllo in un account di archiviazione di Azure protetto da una rete virtuale o da un firewall.
  • Per dettagli sul formato dei log, sulla gerarchia della cartella di archiviazione e sulle convenzioni di denominazione, vedere le informazioni di riferimento sul formato dei log del controllo BLOB.
  • Il controllo sulle repliche di sola lettura viene abilitato automaticamente. Per altri dettagli sulla gerarchia delle cartelle di archiviazione, sulle convenzioni di denominazione e sul formato di log, vedere il formato del log di controllo database SQL.
  • Quando si usa Autenticazione di Azure AD, i record degli account di accesso non riusciti non verranno visualizzati nel log di controllo SQL. Per visualizzare i record di controllo degli accessi non riusciti, è necessario visitare il portale di Azure Active Directory, che registra i dettagli di questi eventi.
  • Gli accessi vengono instradati dal gateway all'istanza specifica in cui si trova il database. Nel caso degli account di accesso di Azure AD, le credenziali vengono verificate prima di tentare di usare tale utente per accedere al database richiesto. In caso di errore, non viene mai eseguito l'accesso al database richiesto, quindi non si verifica alcun controllo. Nel caso degli account di accesso SQL, le credenziali vengono verificate sui dati richiesti, quindi in questo caso possono essere controllate. Gli accessi riusciti, che ovviamente raggiungono il database, vengono controllati in entrambi i casi.
  • Dopo aver configurato le impostazioni di controllo, è possibile attivare la nuova funzionalità di rilevamento delle minacce e configurare gli indirizzi di posta elettronica per ricevere gli avvisi di sicurezza. Quando si usa il rilevamento delle minacce, si ricevono avvisi proattivi sulle attività di database anomale che possono indicare potenziali minacce per la sicurezza. Per altre informazioni, vedere Introduzione al rilevamento delle minacce.
  • Dopo che un database con il controllo abilitato viene copiato in un altro server logico, è possibile che venga visualizzato un messaggio di posta elettronica che informa che il controllo non è riuscito. Si tratta di un problema noto e il controllo dovrebbe funzionare come previsto nel database appena copiato.

Configurare il controllo per il server

I criteri di controllo predefinito includono tutte le azioni e il set di gruppi di azioni seguente, che controllerà tutte le query e le stored procedure eseguite sul database, nonché gli accessi riusciti e non riusciti:

  • BATCH_COMPLETED_GROUP
  • SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP
  • FAILED_DATABASE_AUTHENTICATION_GROUP

È possibile configurare il controllo per diversi tipi di azioni e gruppi di azioni usando PowerShell, come descritto nella sezione Gestire il controllo database SQL tramite Azure PowerShell.

Azure SQL Database e Azure Synapse Audit archivia 4000 caratteri di dati per i campi carattere in un record di controllo. Quando i valori statement o data_sensitivity_information restituiti da un'azione controllabile contengono più di 4000 caratteri, i dati oltre i primi 4000 caratteri verranno troncati e non controllati. Nella sezione seguente è descritta la configurazione del controllo mediante il portale di Azure.

Nota

  • Non è possibile abilitare il controllo in un pool SQL dedicato sospeso. Per abilitare il controllo, annullare la sospensione del pool SQL dedicato. Altre informazioni sul pool SQL dedicato.
  • Quando il controllo è configurato per un'area di lavoro Log Analytics o per una destinazione di Hub eventi tramite il cmdlet portale di Azure o PowerShell, viene creata un'impostazione di diagnostica con la categoria "SQLSecurityAuditEvents" abilitata.
  1. Passare al portale di Azure.

  2. Passare a Controllo sotto l'intestazione Sicurezza nel database SQL o nel riquadro SQL Server .

  3. Se si preferisce configurare un criterio di controllo del server, è possibile selezionare il collegamento Visualizza impostazioni del server nella pagina relativa al controllo del database. Si possono quindi visualizzare o modificare le impostazioni di controllo del server. I criteri di controllo del server si applicano a tutti i database esistenti e appena creati in questo server.

    Screenshot che mostra il collegamento Visualizza impostazioni server evidenziato nella pagina di controllo del database.

  4. Se si preferisce abilitare il controllo a livello di database, impostare Controllo su ATTIVA. Se il controllo del server è abilitato, il controllo configurato del database coesisterà con il controllo del server.

  5. Sono disponibili più opzioni per la configurazione in cui verranno scritti i log di controllo. È possibile scrivere log in un account di archiviazione di Azure, in un'area di lavoro Log Analytics per l'utilizzo da parte dei log di Monitoraggio di Azure o nell'hub eventi per l'utilizzo tramite l'hub eventi. È possibile configurare qualsiasi combinazione di queste opzioni e verranno scritti i log di controllo per ognuno.

    opzioni di archiviazione

Controllo delle operazioni di supporto tecnico Microsoft

Il controllo delle operazioni di supporto tecnico Microsoft per il server logico consente di controllare le operazioni dei tecnici del supporto Microsoft quando devono accedere al server durante una richiesta di supporto. L'uso di questa funzionalità, insieme al controllo, consente una maggiore trasparenza nella forza lavoro e consente il rilevamento anomalie, la visualizzazione delle tendenze e la prevenzione della perdita di dati.

Per abilitare il controllo delle operazioni di supporto tecnico Microsoft passare a Controllo nell'intestazione Sicurezza nel riquadro Azure SQL Server e passare a Abilita controllo delle operazioni di supporto Microsoft su ON.

Screenshot delle operazioni di supporto tecnico Microsoft

Per esaminare i log di controllo delle operazioni di supporto tecnico Microsoft nell'area di lavoro Log Analytics, usare la query seguente:

AzureDiagnostics
| where Category == "DevOpsOperationsAudit"

È possibile scegliere una destinazione di archiviazione diversa per questo log di controllo o usare la stessa configurazione di controllo per il server.

Screenshot della configurazione del controllo per le operazioni di supporto per il controllo

Controllare la destinazione di archiviazione

Per configurare la scrittura dei log di controllo in un account di archiviazione, selezionare Archiviazione quando si accede alla sezione Controllo . Selezionare l'account di archiviazione di Azure in cui si desidera salvare i log. È possibile usare i due tipi di autenticazione di archiviazione seguenti: identità gestita e chiavi di accesso all'archiviazione. Per l'identità gestita, è supportata l'identità gestita dal sistema e dall'utente. Per impostazione predefinita, viene selezionata l'identità utente primaria assegnata al server. Se non esiste un'identità utente, viene creata e usata un'identità assegnata dal sistema a scopo di autenticazione. Dopo aver scelto un tipo di autenticazione, selezionare un periodo di conservazione aprendo *Proprietà avanzate e selezionando Salva. I log antecedenti al periodo di conservazione vengono eliminati.

Nota

Se si esegue la distribuzione dal portale di Azure, assicurarsi che l'account di archiviazione si trovi nella stessa area del database e del server. Se si distribuisce tramite altri metodi, l'account di archiviazione può trovarsi in qualsiasi area.

  • Il valore predefinito per il periodo di conservazione è 0 (conservazione illimitata). È possibile modificare questo valore spostando il dispositivo di scorrimento Conservazione (giorni) nelle proprietà avanzate durante la configurazione dell'account di archiviazione per il controllo.

    • Se si modifica il periodo di conservazione da 0 (conservazione illimitata) a qualsiasi altro valore, tenere presente che la conservazione verrà applicata solo ai log scritti dopo la modifica del valore di conservazione (i log scritti durante il periodo in cui la conservazione è stata impostata su illimitata vengono conservati, anche dopo l'abilitazione della conservazione).

    account di archiviazione

Controllare la destinazione Log Analytics

Per configurare la scrittura dei log di controllo in un'area di lavoro Log Analytics, selezionare Log Analytics e aprire i dettagli di Log Analytics. Selezionare l'area di lavoro Log Analytics in cui verranno scritti i log e quindi fare clic su OK. Se non è stata creata un'area di lavoro Log Analytics, vedere Creare un'area di lavoro Log Analytics nella portale di Azure.

LogAnalyticsworkspace

Per altre informazioni sull'area di lavoro Log Analytics di Monitoraggio di Azure, vedere Progettazione della distribuzione dei log di Monitoraggio di Azure

Audit to Event Hubs destinations

Per configurare la scrittura dei log di controllo in un hub eventi, selezionare Hub eventi. Selezionare l'hub eventi in cui verranno scritti i log e quindi fare clic su Salva. Assicurarsi che l'hub eventi si trovi nella stessa area del database e server.

Eventhub

Analizzare i log di controllo e i report

Se si sceglie di scrivere i log di controllo su Log Analytics:

  • Usare il portale di Azure. Aprire il database corrispondente. Nella parte superiore della pagina Controllo del database selezionare Visualizza log di controllo.

    visualizzare i log di controllo

  • È quindi possibile visualizzare i log in due modi:

    Facendo clic su Log Analytics nella parte superiore della pagina Record di controllo , verrà aperta la visualizzazione Log nell'area di lavoro Log Analytics, in cui è possibile personalizzare l'intervallo di tempo e la query di ricerca.

    aprire nell'area di lavoro Log Analytics

    Fare clic su Visualizza dashboard nella parte superiore della pagina Record di controllo aprirà un dashboard che visualizza le informazioni sui log di controllo, in cui è possibile eseguire il drill-down in Security Insights, Accesso ai dati sensibili e altro ancora. Questo dashboard è progettato per ottenere informazioni dettagliate sulla sicurezza per i dati. È anche possibile personalizzare l'intervallo di tempo e la query di ricerca. Visualizzare il dashboard di Log Analytics

    Log Analytics Dashboard

    Log Analytics Security Insights

  • In alternativa, è possibile accedere anche i log di controllo dal pannello Log Analytics. Aprire l'area di lavoro Log Analytics e nella sezione generale fare clic su log. È possibile iniziare con una query semplice, ad esempio: cercare "SQLSecurityAuditEvents" per visualizzare i log di controllo. Da qui è anche possibile usare i log di Monitoraggio di Azure per eseguire ricerche avanzate sui dati del log di controllo. Log di Monitoraggio di Azure consente di ottenere informazioni operative in tempo reale tramite funzionalità di ricerca integrate e dashboard personalizzati per analizzare rapidamente milioni di record in tutti i carichi di lavoro e i server. Per altre informazioni utili sul linguaggio di ricerca e i comandi di Log di Monitoraggio di Azure, vedere Guida di riferimento alla ricerca in Log di Monitoraggio di Azure.

Se si sceglie di scrivere i log di controllo su Hub eventi:

  • Per utilizzare i dati dei log di controllo da Hub eventi, è necessario configurare un flusso per utilizzare gli eventi e scriverli in una destinazione. Per altre informazioni, vedere Hub eventi di Azure Documentazione.
  • I log di controllo in Hub eventi vengono acquisiti nel corpo degli eventi di Apache Avro e archiviati usando la formattazione JSON con codifica UTF-8. Per leggere i log di controllo, è possibile usare Avro Tools o strumenti simili in grado di elaborare tale formato.

Se si sceglie di scrivere i log di controllo in un account di archiviazione di Azure, esistono diversi metodi che è possibile usare per visualizzare i log:

  • I log di controllo vengono aggregati nell'account selezionato durante la configurazione. È possibile esplorare i log di controllo con uno strumento come Azure Storage Explorer. Nell'archiviazione di Azure, i log del controllo vengono salvati come raccolta di file BLOB in un contenitore denominato sqldbauditlogs. Per altre informazioni sulla gerarchia delle cartelle di archiviazione, sulle convenzioni di denominazione e sul formato di log, vedere la database SQL Controllo log Format.

  • Usare il portale di Azure. Aprire il database corrispondente. Nella parte superiore della pagina Controllo del database fare clic su Visualizza log di controllo.

    visualizzare i log di controllo

    Verrà aperto Record di controllo, da cui sarà possibile visualizzare i log.

    • È possibile visualizzare date specifiche facendo clic su Filtro nella parte superiore della pagina Record di controllo.

    • È possibile passare da un record di controllo all'altro creato dai criteri di controllo del server e dai criteri di controllo del database attivando o disattivando Origine controllo.

      Screenshot che mostra le opzioni per la visualizzazione dei record di controllo.

  • Usare la funzione di sistema sys.fn_get_audit_file (T-SQL) per tornare ai dati dei log di controllo in formato tabulare. Per altre informazioni su questa funzione, vedere sys.fn_get_audit_file.

  • Usare Unisci file di controllo in SQL Server Management Studio (a partire da SSMS 17):

    1. Dal menu SSMS selezionare File>Apri>file di controllo unione.

      Screenshot che mostra l'opzione di menu Merge Audit Files.

    2. Verrà visualizzata la finestra di dialogo Aggiunti file di controllo. Selezionare una delle opzioni Aggiungi per scegliere se unire i file di controllo da un disco locale oppure importarli da Archiviazione di Azure. È necessario specificare i dettagli e la chiave dell'account di Archiviazione di Azure.

    3. Dopo aver aggiunto tutti i file da unire, fare clic su OK per completare l'operazione di unione.

    4. Il file unito verrà aperto in SSMS, dove potrà essere visualizzato, analizzato ed esportato in un file XEL o CSV o in una tabella.

  • Usare Power BI. È possibile visualizzare e analizzare i dati dei log di controllo in Power BI. Per altre informazioni e per accedere a un modello scaricabile, vedere Analyze audit log data in Power BI (Analizzare i dati di log di controllo in Power BI).

  • Scaricare i file di log dal contenitore BLOB di Archiviazione di Azure tramite il portale o usando uno strumento come Azure Storage Explorer.

    • Dopo aver scaricato un file di log in locale, fare doppio clic sul file per aprire, visualizzare e analizzare i log in SSMS.
    • È anche possibile scaricare più file contemporaneamente tramite Azure Storage Explorer. Per farlo, fare clic con il pulsante destro del mouse su una sottocartella specifica e scegliere Salva con nome per salvarla in una cartella locale.
  • Altri metodi:

    • Dopo avere scaricato diversi file o una sottocartella contenente i file di log, è possibile unirli in locale come descritto nelle istruzioni relative all'unione di file di controllo in SSMS riportate in precedenza.
    • Visualizzare i log di controllo BLOB a livello di codice: eseguire query sui file di eventi estesi usando PowerShell.

Procedure nell'ambiente di produzione

Controllo dei database con replica geografica

Con i database con replica geografica, quando si abilita il controllo nel database primario il database secondario disporrà di un criterio di controllo identico. È anche possibile impostare il controllo nel database secondario abilitando il controllo nel server secondario, in modo indipendente dal database primario.

  • A livello di server (consigliato): attivare il controllo sia nel server primario che nel server secondario. I database primari e secondari saranno controllati in modo indipendente in base ai rispettivi criteri a livello di server.
  • A livello di database: il controllo a livello di database per i database secondari può essere configurato solo mediante le impostazioni di controllo del database primario.
    • Il controllo deve essere abilitato nello stesso database primario e non nel server.

    • Dopo che il controllo è stato abilitato nel database primario, verrà abilitato anche nel database secondario.

      Importante

      In caso di controllo a livello di database, le impostazioni di archiviazione per il database secondario sono identiche a quelle del database primario, e causano traffico tra le aree. È consigliabile abilitare solo il controllo a livello di server e lasciare disabilitato il controllo a livello di database per tutti i database.

Rigenerazione delle chiavi di archiviazione

Durante la produzione è probabile che periodicamente vengano aggiornate le chiavi di archiviazione. Quando si scrivono i log di controllo nell'archiviazione di Azure, è necessario salvare nuovamente i criteri di controllo quando si aggiornano le chiavi. Il processo è il seguente:

  1. Aprire Proprietà avanzate in Archiviazione. Nella casella Chiave di accesso all'archiviazione selezionare Secondario. Fare quindi clic su Salva nella parte superiore della pagina di configurazione del controllo.

    Screenshot che mostra il processo per la selezione di una chiave di accesso alla risorsa di archiviazione secondaria.

  2. Passare alla pagina di configurazione dell'archiviazione e rigenerare la chiave di accesso primaria.

    Riquadro di spostamento

  3. Tornare alla pagina di configurazione del controllo, modificare la chiave di accesso alle risorse di archiviazione da secondaria a primaria e quindi fare clic su OK. Fare quindi clic su Salva nella parte superiore della pagina di configurazione del controllo.

  4. Tornare alla pagina di configurazione dell'archiviazione e rigenerare la chiave di accesso secondaria (in preparazione al successivo ciclo di aggiornamento della chiave).

Gestire il controllo del database Azure SQL

Uso di Azure PowerShell

Cmdlet PowerShell (incluso il supporto della clausola WHERE per altri filtri):

Per un esempio di script, vedere Configurare il controllo del database SQL e il rilevamento delle minacce usando PowerShell.

Uso dell'API REST

API REST:

Criteri estesi con il supporto della clausola WHERE per altri filtri:

Utilizzare l'interfaccia della riga di comando di Azure

Uso di modelli di Azure Resource Manager

È possibile gestire il controllo del database Azure SQL usando i modelli di Azure Resource Manager, come illustrato negli esempi seguenti:

Nota

Gli esempi collegati si trovano in un repository pubblico esterno e vengono forniti "così com'è", senza garanzia e non sono supportati in alcun programma o servizio di supporto Microsoft.

Vedi anche