Proteggere il Azure SQL Managed Instance

Applica a:Azure SQL Managed Instance

Azure SQL Managed Instance è un motore di database PaaS (Platform as a Service) completamente gestito che offre quasi 100% compatibilità con l'SQL Server Database Engine più recente. Combina il meglio di SQL Server con i vantaggi operativi di un servizio completamente gestito. Poiché spesso archivia dati aziendali critici, tra cui record dei clienti, informazioni finanziarie e proprietà intellettuale, la protezione dei SQL Managed Instance è essenziale per proteggersi da violazioni dei dati, accessi non autorizzati e violazioni della conformità.

Questo articolo fornisce indicazioni su come proteggere al meglio la distribuzione di Azure SQL Managed Instance.

Sicurezza della rete

La sicurezza di rete per SQL Managed Instance consente di evitare connessioni non autorizzate, riduce l'esposizione agli attacchi e garantisce che solo le origini attendibili possano raggiungere i database tramite controlli di accesso e isolamento di rete appropriati.

  • Distribuire in una rete virtuale dedicata: posizionare l'istanza gestita in una subnet dedicata all'interno della rete virtuale per fornire l'isolamento della rete e controllare il flusso del traffico. Ciò garantisce che il database sia isolato da altre risorse e protetto dai limiti di rete. Per altre informazioni, vedere Requisiti di rete virtuale.

  • Configurare i gruppi di sicurezza di rete: applicare gruppi di sicurezza di rete alla subnet dell'istanza gestita di SQL per controllare il traffico in ingresso e in uscita. Limitare l'accesso solo alle porte e alle origini necessarie per ridurre al minimo la superficie di attacco. Per altre informazioni, vedere Gruppi di sicurezza di rete.

  • Usare gli endpoint privati quando possibile: connettersi all'istanza gestita di SQL tramite indirizzi IP privati per evitare di esporre il database a Internet pubblico. La connettività privata riduce il rischio di attacchi esterni ed esfiltrazione di dati. Per ulteriori informazioni, consultare Connettività dell'endpoint privato.

  • Disabilitare gli endpoint pubblici per impostazione predefinita: abilitare solo gli endpoint pubblici se assolutamente necessario per l'architettura. Se abilitata, usare regole firewall rigorose per limitare l'accesso solo agli indirizzi IP autorizzati. Per altre informazioni, consultare Panoramica dell'endpoint pubblico.

  • Implement ExpressRoute o VPN per la connettività ibrida: usare Azure ExpressRoute o VPN da sito a sito per connessioni private sicure tra la rete locale e Azure. Ciò garantisce che i dati non attraversino la rete Internet pubblica. Per altre informazioni, vedere Architettura della connettività.

  • Abilitare la crittografia della connessione: configurare tutte le connessioni client per l'uso della crittografia in transito. SQL Managed Instance supporta TLS 1.2 per impostazione predefinita, assicurandosi che i dati siano protetti durante lo spostamento tra client e database. TLS 1.3 è disponibile anche per SQL Managed Instance. Per altre informazioni, vedere Sicurezza delle connessioni.

Gestione delle identità

