Panoramica delle funzionalità di sicurezza di database SQL di Azure e 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:

Diagram of layered defense-in-depth. Customer data is encased in layers of network security, access management and threat and information protections.

Nota

Microsoft Entra ID era precedentemente noto 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, vedere Panoramica delle regole del firewall di 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 le regole del firewall non si applica alle Istanza gestita di SQL. Per altre informazioni sulla configurazione di rete necessaria, vedere Connessione 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, vedere Controllo degli accessi in base al ruolo di Azure nella portale di Azure.

Autenticazione

L'autenticazione è il processo atto a dimostrare che l'utente sia effettivamente chi dichiara di essere. database SQL e Istanza gestita di SQL supportano l'autenticazione e l'autenticazione SQL con Microsoft Entra ID (in precedenza Azure Active Directory). L'istanza gestita di SQL supporta inoltre 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 account di 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 di Microsoft Entra:

    L'autenticazione di Microsoft Entra è un meccanismo per connettersi a database SQL di Azure, Istanza gestita di SQL di Azure e 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ò riduce al minimo l'archiviazione delle 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 database SQL. Per altre informazioni, vedere Connessione di 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 di Windows integrata 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 consente di autenticazione di Windows per Istanza gestita di SQL di Azure. 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 autenticazione di Windows per le entità di sicurezza di Microsoft Entra, il tenant di Microsoft Entra verrà trasformato in un'area di autenticazione Kerberos indipendente e verrà creata una relazione di trust in ingresso nel dominio del cliente. Informazioni su come autenticazione di Windows per Istanza gestita di SQL di Azure viene implementato 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, vedere Controllo degli accessi in base al ruolo di Azure in portale di Azure. Il controllo dell'accesso con le regole del firewall non si applica alle 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.

Diagram showing that Row-Level Security shields individual rows of a SQL database from access by users via a client app.

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, vedere Introduzione a database SQL Advanced Threat Protection.

Diagram showing SQL Threat Detection monitoring access to the SQL database for a web app from an external attacker and malicious insider.

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

Si noti che 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 connettersi al database. È tuttavia consigliabile valutare i rischi per la sicurezza di consentire a tali driver e applicazioni di connettersi a database SQL, soprattutto se si archiviano dati sensibili.

Per altre informazioni su TLS e connettività, vedere 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)

Diagram showing the basics of the Always Encrypted feature. An SQL database with a lock is only accessed by an app containing a key.

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

Diagram showing dynamic data masking. A business app sends data to a SQL database which masks the data before sending it back to the business app.

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, vedere Introduzione all'individuazione e alla classificazione dei dati.

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