Informazioni generali sulle capacità di sicurezza del database SQL di Azure e di Istanza gestita di SQL
Si applica a: Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics
Questo articolo descrive le nozioni di base per proteggere il livello dati di un'applicazione usando il database SQL di Azure, Istanza gestita di SQL di Azure e Azure Synapse Analytics. La strategia di sicurezza descritta segue l'approccio a più livelli di difesa avanzata come illustrato nell'immagine seguente e si sposta dall'esterno in:
Nota
Microsoft Entra ID era precedentemente conosciuto come Azure Active Directory (Azure AD).
Sicurezza di rete
Il database SQL di Microsoft Azure, l'Istanza gestita di SQL di Azure e Azure Synapse Analytics forniscono un servizio di database relazionale per applicazioni cloud e aziendali. Per contribuire a proteggere i dati dei clienti, i firewall impediscono l'accesso alla rete per il server di database finché non viene esplicitamente concesso l'accesso basato su indirizzo IP o origine del traffico di rete virtuale di Azure.
Regole del firewall IP
Le regole del firewall IP concedono l'accesso ai database in base all'indirizzo IP di origine di ogni richiesta. Per altre informazioni, vedi Informazioni generali sulle regole del firewall per il database SQL di Azure e Azure Synapse Analytics.
Regole del firewall della rete virtuale
Gli endpoint servizio di rete virtuale estendono la connettività della rete virtuale tramite il backbone di Azure e il database SQL di Azure per identificare la subnet della rete virtuale che origina il traffico. Per consentire al traffico di raggiungere il database SQL di Azure, usare i tag di servizio SQL per consentire il traffico in uscita tramite gruppi di sicurezza di rete.
Le regole di rete virtuale consentono al database SQL di Azure di accettare solo le comunicazioni inviate da subnet specifiche all'interno di una rete virtuale.
Nota
Il controllo dell'accesso con regole del firewall non si applica a un'istanza gestita di SQL. Per altre informazioni sulla configurazione della rete necessaria, vedi Collegamento a un'istanza gestita
Gestione degli accessi
Importante
La gestione dei database e dei server in Azure è controllata dalle assegnazioni di ruolo dell'account del portale utenti. Per altre informazioni su questo articolo, vedi Controllo degli accessi in base al ruolo nel portale di Azure.
Autenticazione
L'autenticazione è il processo atto a dimostrare che l'utente sia effettivamente chi dichiara di essere. Il database SQL di Azure e Istanza gestita di SQL supportano l'autenticazione SQL e l'autenticazione con Microsoft Entra ID (in precedenza Azure Active Directory). L'istanza gestita di SQL supporta anche l'autenticazione di Windows per le entità di sicurezza di Microsoft Entra.
Autenticazione SQL:
L'autenticazione SQL si riferisce all'autenticazione di un utente durante la connessione al database SQL di Azure o all'Istanza gestita di SQL di Azure usando nome utente e password. È necessario specificare un accesso amministratore del server con nome utente e password al momento della creazione del server. Tramite queste credenziali, un amministratore del server può essere autenticato in qualsiasi database di tale server di database in qualità di proprietario del database. In seguito, l'amministratore del server può creare altri utenti e accessi SQL, che consentono agli utenti di connettersi tramite nome utente e password.
Autenticazione Microsoft Entra:
L'autenticazione di Microsoft Entra è un meccanismo di collegamento al database SQL di Azure,all'Istanza gestita di SQL di Azure e ad Azure Synapse Analytics usando le identità in Microsoft Entra ID. L'autenticazione di Microsoft Entra consente agli amministratori di gestire centralmente le identità e le autorizzazioni degli utenti del database oltre ad altri servizi Microsoft. Ciò include la riduzione dell'archiviazione di password e abilita i criteri centralizzati di rotazione delle password.
È necessario creare un amministratore del server denominato amministratore di Microsoft Entra per usare l'autenticazione di Microsoft Entra con il database SQL. Per altre informazioni, vedi Collegamento al database SQL con l'autenticazione di Microsoft Entra. L'autenticazione di Microsoft Entra supporta account gestiti e federati. Gli account federati supportano utenti e gruppi di Windows per un dominio cliente federato con Microsoft Entra ID.
Microsoft Entra supporta diverse opzioni di autenticazione, tra cui l'autenticazione a più fattori, l'autenticazione integrata di Windows e l'accesso condizionale.
Autenticazione di Windows per le entità di sicurezza di Microsoft Entra:
L'autenticazione Kerberos per le entità di sicurezza di Microsoft Entra abilita l'autenticazione di Windows per Istanza gestita di SQL di Azure. L'autenticazione di Windows per le istanze gestite consente ai clienti di spostare i servizi esistenti nel cloud mantenendo al tempo stesso un'esperienza utente senza problemi e fornisce la base per la modernizzazione dell'infrastruttura.
Per abilitare l'autenticazione di Windows per le entità di sicurezza di Microsoft Entra, trasformerai il tenant di Microsoft Entra in un'area di autenticazione Kerberos indipendente e creerai un trust in ingresso nel custom domain. Com'è implementata l'autenticazione di Windows per Istanza gestita di SQL di Azure con Microsoft Entra ID e Kerberos.
Importante
La gestione dei database e dei server in Azure è controllata dalle assegnazioni di ruolo dell'account del portale utenti. Per altre informazioni su questo articolo, vedi Controllo degli accessi in base al ruolo nel portale di Azure. Il controllo dell'accesso con regole del firewall non si applica a un'istanza gestita di SQL. Vedere l'articolo seguente sulla connessione a un'istanza gestita per altre informazioni sulla configurazione di rete necessaria.
Autorizzazione
L'autorizzazione si riferisce al controllo dell'accesso alle risorse e ai comandi all'interno di un database. Questa operazione viene eseguita assegnando autorizzazioni a un utente all'interno di un database nel database SQL di Azure o in Istanza gestita di SQL di Azure. Le autorizzazioni sono idealmente gestite aggiungendo account utente ai ruoli del database e assegnando autorizzazioni a livello di database a tali ruoli. In alternativa, a un singolo utente possono essere concesse determinate autorizzazionia livello di oggetto. Per altre informazioni, vedere Accessi e utenti
Come procedura consigliata, creare ruoli personalizzati quando necessario. Come procedura consigliata, aggiungere utenti al ruolo con i privilegi minimi necessari per svolgere le proprie funzioni. Non assegnare le autorizzazioni direttamente agli utenti. L'account amministratore del server è membro del ruolo di db_owner predefinito, che dispone di autorizzazioni estese e deve essere concesso solo a pochi utenti con compiti amministrativi. Per limitare ulteriormente l'ambito delle operazioni che un utente può eseguire, è possibile usare EXECUTE AS per specificare il contesto di esecuzione del modulo chiamato. Seguire queste procedure consigliate è anche un passo fondamentale verso la separazione dei compiti.
Sicurezza a livello di riga
La sicurezza a livello di riga consente ai clienti di controllare l'accesso alle righe in una tabella del database in base alle caratteristiche dell'utente che esegue una query (ad esempio l'appartenenza al gruppo o il contesto di esecuzione). La sicurezza a livello di riga può essere usata anche per implementare concetti di sicurezza personalizzati basati su etichette. Per altre informazioni, vedere Sicurezza a livello di riga.
Protezione dalle minacce
Il database SQL e l'istanza gestita di SQL proteggono i dati dei clienti fornendo funzionalità di controllo e rilevamento delle minacce.
Controllo SQL nei log di Monitoraggio di Azure e in Hub eventi
Il servizio di controllo del database SQL e di Istanza gestita di SQL tiene traccia delle attività del database per garantire la conformità agli standard di sicurezza tramite la registrazione degli eventi del database in un log di controllo in un account di archiviazione di Azure, di proprietà del cliente. Il servizio di controllo consente agli utenti di monitorare le attività del database in corso e di analizzare ed esaminare l'attività cronologica per identificare potenziali minacce o uso improprio sospetto e violazioni della sicurezza. Per altre informazioni, vedere l' Introduzione al controllo del database SQL.
Advanced Threat Protection
Advanced Threat Protection sta analizzando i log per rilevare comportamenti insoliti e tentativi potenzialmente dannosi di accedere o sfruttare i database. Vengono creati avvisi per attività sospette, ad esempio attacchi SQL injection, potenziali infiltrazioni di dati e attacchi di forza bruta, o per anomalie nei modelli di accesso per rilevare le escalation dei privilegi e l'uso delle credenziali violate. Gli avvisi vengono visualizzati da Microsoft Defender per il cloud, in cui vengono forniti i dettagli delle attività sospette e raccomandazioni per ulteriori indagini fornite insieme alle azioni per attenuare la minaccia. Advanced Threat Protection può essere abilitato per ogni server per un costo aggiuntivo. Per altre informazioni, vedi Attività iniziali di Advanced Threat Protection del database SQL.
Crittografia e protezione delle informazioni
Transport Layer Security (crittografia in transito)
Il database SQL, l'istanza gestita di SQL e Azure Synapse Analytics proteggono i dati dei clienti crittografando i dati in movimento con Tls (Transport Layer Security).
Database SQL, Istanza gestita di SQL e Azure Synapse Analytics applicano sempre la crittografia (SSL/TLS) per tutte le connessioni. In questo modo tutti i dati vengono crittografati tra il client e il server indipendentemente dall'impostazione di Encrypt o TrustServerCertificate nella stringa di connessione.
Come procedura consigliata, specificare una connessione crittografata nella stringa di connessione usata dall'applicazione e non considerare attendibile il certificato del server. In questo modo l'applicazione deve verificare il certificato del server, cosa che la rende invulnerabile agli attacchi di tipo “man in the middle”.
Ad esempio quando si usa il driver ADO.NET, questa operazione viene eseguita tramite Encrypt=True e TrustServerCertificate=False. Se si ottiene la stringa di connessione dal portale di Azure, le impostazioni saranno corrette.
Importante
Alcuni driver non Microsoft potrebbero non usare TLS per impostazione predefinita o basarsi su una versione precedente di TLS (<1.2) per funzionare. In questo caso, il server consente comunque di collegarsi al database. È tuttavia consigliabile valutare i rischi per la sicurezza relativi al consentire a tali driver e applicazioni di collegarsi al database SQL, soprattutto se si archiviano dati sensibili.
Per ulteriori informazioni su TLS e sulla connettività, vedi Considerazioni su TLS
Transparent Data Encryption (TDE - crittografia inattiva)
Transparent Data Encryption (TDE) per database SQL, Istanza gestita di SQL e Azure Synapse Analytics aggiunge un livello di sicurezza per proteggere i dati inattivi da accessi non autorizzati o offline a file o backup non elaborati. Gli scenari comuni includono il furto in data center o eliminazioni non protette di hardware o supporti, ad esempio unità disco e nastri di backup. Transparent Data Encryption (TDE) crittografa l'intero database usando un algoritmo di crittografia AES, che non richiede agli sviluppatori di applicazioni di apportare modifiche alle applicazioni esistenti.
In Azure, tutti i nuovi database SQL vengono crittografati per impostazione predefinita e la chiave di crittografia del database è protetta da un certificato del server incorporato. La manutenzione e la rotazione del certificato sono gestite dal servizio e non richiedono alcun intervento da parte dell'utente. I clienti che preferiscono assumere il controllo delle chiavi di crittografia possono gestire le chiavi presenti in Azure Key Vault.
Gestione delle chiavi con Azure Key Vault
Il supporto Bring Your Own Key (BYOK) per Transparent Data Encryption (TDE) consente ai clienti di appropriarsi della gestione e rotazione delle chiavi tramite Azure Key Vault, il sistema di gestione delle chiavi esterne di Azure basato sul cloud. Se viene revocato l'accesso del database per l'insieme di credenziali delle chiavi, il database non può essere decrittografato e letto in memoria. Azure Key Vault offre una piattaforma di gestione centralizzata delle chiavi, sfrutta i moduli di protezione hardware (HSM) accuratamente monitorati e consente la separazione dei compiti tra la gestione delle chiavi e i dati per contribuire a rispettare i requisiti di conformità alle norme di sicurezza.
Always Encrypted (crittografia in uso)
Always Encrypted è una funzionalità progettata per proteggere da accessi i dati sensibili archiviati in colonne specifiche del database (ad esempio, i numeri delle carte di credito o i numeri di identificazione nazionale o dati sulla base della necessità di conoscere). Sono inclusi gli amministratori del database o altri utenti con privilegi che sono autorizzati ad accedere al database per eseguire attività di gestione, ma che non hanno esigenza di accedere a dati particolari nelle colonne crittografate. I dati vengono sempre crittografati, ossia i dati crittografati vengono decrittografati solo per l'elaborazione da parte di applicazioni client con accesso alla chiave di crittografia. La chiave di crittografia non viene mai esposta al database SQL o all'istanza gestita di SQL e può essere archiviata nell'archivio certificati di Windows o in Azure Key Vault.
Maschera dati dinamica
La funzione Maschera dati dinamica limita l'esposizione dei dati sensibili, nascondendoli agli utenti senza privilegi. La maschera dati dinamica individua automaticamente dati potenzialmente sensibili nel database SQL di Azure e fornisce indicazioni pratiche per il mascheramento di questi campi, con un impatto minimo sul livello dell'applicazione. Questa funzionalità si basa sull'offuscamento dei dati sensibili nel set dei risultati di una query su campi designati del database, mentre i dati del database non subiscono modifiche. Per altre informazioni, vedere Introduzione al database SQL e alla maschera dati dinamica di Istanza gestita di SQL.
Gestione della sicurezza
Valutazione della vulnerabilità
Valutazione della vulnerabilità è un servizio semplice da configurare che consente di individuare, tenere traccia e risolvere potenziali vulnerabilità del database, con l'obiettivo di migliorare in modo proattivo la sicurezza generale del database. Valutazione della vulnerabilità fa parte dell'offerta Sicurezza dei dati avanzata, che è un pacchetto unificato per le funzionalità di sicurezza avanzate SQL. È possibile accedere e gestire Valutazione della vulnerabilità tramite il portale centrale di Microsoft Defender per SQL.
Individuazione e classificazione dei dati
L'individuazione e la classificazione dei dati (attualmente in anteprima) offre funzionalità di base integrate nel database SQL di Azure e in Istanza gestita di SQL per l'individuazione, la classificazione e l'etichettatura dei dati sensibili nei database. L'individuazione e la classificazione dei dati più sensibili (dati commerciali e finanziari, dati relativi all'assistenza sanitaria, informazioni personali e così via) possono svolgere un ruolo fondamentale per il livello di protezione delle informazioni aziendali. Individuazione dati e classificazione può svolgere la funzione di infrastruttura per:
- Vari scenari di sicurezza, ad esempio monitoraggio (controllo) e invio di avvisi sulle anomalie di accesso a dati sensibili.
- Controllare l'accesso ai database che contengono dati molto sensibili e rafforzarne la sicurezza.
- Contribuire a soddisfare gli standard e i requisiti di conformità alle normative sulla privacy dei dati.
Per altre informazioni, vedi Attività iniziali sull’individuazione dei dati e sulla classificazione.
Conformità
Oltre alle caratteristiche e alle funzionalità sopra descritte, che consentono all'applicazione di soddisfare vari requisiti di sicurezza, il database SQL di Azure è inoltre sottoposto a controlli regolari ed ha ottenuto la certificazione per diversi standard di conformità. Per altre informazioni, visitare il Centro protezione di Microsoft Azure, dove è possibile trovare l'elenco più aggiornato di certificazioni di conformità del database SQL.
Passaggi successivi
- Per informazioni sull'uso di account di accesso, account utente, ruoli del database e autorizzazioni in database SQL e Istanza gestita di SQL, vedi Gestire account di accesso e account utente.
- Per informazioni sul controllo del database, vedi controllo.
- Per informazioni sul rilevamento delle minacce, vedi rilevamento delle minacce.