I controlli di autenticazione e identità sicuri assicurano che solo gli utenti e le applicazioni autorizzati possano accedere alle risorse SQL Managed Instance, fornendo al tempo stesso una gestione centralizzata delle identità e un controllo più semplice del ciclo di vita degli account.

  • Configurare un amministratore Microsoft Entra: designare un amministratore Microsoft Entra per l'istanza gestita di SQL per abilitare la gestione centralizzata delle identità e le funzionalità di sicurezza avanzate. Questo amministratore può gestire i criteri di accesso e autenticazione. Per altre informazioni, vedere Microsoft Entra admin.

  • Usare l'autenticazione Microsoft Entra: preferire l'autenticazione Microsoft Entra rispetto all'autenticazione SQL per la gestione centralizzata delle identità e un controllo più semplice del ciclo di vita degli account. Microsoft Entra ID offre sicurezza superiore e abilita funzionalità avanzate come l'accesso condizionale. Per altre informazioni, vedere Configurare l'autenticazione Microsoft Entra.

  • Crea utenti di database indipendenti: usare utenti di database indipendenti che eseguono il mapping a gruppi di Microsoft Entra anziché account di accesso a livello di server quando possibile. Ciò semplifica la gestione delle autorizzazioni e migliora la sicurezza eliminando la necessità di accesso a livello di server. Per altre informazioni, vedere Rendere il database portabile utilizzando database indipendenti.

  • Abilitare l'autenticazione a più fattori: richiedere l'autenticazione a più fattori per gli account amministrativi e gli utenti con privilegi per aggiungere un ulteriore livello di sicurezza oltre le password. Per altre informazioni, vedere Multifactor authentication (MFA).

  • Usare le identità gestite per le applicazioni: abilitare le identità gestite per le risorse Azure per consentire alle applicazioni di eseguire l'autenticazione senza archiviare le credenziali. In questo modo si elimina la necessità di gestire le stringhe di connessione con password incorporate. Per altre informazioni, vedere Identità gestite per le risorse Azure.

  • Applicare criteri per password sicure: se si utilizza l'autenticazione SQL, richiedere password complesse che non possano essere facilmente indovinate. Implementare i criteri di rotazione delle password ed evitare di riutilizzare le password tra account diversi. Per altre informazioni, vedere Criteri password.

Accesso con privilegi

Il controllo dell'accesso con privilegi impedisce modifiche non autorizzate, riduce l'impatto degli account compromessi e garantisce che le azioni amministrative vengano monitorate e controllate correttamente.

  • Implementare l'accesso con privilegi minimi: concedere agli utenti solo le autorizzazioni minime necessarie per eseguire le funzioni del processo. Esaminare e modificare regolarmente le autorizzazioni per mantenere il principio dei privilegi minimi. Per altre informazioni, vedere Introduzione alle autorizzazioni del motore di database.

  • Ruoli amministrativi separati: evitare di concedere diritti di amministratore a tutti gli amministratori del database. Usare autorizzazioni più granulari come CONTROL SERVER, quando possibile, e implementare la separazione dei compiti tra diverse funzioni amministrative. Per altre informazioni, vedere Permissions.

  • Usare Controllo degli Accessi Basato sul Ruolo (RBAC) di Azure: per implementare il Controllo degli Accessi Basato sul Ruolo (RBAC) di Azure e controllare l'accesso alle operazioni di gestione dell'istanza gestita di SQL. Creare ruoli personalizzati che forniscono solo le autorizzazioni necessarie per attività amministrative specifiche. Per ulteriori informazioni, vedere Azure Controllo degli accessi in base al ruolo (RBAC) per SQL Managed Instance.

  • Monitorare le attività con privilegi: abilitare il controllo per tenere traccia di tutte le azioni eseguite dagli account con privilegi. Esaminare regolarmente i log di controllo per attività sospette o modifiche non autorizzate. Per altre informazioni, vedere SQL Server Audit in Azure SQL Managed Instance.

  • Usare i ruoli del server per l'accesso a livello di database: sfruttare i ruoli server predefiniti e creare ruoli personalizzati per implementare la sicurezza basata sui ruoli. Assegnare utenti a ruoli anziché concedere singole autorizzazioni per semplificare la gestione e ridurre gli errori. Per altre informazioni, vedere Ruoli a livello di server.

Protezione dei dati

