Panoramica delle funzionalità di sicurezza di Azure SQL database e Istanza gestita di SQL

Si applica a: Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics

Questo articolo illustra le nozioni di base per proteggere il livello dati di un'applicazione usando Azure SQL Database, 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:

Diagramma della difesa a più livelli. I dati dei clienti vengono racchiusi in livelli di sicurezza di rete, gestione degli accessi e minacce e protezioni delle informazioni.

Sicurezza di rete

database SQL di Microsoft Azure, Istanza gestita di SQL e Azure Synapse Analytics offrono un servizio di database relazionale per applicazioni cloud e aziendali. Per proteggere i dati dei clienti, i firewall impediscono l'accesso alla rete al server fino a quando l'accesso non viene concesso in modo esplicito in base all'indirizzo IP o all'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 Azure SQL Database e Azure Synapse Analytics.

Regole del firewall della rete virtuale

Gli endpoint servizio di rete virtuale estendono la connettività di rete virtuale sul backbone di Azure e consentono a database di Azure SQL di identificare la subnet di rete virtuale da cui proviene 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 nel portale di Azure.

Authentication

L'autenticazione è il processo atto a dimostrare che l'utente sia effettivamente chi dichiara di essere. Azure SQL database e Istanza gestita di SQL supportano l'autenticazione SQL e l'autenticazione di Azure AD. Istanza gestita di SQL supporta anche l'autenticazione di Windows per le entità di sicurezza di Azure AD.

  • Autenticazione SQL:

    L'autenticazione SQL fa riferimento all'autenticazione di un utente durante la connessione a Azure SQL database o Istanza gestita di SQL di Azure tramite nome utente e password. Quando viene creato il server, è necessario specificare un account di accesso amministratore del server con nome utente e password. Usando queste credenziali, un amministratore del server può eseguire l'autenticazione a qualsiasi database in tale server o istanza come 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 Azure Active Directory:

    L'autenticazione di Azure Active Directory è un meccanismo di connessione a database Azure SQL, Istanza gestita di SQL di Azure e Azure Synapse Analytics usando le identità in Azure Active Directory (Azure AD). L'autenticazione di Azure AD consente agli amministratori di gestire centralmente le identità e le autorizzazioni degli utenti del database insieme ad altri servizi di Azure in una posizione centrale. Ciò include la riduzione dell'archiviazione di password e abilita i criteri centralizzati di rotazione delle password.

    Occorre creare un amministratore del server denominato Amministratore di Active Directory Domain Services per usare l'autenticazione di Azure AD con il database SQL. Per altre informazioni, vedere Connessione al database SQL tramite l'autenticazione di Azure Active Directory. L'autenticazione di Azure AD supporta sia gli account gestiti che quelli federati. Gli account federati supportano gli utenti di Windows e gruppi per un dominio utente federato con Azure AD.

    Altre opzioni di autenticazione di Azure AD disponibili sono l'autenticazione universale di Active Directory per le connessioni SQL Server Management Studio, tra cui l'autenticazione a più fattori e l'accessocondizionale.

  • Autenticazione di Windows per entità di Azure AD (anteprima):Windows Authentication for Azure AD Principals (Preview):

    L'autenticazione Kerberos per le entità di sicurezza di Azure AD (anteprima) 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 Azure Active Directory (Azure AD), si trasformerà il tenant di Azure AD in un'area di autenticazione Kerberos indipendente e si creerà un trust in ingresso nel dominio del cliente. Informazioni su come viene implementata l'autenticazione di Windows per Istanza gestita di SQL di Azure con Azure Active Directory 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. Per altre informazioni sulla configurazione di rete necessaria, vedere l'articolo seguente sulla connessione a un'istanza gestita .

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 in Azure SQL Database o 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 autorizzazioni a livello di oggetto. Per altre informazioni, vedere Accessi e utenti

Come procedura consigliata, creare ruoli personalizzati quando necessario. Aggiungere utenti al ruolo con i privilegi minimi necessari per eseguire la funzione del processo. Non assegnare le autorizzazioni direttamente agli utenti. L'account amministratore del server è un membro del ruolo 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. Seguendo 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). Row-Level La sicurezza può essere usata anche per implementare concetti di sicurezza personalizzati basati su etichette. Per altre informazioni, vedere Sicurezza a livello di riga.

Diagramma che mostra che Row-Level Security protegge le singole righe di un database SQL dall'accesso da parte degli utenti tramite un'app client.

Protezione dalle minacce

database SQL e Istanza gestita di SQL proteggere 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 Introduzione al controllo 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 for Cloud, in cui vengono forniti i dettagli delle attività sospette e le 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.

Diagramma che mostra il monitoraggio del rilevamento delle minacce SQL per il database SQL per un'app Web da un utente malintenzionato esterno e da utenti malintenzionati.

Crittografia e protezione delle informazioni

Transport Layer Security (crittografia in transito)

database SQL, Istanza gestita di SQL e Azure Synapse Analytics proteggono i dati dei clienti crittografando i dati in movimento con Transport Layer Security (TLS).

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, è consigliabile 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 che consentono 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 del data center o l'eliminazione non protetta di hardware o supporti, ad esempio unità disco e nastri di backup. 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 database appena creati vengono crittografati per impostazione predefinita e la chiave di crittografia del database è protetta da un certificato server predefinito. La manutenzione e la rotazione dei certificati vengono gestiti dal servizio e non richiedono alcun input dall'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 di Bring Your Own Key (BYOK) per Transparent Data Encryption (TDE) consente ai clienti di acquisire la proprietà della gestione e della rotazione delle chiavi usando Azure Key Vault, il sistema di gestione delle chiavi esterne basato sul cloud di Azure. 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)

Diagramma che mostra le nozioni di base della funzionalità Always Encrypted. Un database SQL con un blocco è accessibile solo da un'app contenente una chiave.

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 è mai esposta a database SQL o Istanza gestita di SQL e può essere archiviata in Windows Certificate Store o in Azure Key Vault.

Maschera dati dinamica

Diagramma che mostra la maschera dinamica dei dati. Un'app aziendale invia dati a un database SQL che maschera i dati prima di inviarli all'app aziendale.

La maschera dati dinamica limita l'esposizione dei dati sensibili nascondendoli agli utenti senza privilegi. Il mascheramento di dati dinamico individua automaticamente i dati potenzialmente sensibili nel database Azure SQL e Istanza gestita di SQL e fornisce raccomandazioni utilizzabili per mascherare 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 a database SQL e Istanza gestita di SQL maschera dati dinamica.

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. La valutazione della vulnerabilità (VA) fa parte dell'offerta Microsoft Defender per SQL, che è un pacchetto unificato per le funzionalità di sicurezza SQL avanzate. La valutazione delle vulnerabilità può essere accessibile e gestita 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 in database Azure SQL e 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, vedere il Centro protezione di Microsoft Azure in cui è possibile trovare l'elenco più recente delle certificazioni di conformità database SQL.

Passaggi successivi