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

SI APPLICA A: Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics

Questo articolo illustra le nozioni di base sulla protezione del livello dati di un'applicazione usandodatabase SQL di Azure , Istanza gestita di SQL di Azuree 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 in modo approfondito. I dati dei clienti sono racchiusi in livelli di sicurezza di rete, gestione degli accessi e protezione delle minacce e delle informazioni.

Sicurezza di rete

database SQL di Microsoft Azure, SQL Istanza gestita e Azure Synapse Analytics un servizio di database relazionale per le 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 database SQL di Azure e Azure Synapse Analytics firewall.

Regole del firewall della rete virtuale

Gli endpoint del servizio di rete virtuale estendono la connettività di rete virtuale sul backbone di Azure e database SQL di Azure identificare la subnet di 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 le regole del firewall non si applica a SQL Istanza gestita. 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 inbase al ruolo di Azure nella portale di Azure .

Authentication

L'autenticazione è il processo atto a dimostrare che l'utente sia effettivamente chi dichiara di essere. database SQL di Azure e SQL Istanza gestita supportano due tipi di autenticazione:

  • Autenticazione SQL:

    L'autenticazione SQL si riferisce all'autenticazione di un utente durante la connessione a database SQL di Azure o Istanza gestita di SQL di Azure tramite nome utente e password. Quando si crea 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.

  • Azure Active Directory autenticazione :

    Azure Active Directory'autenticazione è un meccanismo di connessione a database SQL di Azure, Istanza gestita di SQL di Azure e Azure Synapse Analytics tramite identità in Azure Active Directory (Azure AD). Azure AD'autenticazione consente agli amministratori di gestire centralmente le identità e le autorizzazioni degli utenti del database insieme ad altri servizi di Azure in un'unica 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 le connessioni Autenticazione universale di Active Directory per SQL Server Management Studio che includono Autenticazione a più fattori e Accesso condizionale.

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 a SQL Istanza gestita. Per altre informazioni sulla configurazione di rete necessaria, vedere l'articolo seguente sulla connessione a un'istanza gestita.

Autorizzazione

L'autorizzazione si riferisce alle autorizzazioni assegnate a un utente all'interno di un database in database SQL di Azure o Istanza gestita di SQL di Azure e determina le attività consentite all'utente. Le autorizzazioni vengono controllate aggiungendo account utente ai ruoli del database e assegnando autorizzazioni a livello di database a tali ruoli o concedendo all'utente 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. Non assegnare le autorizzazioni direttamente agli utenti. L'account amministratore del server è membro del ruolo predefinito db_owner, che dispone di autorizzazioni estese e deve essere concesso solo a pochi utenti con compiti amministrativi. Per le applicazioni, usare EXECUTE AS per specificare il contesto di esecuzione del modulo chiamato o usare i ruoli applicazione con autorizzazioni limitate. Questa procedura garantisce che l'applicazione che si connette al database abbia i privilegi minimi necessari per l'applicazione. L'applicazione di queste procedure consigliate favorisce anche 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 sicurezza basata su etichette può essere usato anche per implementare concetti di sicurezza personalizzati basati su etichette. Per altre informazioni, vedere Sicurezza a livello di riga.

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

Protezione dalle minacce

Il database SQL e SQL Istanza gestita proteggere i dati dei clienti fornendo funzionalità di controllo e rilevamento delle minacce.

Controllo SQL nei log Monitoraggio di Azure e in Hub eventi

Il database SQL e SQL Istanza gestita controllo tiene traccia delle attività del database e consente di 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 Introduzione al controllo del database SQL.

Advanced Threat Protection

Advanced Threat Protection analizza i log per rilevare comportamenti insoliti e tentativi potenzialmente dannosi di accedere o sfruttare i database. Vengono creati avvisi per attività sospette come 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 dal Centro sicurezza di Azure, in cui vengono forniti i dettagli delle attività sospette e vengono forniti consigli per un'ulteriore analisi e azioni per attenuare la minaccia. Advanced Threat Protection può essere abilitato per ogni server a pagamento aggiuntivo. Per altre informazioni, vedere Introduzione a Sql Database Advanced Threat Protection.

Diagramma che mostra il rilevamento delle minacce SQL che monitora l'accesso al database SQL per un'app Web da un utente malintenzionato esterno e da utenti interni malintenzionati.

Crittografia e protezione delle informazioni

Transport Layer Security (crittografia in transito)

Database SQL, sql Istanza gestita e Azure Synapse Analytics dati dei clienti protetti crittografando i dati in movimento con Transport Layer Security (TLS).

Il database SQL, sql Istanza gestita e Azure Synapse Analytics la crittografia (SSL/TLS) in qualsiasi momento per tutte le connessioni. In questo modo tutti i dati vengono crittografati "in transito" tra il client e il server indipendentemente dall'impostazione di Encrypt o TrustServerCertificate nella stringa di connessione.

Come procedura consigliata, nella stringa di connessione usata dall'applicazione è __ consigliabile specificare una connessione crittografata e non considerare attendibile il certificato del server. In questo modo l'applicazione deve verificare il certificato del server e quindi impedisce che l'applicazione sia vulnerabile agli attacchi di tipo man in the middle.

Quando si usa il driver ADO.NET, ad esempio, 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 derivanti dalla possibilità che tali driver e applicazioni si connettono al database SQL, soprattutto se si archiviano dati sensibili.

Per altre informazioni su TLS e sulla connettività, vedere Considerazioni su TLS

Transparent Data Encryption (TDE - crittografia inattiva)

Transparent Data Encryption (TDE) per database SQL, SQL Istanza gestita e Azure Synapse Analytics aggiunge un livello di sicurezza che consente di proteggere i dati in stato di inquieto da accessi non autorizzati o offline a file o backup non elaborati. Gli scenari comuni includono data center furto o 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 gestite dal servizio e non richiedono alcun input 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

Bring Your Own Key (BYOK) per Transparent Data Encryption (TDE) consente ai clienti di assumere 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 illustra le nozioni di base Always Encrypted funzionalità. Un database SQL con 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 Istanza gestita SQL e può essere archiviata nell'archivio certificati di Windows o in Azure Key Vault.

Maschera dati dinamica

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 maschera dati dinamica limita l'esposizione dei dati sensibili nascondendoli agli utenti senza privilegi. La maschera dati dinamica individua automaticamente i dati potenzialmente sensibili in database SQL di Azure e SQL Istanza gestita e fornisce raccomandazioni utili 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 al database SQL e a SQL Istanza gestita 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à fa parte dell'offerta Azure Defender per SQL, che è un pacchetto unificato per funzionalità di sicurezza SQL avanzate. La valutazione della vulnerabilità è accessibile e gestita tramite il portale Azure Defender per SQL.

Individuazione e classificazione dei dati

L'individuazione e la classificazione dei dati (attualmente in anteprima) offre funzionalità avanzate integrate in database SQL di Azure e SQL Istanza gestita per l'individuazione, la classificazione, l'etichettatura e la protezione 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 l'Microsoft Azure Trust Center in cui è possibile trovare l'elenco più attuale di certificazioni di conformità al database SQL.

Passaggi successivi

  • Per una descrizione dell'uso di account di accesso, account utente, ruoli del database e autorizzazioni nel database SQL e sql Istanza gestita, vedere Gestire gli account di accesso e gli account utente.
  • Per una descrizione del controllo del database, vedere Controllodi .
  • Per una descrizione del rilevamento delle minacce, vedere Rilevamento delle minacce.