La protezione dei dati protegge le informazioni tramite crittografia, controlli di accesso e classificazione dei dati per impedire la divulgazione, la manomissione o la perdita di informazioni riservate non autorizzate.

  • Enable Transparent Data Encryption (TDE): usare TDE per crittografare i file di database, log e backup inattivi. Prendere in considerazione l'uso di chiavi gestite dal cliente in Azure Key Vault per un controllo aggiuntivo sulle chiavi di crittografia. Per altre informazioni, vedere Transparent Data Encryption.

  • Implementare Always Encrypted per i dati sensibili: Usare Always Encrypted per proteggere i dati altamente sensibili in uso, a riposo e in transito. In questo modo, anche gli amministratori del database non possono visualizzare i dati sensibili in testo non crittografato. Per altre informazioni, vedere Always Encrypted.

  • Usare libro mastro in SQL Managed Instance: abilitare il libro mastro per creare un record non modificabile di modifiche ai dati sensibili, fornendo una registrazione evidente delle manomissioni. Per altre informazioni, vedere Panoramica di Ledger.

  • Usare Dynamic Data Masking: applicare la maschera dati dinamica per offuscare i dati sensibili per gli utenti senza privilegi mantenendo al tempo stesso la funzionalità dei dati per le applicazioni. Ciò consente di impedire l'accesso non autorizzato alle informazioni riservate. Per altre informazioni, vedere Dynamic Data Masking.

  • Classificare ed etichettare i dati sensibili: usare l'individuazione e la classificazione dei dati SQL per identificare, classificare ed etichettare i dati sensibili nei database. In questo modo è possibile migliorare la protezione e la creazione di report sulla conformità. Per altre informazioni, vedere Individuazione e classificazione dei dati.

  • Implementare la sicurezza a livello di colonna: concedere autorizzazioni a livello di colonna per limitare l'accesso ai dati sensibili. Fornire solo le autorizzazioni SELECT, UPDATE o REFERENCES agli utenti che devono accedere in modo specifico alle colonne sensibili. Per altre informazioni, vedere Crittografare una colonna di dati.

  • Usare Row-Level Security (RLS): implementare la sicurezza a livello di riga per assicurarsi che gli utenti possano accedere solo alle righe di dati pertinenti. Ciò garantisce la sicurezza a livello di applicazione senza richiedere modifiche significative all'applicazione. Per altre informazioni, vedere Row-Level Security.

Backup e ripristino

I processi di backup e ripristino affidabili proteggono i tuoi dati dalla perdita dovuta a guasti, disastri o attacchi, garantendo che tu possa raggiungere i tuoi obiettivi di tempo di ripristino (RTO) e punto di ripristino (RPO).

  • Verificare la configurazione del backup automatizzato: assicurarsi che i backup automatizzati siano configurati correttamente e che i periodi di conservazione soddisfino i requisiti aziendali. Azure SQL Managed Instance fornisce backup automatici per impostazione predefinita con periodi di conservazione configurabili fino a 35 giorni. L'archiviazione di backup è indipendente dall'archiviazione dell'istanza e non è limitata alle dimensioni. Per altre informazioni, vedere Backup automatici.

  • Monitorare l'attività di backup: tenere traccia quando vengono eseguiti backup automatizzati nell'istanza gestita di SQL per assicurarsi che le operazioni di backup vengano completate correttamente. Per altre informazioni, vedere Monitorare l'attività di backup.

  • Usare l'archiviazione di backup con ridondanza geografica: configurare l'archiviazione con ridondanza geografica per i backup per la protezione da emergenze a livello di area. In questo modo i dati possono essere recuperati anche se l'area primaria non è più disponibile. Per altre informazioni, vedere Ridondanza dell'archiviazione di backup.

  • Testare le procedure di backup e ripristino: testare regolarmente le procedure di backup e ripristino per assicurarsi che funzionino correttamente e soddisfino gli obiettivi del tempo di ripristino. Verificare che i database ripristinati siano completamente funzionali e che l'integrità dei dati venga mantenuta. Per altre informazioni, vedere Ripristino temporizzato.

  • Usare le funzionalità di backup e ripristino native: sfruttare il backup e il ripristino nativi da Azure Blob Storage per gli scenari di migrazione. È possibile creare backup completi di sola copia e ripristinarli da file di .bak (SQL Server 2005+). Il backup di sola copia non è possibile se il database è crittografato da TDE gestito dal servizio. Per altre ulteriori informazioni, vedere Ripristino nativo dall'URL.

  • Implementare criteri di conservazione a lungo termine: configurare la conservazione dei backup a lungo termine per i requisiti di conformità che superano il periodo di conservazione predefinito. In questo modo è possibile soddisfare i requisiti normativi per la conservazione dei dati. Per altre informazioni, vedere Conservazione dei backup a lungo termine.

Monitoraggio e rilevamento delle minacce

