Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 che usa il database SQL di Azure, Istanza gestita di SQL di Azure e Azure Synapse Analytics. La strategia di sicurezza descritta in questo articolo segue l'approccio approfondito basato sulla difesa a più livelli, come illustrato nel diagramma seguente e si sposta dall'esterno in:
Sicurezza di rete
Il database SQL di Azure, l'istanza gestita di SQL di Azure e Azure Synapse Analytics forniscono 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 non si concede esplicitamente l'accesso 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, 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.
- Il controllo dell'accesso con le regole del firewall non si applica a Istanza gestita di SQL. Per altre informazioni sulla configurazione della rete necessaria, vedi Collegamento a un'istanza gestita
Nota
Il controllo dell'accesso con le regole del firewall non si applica a Istanza gestita di SQL. Per altre informazioni sulla configurazione della rete necessaria, vedi Collegamento a un'istanza gestita
Perimetro di sicurezza della rete
Un perimetro di sicurezza di rete di Azure crea limiti di rete logica intorno alle risorse PaaS (Platform-as-a-Service) distribuite all'esterno delle reti virtuali.
- Un perimetro di sicurezza di rete di Azure consente di controllare l'accesso alla rete pubblica al database SQL di Azure.
- Il controllo dell'accesso con un perimetro di sicurezza di rete di Azure non si applica a Istanza gestita di SQL di Azure.
Importante
Il database SQL di Azure con perimetro di sicurezza di rete è attualmente in anteprima. Le anteprime vengono fornite senza un contratto di servizio e non è consigliabile per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.
Autenticazione
L'autenticazione è il processo atto a dimostrare che l'utente sia effettivamente chi dichiara di essere. Il database SQL di Azure e l'istanza gestita di SQL supportano l'autenticazione con Microsoft Entra ID (in precedenza Azure Active Directory) e l'autenticazione SQL. L'istanza gestita di SQL supporta anche l'autenticazione di Windows per i principali di Microsoft Entra.
Autenticazione Microsoft Entra:
L'autenticazione di Microsoft Entra è un meccanismo per connettersi 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. Questa funzionalità consente di eliminare l'uso di segreti e password.
Per usare l'autenticazione di Microsoft Entra con il database SQL, creare un amministratore del server denominato amministratore di Microsoft Entra. 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 le entità di sicurezza di Microsoft Entra, trasformare il tenant di Microsoft Entra in un'area di autenticazione Kerberos indipendente e creare 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.
Autenticazione SQL:
L'autenticazione SQL fa riferimento all'autenticazione di un utente durante la connessione al database SQL di Azure o all'istanza gestita di SQL di Azure usando un nome utente e una password. È necessario specificare un account di accesso amministratore del server con un nome utente e una password durante la 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. Successivamente, l'amministratore del server può creare altri account di accesso e utenti SQL, che consentono agli utenti di connettersi usando un nome utente e una password.
Gestione dell'autorizzazione e dell'accesso
L'autorizzazione si riferisce al controllo dell'accesso alla gestione di server e database e ai dati, alle risorse e ai comandi all'interno di un database. Si assegnano autorizzazioni a un utente all'interno di un database nel database SQL di Azure o in Istanza gestita di SQL di Azure. Le assegnazioni di ruolo dell'account utente del portale controllano la gestione di database e server in Azure. Per altre informazioni, vedere Controllo degli accessi in base al ruolo di Azure nel portale di Azure.
Gestire le autorizzazioni aggiungendo account utente ai ruoli del database e assegnando autorizzazioni a livello di database a tali ruoli. In alternativa, concedere determinate autorizzazioni a livello di oggetto a un singolo utente. Per altre informazioni, vedere Accessi e utenti.
Inoltre, Istanza gestita di SQL di Azure fornisce ruoli a livello di server (predefiniti o personalizzati) per gestire le autorizzazioni per un'istanza. I ruoli a livello di server hanno un ambito di autorizzazioni a livello di server. È possibile aggiungere entità a livello di server in ruoli a livello di server.
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 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 ad alcuni utenti con compiti amministrativi. Per limitare ulteriormente l'ambito delle operazioni che un utente può eseguire, 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
Row-Level Security consente di controllare l'accesso alle righe di una tabella di database in base alle caratteristiche dell'utente che esegue una query, ad esempio l'appartenenza al gruppo o il contesto di esecuzione. Usare Row-Level Security per implementare concetti di sicurezza personalizzati basati su etichette. Per altre informazioni, vedere Sicurezza a livello di riga.
Protezione dalle minacce
Il database SQL di Azure 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 controllo consente di monitorare le attività di database in corso, nonché di analizzare e analizzare le attività cronologiche per identificare potenziali minacce o violazioni sospette e violazioni della sicurezza. Per altre informazioni, vedere l' Introduzione al controllo del database SQL.
Protezione Avanzata dalle Minacce
Advanced Threat Protection analizza i log per rilevare comportamenti insoliti e tentativi potenzialmente dannosi di accedere o sfruttare i database. Crea avvisi per attività sospette, ad esempio SQL injection, potenziali infiltrazioni di dati e attacchi di forza bruta o per anomalie nei modelli di accesso per intercettare le escalation dei privilegi e l'uso delle credenziali violate. È possibile visualizzare gli avvisi da Microsoft Defender for Cloud, in cui vengono forniti i dettagli delle attività sospette e raccomandazioni per ulteriori indagini fornite insieme alle azioni per attenuare la minaccia. È possibile abilitare Advanced Threat Protection per server per un costo aggiuntivo. Per ulteriori informazioni, consulta Introduzione a Advanced Threat Protection per il database SQL.
Crittografia e protezione delle informazioni
Sicurezza del livello di trasporto (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). Questi servizi applicano sempre connessioni crittografate TLS per garantire che tutti i dati vengano crittografati in transito tra il client e il server.
In particolare, il database SQL, l'istanza gestita di SQL e Azure Synapse Analytics impostano il flag ForceEncryption di configurazione su Yes. I client e i driver devono supportare connessioni crittografate per connettersi a questi servizi. La versione più bassa del protocollo TDS che può connettersi è TDS 7.1.
Come procedura consigliata, se si dispone di driver SQL con supporto per TDS 8.0, usare la crittografia di connessione Strict.
Se i driver non supportano TDS 8.0, usare la crittografia obbligatoria e non considerare attendibile il certificato del server. Ad esempio, quando si usa il driver ADO.NET, usare Encrypt=True e TrustServerCertificate=False nella stringa di connessione per eseguire questa operazione. La stringa di connessione ottenuta dal portale di Azure è già configurata con questi valori.
Evitare di impostare il parametro TrustServerCertificate su True nell'uso in produzione.
TrustServerCertificate=True è troppo permissivo e non protegge dagli attacchi man-in-the-middle. Se invece il client prevede un nome di dominio diverso nel certificato del server, usare il HostNameInCertificate parametro per specificare il nome di dominio corretto per la convalida.
Ad esempio, quando si usa il driver ADO.NET per connettersi all'istanza contoso-instance.123456.database.windows.net gestita tramite un nome contoso-instance.contoso.comdi dominio personalizzato, impostare i parametri di Encrypt=True connessione e impostare HostNameInCertificate=contoso-instance.123456.database.windows.net. Questa configurazione consente al driver di convalidare il certificato del server rispetto a un nome di dominio dell'endpoint locale della rete virtuale previsto.
Importante
Alcuni driver non Microsoft potrebbero non usare TLS per impostazione predefinita o potrebbero basarsi su una versione precedente di TLS (precedente alla 1.2) per funzionare. In questo caso, il server consente comunque di connettersi al database. Valutare tuttavia i rischi per la sicurezza di consentire a tali driver e applicazioni di connettersi al database SQL, soprattutto se si archiviano dati sensibili.
Per altre informazioni su TLS e connettività, vedere Considerazioni su TLS.
Crittografia Trasparente dei Dati (crittografia dei dati inattivi) con chiavi gestite dal servizio
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. 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. Il servizio gestisce la manutenzione e la rotazione dei certificati e non richiede alcun input da parte dell'utente. Se si preferisce assumere il controllo delle chiavi di crittografia, è possibile gestire le chiavi in Azure Key Vault.
Transparent Data Encryption (crittografia dei dati a riposo) con chiavi gestite dal cliente
Se è necessario un maggiore controllo sulle chiavi di crittografia, Transparent Data Encryption (TDE) supporta chiavi gestite dal cliente.If you need greater control over encryption keys, Transparent Data Encryption (TDE) supports customer-managed keys (CMK). Questa chiave cmk è associata al server logico ed esegue il wrapping delle chiavi di crittografia del database per tutti i database all'interno di tale server. In alternativa, è possibile configurare una chiave gestita dal cliente a livello di database singolo. Gestendo il CMK, è possibile controllare la rotazione delle chiavi, la revoca e l'auditing, che spesso è necessario per la conformità o politiche di sicurezza rigide.
Always Encrypted e Always Encrypted con enclave sicuri (crittografia in uso)
Always Encrypted e Always Encrypted con enclave sicuri sono funzionalità progettate per proteggere i dati sensibili archiviati in colonne di database specifiche dall'accesso (ad esempio, numeri di carta di credito, numeri di identificazione nazionali/regionali o dati in base alla necessità di conoscere ). Questa protezione include amministratori di database o altri utenti con privilegi autorizzati ad accedere al database per eseguire attività di gestione, ma non devono accedere ai dati specifici 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
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. Funziona offuscando i dati sensibili nel set di risultati di una query su campi di database designati, mentre i dati nel database non sono modificati. Per ulteriori informazioni, consulta Guida introduttiva a Database SQL e Istanza gestita di SQL per il mascheramento dinamico dei dati.
Ledger
Ledger nel database SQL di Azure e nell'istanza gestita di SQL è una funzionalità che fornisce una prova crittografica dell'integrità dei dati. Con il ledger, hai capacità di rilevazione della manomissione per i tuoi dati. È possibile usare la crittografia per attestare ad altre parti, ad esempio revisori dei conti o altre parti commerciali, che i dati non sono stati manomessi.
Il libro mastro usa la tecnologia antimanomissione per registrare le modifiche del database in un libro mastro non modificabile, assicurando che eventuali modifiche non autorizzate possano essere rilevate. Questa funzionalità è particolarmente utile per gli scenari che richiedono conformità alle normative, controllabilità e attendibilità tra più parti. Abilitando il libro mastro, è possibile verificare l'integrità dei dati, riducendo il rischio di frodi o manipolazione 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 la valutazione delle vulnerabilità tramite il portale centrale di Microsoft Defender per SQL.
Individuazione e classificazione dei dati
L'individuazione e la classificazione dei dati offrono funzionalità di base integrate nel database SQL di Azure e in Istanza gestita di SQL per individuare, classificare ed etichettare i dati sensibili nei database. L'individuazione e la classificazione dei dati più sensibili (business, financial, healthcare, dati personali e altro ancora) svolgono un ruolo fondamentale nella statura della protezione delle informazioni dell'organizzazione. Funge da 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 funzionalità e alle funzionalità che consentono all'applicazione di soddisfare vari requisiti di sicurezza, il database SQL di Azure partecipa anche a controlli regolari. È stata certificata in base a 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.