Controllo per database SQL di Azure e Azure Synapse Analytics

SI APPLICA A: Database SQL di Azure Azure Synapse Analytics

Il controllo per database SQL di Azure e Azure Synapse Analytics gli 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 sui programmi di Azure che supportano la conformità agli standard, vedere il Centro protezione di Azure, dove è possibile trovare l'elenco più recente di certificazioni di conformità per Azure SQL.

Nota

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

Panoramica

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

  • Mantiene un audit trail di eventi selezionati. È possibile definire categorie di azioni di database da controllare.
  • Report sull'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 database SQL di Azure, Azure Synapse e azure SQL Istanza gestita è ottimizzato per la disponibilità e le prestazioni. Durante attività molto elevate o carico di rete elevato, database SQL di Azure, Azure Synapse e Azure SQL Istanza gestita consentono alle operazioni di continuare e potrebbero non registrare alcuni eventi controllati.

Limitazioni del controllo

  • Premium'archiviazione non è attualmente supportata.
  • Lo spazio dei nomi gerarchico per l'account di archiviazione di Azure Data Lake Archiviazione Gen2 non è attualmente supportato.
  • L'abilitazione del controllo in un Azure Synapse sospeso non è supportata. Per abilitare il controllo, riprendere Azure Synapse.
  • Il controllo per i pool Azure Synapse SQL supporta solo i gruppi di azioni di controllo predefiniti.

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 in un'area di lavoro Log Analytics o in una destinazione dell'hub eventi, le operazioni seguenti non manderanno i criteri di controllo a livello di database di origine:

  • L'abilitazione del controllo nel database, oltre ad abilitarlo nel server, non sostituisce o modifica le 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 contemporaneamente sia il controllo del server che il controllo BLOB del database, a meno che:

    • Si vuole usare un account di archiviazione, un periodo di conservazione o un'area di lavoro Log Analytics diversi 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 il controllo a livello di database disabilitato per tutti i database.

Commenti

  • I log di controllo vengono scritti in BLOB di accodamento 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'archivio BLOB non modificabile.
  • È possibile scrivere i log di controllo in un account Archiviazione di Azure protetto da una rete virtuale o da un firewall. Per istruzioni specifiche, vedere Scrivere il controllo in un account di archiviazione protetto da rete virtuale e 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 dei log, vedere il database SQL log di controllo.
  • Quando si usa Autenticazione di Azure AD, i record degli accessi non riusciti non verranno visualizzati nel log SQL di controllo. 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 accessi di AAD, le credenziali vengono verificate prima di provare a usare l'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 di SQL, le credenziali vengono verificate sui dati richiesti, quindi in questo caso possono essere controllati. 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 aver copiato un database con il controllo abilitato in un altro server logico di Azure SQL, è possibile ricevere 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.

database SQL di Azure 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 dell'hub eventi tramite il cmdlet portale di Azure o PowerShell, viene creata un'impostazione di diagnostica con la categoria "SQLSecurityAuditEvents" abilitata.
  1. Accedere al portale di Azure.

  2. Passare a Controllo sotto l'intestazione Sicurezza nel database SQL o nel 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 della posizione 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 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 Supporto tecnico Microsoft dati

Il controllo delle Supporto tecnico Microsoft per Azure SQL Server 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 maggiore trasparenza nella forza lavoro e consente il rilevamento di anomalie, la visualizzazione delle tendenze e la prevenzione della perdita di dati.

Per abilitare il controllo delle Supporto tecnico Microsoft, passare a Controllo sotto l'intestazione Sicurezza nel riquadro del server azure SQL e impostare Abilita il controllo delle operazioni di supporto Microsoft su ON.

Screenshot delle Supporto tecnico Microsoft seguenti

Per esaminare i log di controllo delle 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 oppure usare la stessa configurazione di controllo per il server.

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

Controllare la destinazione di archiviazione

Per configurare la scrittura dei log di controllo in un account di archiviazione, Archiviazione quando si arriva alla sezione Controllo. Selezionare l'account di archiviazione di Azure in cui verranno salvati i log e quindi selezionare il periodo di conservazione aprendo Proprietà avanzate. Fare quindi clic su Salva. I log antecedenti al periodo di conservazione vengono eliminati.

  • Il valore predefinito per il periodo di conservazione è 0 (conservazione illimitata). È possibile modificare questo valore spostando il dispositivo di scorrimento Conservazione (giorni) in 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).

    archiviazione di Azure

Da controllo a destinazione di 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 Monitoraggio di Azure Log Analytics, vedere Progettazione della distribuzione Monitoraggio di Azure log di log

Da controllo a destinazione dell'hub eventi

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

  • Sono quindi disponibili due modi per visualizzare i log:

    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

    Facendo clic su Visualizza dashboard nella parte superiore della pagina Record di controllo verrà aperto un dashboard che visualizza le informazioni sui log di controllo, in cui è possibile eseguire il drill-down in Security Insights, Access to Sensitive Data e altro ancora. Questo dashboard è progettato per consentire di 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

    Sicurezza di Log Analytics 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 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 la documentazione Hub eventi di Azure .
  • 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 altri dettagli sulla gerarchia delle cartelle di archiviazione, sulle convenzioni di denominazione e sul formato di log, vedere l'database SQL Audit 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. Scegliere Apri file di controllo unione dal menu SSMS > > file.

      Screenshot che mostra l'opzione di menu Unisci file di controllo.

    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 Archiviazione di Azure BLOB 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 su 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 Archiviazione chiave di accesso 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 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 database SQL di Azure controllo

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 database SQL di Azure controllo tramite modelli Azure Resource Manager, come illustrato negli esempi seguenti:

Nota

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

Vedi anche