Il monitoraggio completo e il rilevamento delle minacce consentono di identificare i problemi di sicurezza, rilevare le attività anomale e rispondere rapidamente alle potenziali minacce all'istanza gestita di SQL.

  • Enable Microsoft Defender for SQL: configurare Microsoft Defender per SQL per rilevare tentativi insoliti e potenzialmente dannosi di accedere o sfruttare i database. In questo modo sono disponibili funzionalità avanzate di protezione dalle minacce, tra cui la valutazione delle vulnerabilità e il rilevamento delle minacce. Per altre informazioni, vedere Microsoft Defender per SQL.

  • Configurare Advanced Threat Protection: configurare Advanced Threat Protection per rilevare minacce specifiche, tra cui potenziali attacchi SQL injection, accesso da posizioni o data center insoliti, accesso da entità non note e credenziali SQL di forza bruta. Configurare le notifiche di posta elettronica e gli account di archiviazione per gli avvisi sulle minacce. Per altre informazioni, vedere Configurare Advanced Threat Protection.

  • Configurare il controllo SQL: abilitare il controllo completo per tenere traccia degli eventi del database e scriverli in Azure Storage, Log Analytics o Hub eventi. Vengono forniti log dettagliati per l'analisi della sicurezza e la creazione di report di conformità. Per altre informazioni, vedere SQL Server Audit in Azure SQL Managed Instance.

  • Impostare Azure Monitor: usare Azure Monitor per raccogliere metriche della piattaforma, log di diagnostica e creare avvisi personalizzati per l'istanza gestita di SQL. Monitorare l'utilizzo delle risorse, le metriche delle prestazioni e gli eventi di sicurezza in una posizione centralizzata. Per altre informazioni, vedere Monitor Azure SQL Managed Instance.

  • Creare avvisi delle metriche: configurare avvisi per attività sospette, tentativi di accesso non riusciti, modelli di accesso insoliti del database e soglie di consumo delle risorse. Le metriche di avviso sono disponibili per il livello di istanza gestita di SQL, non per i singoli database. Per altre informazioni, vedere Crea avvisi per SQL Managed Instance.

  • Usare valutazione della vulnerabilità SQL: eseguire valutazioni regolari delle vulnerabilità per identificare errori di configurazione della sicurezza e potenziali vulnerabilità nel database. Correggere tempestivamente i problemi identificati per mantenere un comportamento di sicurezza forte. Per altre informazioni, vedere Valutazione della vulnerabilità SQL.

  • Monitoraggio con DMV (Dynamic Management Views): usare DMV per monitorare le prestazioni, rilevare query bloccate, colli di bottiglia delle risorse e attività correlate alla sicurezza. Le DMV forniscono informazioni dettagliate sulle operazioni del motore di database e sugli eventi di sicurezza. Per altre informazioni, vedere Monitorare le prestazioni di Azure SQL Managed Instance utilizzando le viste di gestione dinamica.

  • Implementare il monitoraggio di Query Store: abilita Query Store per tenere traccia delle prestazioni delle query nel tempo, per identificare le regressioni delle prestazioni e monitorare le modalità di esecuzione delle query. Ciò consente di rilevare un comportamento insolito delle query che potrebbe indicare problemi di sicurezza. Per ulteriori informazioni, vedere Monitorare le prestazioni utilizzando il Query Store.

  • Usare eventi estesi per il monitoraggio dettagliato: implementare eventi estesi (XEvent) per un sovraccarico ridotto, il monitoraggio dettagliato delle attività del database, inclusi gli eventi di sicurezza e i problemi di prestazioni. Gli eventi XEvent offrono un monitoraggio più granulare rispetto a SQL Profiler con un impatto minore sulle prestazioni. Per altre informazioni, vedere Eventi estesi.

  • Set up Database Watcher (preview): prendere in considerazione l'uso di Database Watcher per il monitoraggio approfondito del carico di lavoro con dashboard centralizzati e informazioni dettagliate sulle prestazioni nell'ambiente Azure SQL. Per altre informazioni, vedere Monitorare i carichi di lavoro di Azure SQL con Database Watcher (anteprima).

Conformità e governance

