Condividi tramite


Panoramica delle funzionalità di sicurezza del database SQL di Azure e dell'istanza SQL gestita.

Si applica a:Database SQL di AzureIstanza gestita di SQL di AzureAzure 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 di difesa a più livelli come illustrato nell'immagine seguente e si sviluppa dall'esterno verso l'interno.

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

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 al server finché l'accesso non viene esplicitamente concesso in base all'indirizzo IP o all'origine del traffico della 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 del servizio di rete virtuale estendono la connettività della rete virtuale tramite il backbone di Azure e consentono al database SQL di Azure di identificare la subnet della rete virtuale da cui ha origine 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 su Azure è controllata dalle assegnazioni di ruolo del tuo account utente del portale. 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 e l'istanza gestita 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 i principali 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ò autenticarsi a qualsiasi database su quel server o istanza 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 i principali di Microsoft Entra:

    L'autenticazione Kerberos per i principali di Microsoft Entra abilita l'autenticazione di Windows per Azure SQL Managed Instance. 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 i principali di Microsoft Entra, trasformerai il tenant di Microsoft Entra in un'area di autenticazione Kerberos indipendente e creerai un trust in ingresso nel dominio del cliente. 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 dei ruoli dell'account utente del portale. 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. Aggiungere gli utenti al ruolo con i privilegi minimi necessari per svolgere la loro funzione lavorativa. 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.

Diagramma che mostra che la sicurezza a livello di riga protegge le singole righe di un database SQL dall'accesso da parte degli utenti tramite un'app client.

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 controllo del database SQL e di SQL Managed Instance traccia le attività del database e aiuta a mantenere la conformità agli standard di sicurezza registrando gli 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.

Protezione Avanzata dalle Minacce

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 ulteriori informazioni, consulta Introduzione a Advanced Threat Protection per il database SQL.

Diagramma che mostra il monitoraggio dell'accesso tramite Rilevamento delle Minacce SQL al database SQL per un'applicazione web da parte di un aggressore esterno e un utente interno malintenzionato.

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

Crittografia Trasparente dei Dati (Transparent Data Encryption - Crittografia dei dati a riposo)

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 alla cassaforte 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 (cifratura 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 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.

Mascheramento dinamico dei dati

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

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 ulteriori informazioni, consulta Guida introduttiva a Database SQL e Istanza gestita di SQL per il mascheramento dinamico dei dati.

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 delle vulnerabilità è parte integrante del pacchetto Microsoft Defender for SQL, che offre funzionalità di sicurezza avanzata per 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. Può servire come 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