La gestione della conformità e della governance garantisce che la distribuzione SQL Managed Instance soddisfi i requisiti normativi e i criteri di sicurezza dell'organizzazione tramite controlli e documentazione appropriati.

  • Applicare Azure Policy per la governance: Utilizzare Azure Policy per applicare gli standard di sicurezza dell'organizzazione e garantire una configurazione coerente in tutte le istanze SQL gestite. Creare criteri personalizzati per requisiti di conformità specifici. Prendere in considerazione i criteri per applicare l'autenticazione esclusiva Microsoft Entra, la ridondanza dell'archiviazione di backup e i requisiti di ubicazione dei dati. Per altre informazioni, vedere Azure Policy per SQL Managed Instance.

  • Imporre l'autenticazione esclusivamente tramite Microsoft Entra: usare Azure Policy per imporre l'utilizzo esclusivo dell'autenticazione Microsoft Entra per le nuove istanze gestite SQL, garantendo che l'autenticazione SQL sia disabilitata per una maggiore sicurezza. In questo modo viene fornita la gestione centralizzata delle identità ed elimina le vulnerabilità di autenticazione basate su password. Per altre informazioni, vedere Uso di Azure Policy per applicare l'autenticazione solo tramite Microsoft Entra.

  • strategia di assegnazione di tag alle risorse Implement: applicare tag di Azure coerenti per identificare la proprietà delle risorse, la classificazione dell'ambiente, i centri di costo e i requisiti di conformità. Usare i tag per la governance automatizzata, il rilevamento dei costi e la gestione delle risorse. Per altre informazioni, vedere Develop your naming and tagging strategy for Azure resources.

  • Sfrutta Microsoft Purview per la governance dei dati: integrare con Microsoft Purview per la classificazione dei dati, il tracciamento della provenienza e la governance unificata dei dati nel tuo patrimonio dati. Usare le etichette di riservatezza e i criteri di prevenzione della perdita dei dati per proteggere i dati classificati. Per altre informazioni, vedere Microsoft Purview Information Protection.

  • Documentare le procedure di sicurezza: mantenere una documentazione completa delle procedure di sicurezza, dei piani di risposta agli eventi imprevisti e dei criteri di controllo di accesso. Esaminare e aggiornare regolarmente la documentazione per riflettere le procedure correnti e i requisiti di conformità. Per altre informazioni, vedere Procedure consigliate per la sicurezza.

  • Eseguire valutazioni regolari della sicurezza: eseguire valutazioni periodiche della sicurezza per valutare il comportamento di sicurezza e identificare le aree per il miglioramento. Includere test di penetrazione e valutazioni delle vulnerabilità nel programma di sicurezza. Documentare le attività di correzione per la creazione di report sulla conformità. Per altre informazioni, vedere Valutazione della vulnerabilità di SQL.

  • Mantenere i audit trail: assicurarsi che tutte le azioni amministrative e l'accesso ai dati siano registrati correttamente e che i audit trail vengano mantenuti per il periodo di conservazione richiesto. Proteggere i log di controllo da manomissioni o accessi non autorizzati. Configurare la conservazione dei log di controllo in base ai requisiti normativi (SOX, PCI DSS). Per altre informazioni, vedere Panoramica del controllo.

  • Standard di conformità alle normative: Azure SQL Managed Instance supporta la conformità con diversi framework normativi, tra cui ISO 27001, PCI DSS, FedRAMP e SOX. Esaminare e implementare controlli specifici per i requisiti del settore. Per altre informazioni, vedere Azure documentazione sulla conformità.

  • Usare i blocchi delle risorse: applicare blocchi delle risorse per impedire l'eliminazione accidentale o la modifica delle risorse dell'istanza gestita di SQL critica. In questo modo è possibile mantenere l'integrità della configurazione e impedire modifiche non autorizzate che potrebbero influire sulla conformità. Per altre informazioni, vedere Blocchi delle risorse.

  • Monitor con Azure Advisor: usare Azure Advisor per ricevere raccomandazioni personalizzate per la sicurezza, l'ottimizzazione dei costi, le prestazioni e l'eccellenza operativa. Esaminare e implementare regolarmente le raccomandazioni di Advisor per mantenere le procedure consigliate. Per altre informazioni, vedere Azure Advisor.

Per indicazioni complete sulla sicurezza, vedere Azure SQL Managed Instance procedure consigliate per la sicurezza e Panoramica delle funzionalità di sicurezza Azure SQL Managed Instance.