Esercitazione: Proteggere un database nel database SQL di Azure
Si applica a: database SQL di Azure
In questa esercitazione si apprenderà come:
- Creare regole del firewall a livello di server e di database
- Configurare un amministratore di Microsoft Entra
- Gestire l'accesso degli utenti con l'autenticazione SQL, l'autenticazione di Microsoft Entra e le stringhe di connessione sicure
- Abilitare funzionalità di sicurezza come Microsoft Defender per SQL, il controllo, la maschera dati e la crittografia
Nota
Microsoft Entra ID era precedentemente conosciuto come Azure Active Directory (Azure AD).
Il database SQL di Azure protegge i dati consentendo di:
- Limitare l'accesso tramite regole del firewall
- Usare meccanismi di autenticazione che verificano l'identità
- Concedere autorizzazioni tramite appartenenze e autorizzazioni basate sui ruoli
- Abilitare le funzionalità di sicurezza
Nota
L'istanza gestita di SQL di Azure viene protetta tramite regole di sicurezza di rete ed endpoint privati come descritto in Istanza gestita di SQL di Azure e in Architettura della connettività.
Per altre informazioni, vedere gli articoli database SQL di Azure - Sicurezza avanzata e Panoramica della funzionalità di sicurezza del database SQL di Azure.
Suggerimento
Questo modulo Learn gratuito illustra come proteggere il database nel database SQL di Azure.
Prerequisiti
Per completare questa esercitazione, verificare di avere i prerequisiti seguenti:
- SQL Server Management Studio
- Un server e un database singolo
- Per crearli, usare il portale di Azure, l'interfaccia della riga di comando o PowerShell
Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Accedere al portale di Azure
Per tutti i passaggi dell'esercitazione, accedere al portale di Azure
Creare regole del firewall
I database nel database SQL sono protetti da firewall in Azure. Per impostazione predefinita, vengono rifiutate tutte le connessioni al server e al database. Per altre informazioni, vedere regole del firewall a livello di server e di database.
La configurazione più sicura consiste nell'impostare Consenti l'accesso a Servizi di Azure su NO. Quindi, creare un IP riservato (distribuzione classica) per la risorsa da connettere, ad esempio una macchina virtuale di Azure o un servizio cloud, e consentire l'accesso tramite il firewall solo a questo indirizzo IP. Se si usa il modello di distribuzione di Resource Manager, è necessario un indirizzo IP pubblico dedicato per ogni risorsa.
Nota
Il database SQL comunica attraverso la porta 1433. Se si sta provando a connettersi da una rete aziendale, il traffico in uscita sulla porta 1433 potrebbe non essere consentito dal firewall della rete. In questo caso, non è possibile connettersi al server a meno che l'amministratore non apra la porta 1433.
Configurare le regole del firewall a livello di server
Le regole del firewall IP a livello di server si applicano a tutti i database all'interno dello stesso server.
Per configurare una regola del firewall a livello di server:
Nel portale di Azure scegliere Database SQL dal menu a sinistra, quindi selezionare il database nella pagina Database SQL.
Nota
Assicurarsi di copiare il nome completo del server, ad esempio server.database.windows.net, per l'uso successivo nell'esercitazione.
Selezionare Rete in Impostazioni. Scegliere la scheda Accesso pubblico e quindi selezionare Reti selezionate in Accesso alla rete pubblica per mostrare la sezione Regole del firewall.
Selezionare Aggiungi IP client sulla barra degli strumenti per aggiungere l'indirizzo IP corrente a una nuova regola del firewall IP. Una regola del firewall per gli indirizzi IP può aprire la porta 1433 per un singolo indirizzo IP o un intervallo di indirizzi IP.
Per salvare le impostazioni del firewall, selezionare OK.
È ora possibile connettersi a qualsiasi database nel server con l'indirizzo IP specificato o con un intervallo di indirizzi IP.
Configurare le regole del firewall per il database
Le regole del firewall a livello di database di applicano solo ai singoli database. Il database conserverà queste regole durante un failover del server. Le regole del firewall a livello di database possono essere configurate solo tramite istruzioni Transact-SQL (T-SQL) e solo dopo aver configurato una regola del firewall a livello di server.
Per configurare una regola del firewall a livello di database:
Connettersi al database, ad esempio usando SQL Server Management Studio.
In Esplora oggetti fare clic con il pulsante destro del mouse sul database e scegliere Nuova query.
Nella finestra della query aggiungere questa istruzione e sostituire l'indirizzo IP con l'indirizzo IP pubblico:
EXECUTE sp_set_database_firewall_rule N'Example DB Rule','0.0.0.4','0.0.0.4';
Sulla barra degli strumenti selezionare Esegui per creare la regola del firewall.
Nota
È anche possibile creare una regola del firewall a livello di server in SSMS usando il comando sp_set_firewall_rule, ma è necessario essere connessi al database master.
Creare un amministratore di Microsoft Entra
Assicurarsi di usare il dominio gestito di Microsoft Entra ID (in precedenza Azure Active Directory) appropriato. Per selezionare il dominio, usare l'angolo in alto a destra del portale di Azure. Con questa procedura è possibile accertarsi che venga usata la stessa sottoscrizione sia per Microsoft Entra ID sia per il server logico che ospita il database o il data warehouse.
Impostare l'amministratore Microsoft Entra.
Nella pagina SQL Server del portale di Azure, selezionare Microsoft Entra ID dal menu della risorsa, poi selezionare Imposta amministratore per aprire il riquadro Microsoft Entra ID.
Importante
Per eseguire questa attività è necessario essere un "Amministratore globale".
Nel riquadro Microsoft Entra ID, cercare e selezionare l'utente o il gruppo Microsoft Entra e scegliere Seleziona. Tutti i membri e i gruppi dell'organizzazione Microsoft Entra sono elencati; le voci in grigio non sono supportate come amministratori Microsoft Entra.
Importante
Il Controllo degli accessi in base al ruolo di Azure si applica solo al portale e non viene propagato a SQL Server.
Nella parte superiore della pagina di amministrazione di Microsoft Entra, selezionare Salva.
Il processo di modifica di un amministratore può richiedere alcuni minuti. Il nuovo amministratore verrà quindi visualizzato nel campo Amministratore di Microsoft Entra.
Nota
Quando si imposta un amministratore di Microsoft Entra, il nome del nuovo amministratore (utente o gruppo) non può essere già presente nel database master come utente o account di accesso. Se presente, la configurazione non riesce e verrà eseguito il rollback delle modifiche, a indicare che tale nome di amministratore esiste già. Poiché l'account di accesso al server o l'utente non fa parte di Microsoft Entra ID, qualsiasi sforzo per connettersi al server tramite l'autenticazione di Microsoft Entra ha esito negativo.
Per informazioni sulla configurazione di Microsoft Entra ID, vedere:
- Integrare le identità locali con Microsoft Entra ID
- Aggiungere il proprio nome di dominio personalizzato in Microsoft Entra ID
- Federazione con Microsoft Entra ID
- Amministrazione della directory di Microsoft Entra
- Gestire Microsoft Entra ID utilizzando PowerShell
- Porte e protocolli necessari per la soluzione ibrida di gestione delle identità
Gestire l'accesso al database
Per gestire l'accesso al database, aggiungervi gli utenti oppure consentire loro l'accesso tramite stringhe di connessione sicure. Le stringhe di connessione sono utili per le applicazioni esterne. Per altre informazioni, vedere Gestire gli account di accesso e gli account utente e Autenticazione di Microsoft Entra.
Per aggiungere utenti, scegliere il tipo di autenticazione del database:
Autenticazione di SQL: usa nome utente e password per gli accessi, che sono validi solo nel contesto di uno specifico database all'interno del server
Autenticazione di Microsoft Entra, usare le identità gestite da Microsoft Entra ID
Autenticazione SQL
Per aggiungere un utente con l'autenticazione di SQL:
Connettersi al database, ad esempio usando SQL Server Management Studio.
In Esplora oggetti fare clic con il pulsante destro del mouse sul database e scegliere Nuova query.
Nella finestra della query immettere il comando seguente:
CREATE USER ApplicationUser WITH PASSWORD = 'YourStrongPassword1';
Sulla barra degli strumenti selezionare Esegui per creare l'utente.
Per impostazione predefinita, l'utente può connettersi al database, ma non dispone delle autorizzazioni per leggere o scrivere dati. Per concedere le autorizzazioni, eseguire i due comandi seguenti in una nuova finestra della query:
ALTER ROLE db_datareader ADD MEMBER ApplicationUser; ALTER ROLE db_datawriter ADD MEMBER ApplicationUser;
Nota
Creare gli account per gli utenti non amministratori a livello di database, a meno che non abbiano l'esigenza di eseguire attività di amministrazione come la creazione di nuovi utenti.
Autenticazione Microsoft Entra
Poiché il database SQL di Azure non supporta le entità server di Microsoft Entra (account di accesso), gli utenti di database creati con account Microsoft Entra vengono creati come utenti di database indipendenti. Un utente del database indipendente non è associato a un account di accesso nel database master
, anche se esiste un account di accesso con lo stesso nome. L'identità di Microsoft Entra può essere relativa un singolo utente o a un gruppo. Per altre informazioni, vedere Utenti di database indipendente: rendere portabile un database e consultare l'esercitazione di Microsoft Entra sull'autenticazione tramite Microsoft Entra ID.
Nota
Gli utenti del database, ad eccezione degli amministratori, non possono essere creati tramite il portale di Azure. I ruoli di Microsoft Entra non vengono propagati in SQL Server, database o data warehouse. Vengono usati solo per la gestione delle risorse di Azure e non si applicano alle autorizzazioni per il database.
Ad esempio, il ruolo Collaboratore SQL Server non concede l'accesso per connettersi a un database o a un data warehouse. Questa autorizzazione deve essere concessa all'interno del database tramite istruzioni T-SQL.
Importante
I caratteri speciali, come i due punti :
o la e commerciale &
, non sono supportati nei nomi utente e nelle istruzioni T-SQL CREATE LOGIN
e CREATE USER
.
Per aggiungere un utente all'autenticazione con Microsoft Entra:
Connettersi al server in Azure usando un account Microsoft Entra che abbia almeno l'autorizzazione ALTER ANY USER.
In Esplora oggetti fare clic con il pulsante destro del mouse sul database e scegliere Nuova query.
Nella finestra della query immettere il comando seguente e sostituire
<Azure_AD_principal_name>
con il nome dell'entità utente di Microsoft Entra o con il nome visualizzato di un gruppo di Microsoft Entra:CREATE USER [<Azure_AD_principal_name>] FROM EXTERNAL PROVIDER;
Nota
Gli utenti di Microsoft Entra sono contrassegnati nei metadati del database con il tipo E (EXTERNAL_USER)
e con il tipo X (EXTERNAL_GROUPS)
per i gruppi. Per altre informazioni, vedere sys.database_principals.
Stringhe di connessione sicure
Per garantire una connessione crittografata e sicura tra l'applicazione client e il database SQL, è necessario configurare una stringa di connessione per:
- Richiedere una connessione crittografata
- Non considerare attendibile il certificato del server
La connessione viene stabilita tramite Transport Layer Security (TLS), riducendo il rischio di attacchi man-in-the-middle. Le stringhe di connessione sono disponibili per ogni database e sono preconfigurate per supportare driver client come ADO.NET, JDBC, ODBC e PHP. Per informazioni su TLS e la connettività, vedere Considerazioni su TLS.
Per copiare una stringa di connessione sicura:
Nel portale di Azure scegliere Database SQL dal menu a sinistra, quindi selezionare il database nella pagina Database SQL.
Nella pagina Panoramica selezionare Mostra stringhe di connessione del database.
Selezionare la scheda di un driver e copiare la stringa di connessione completa.
Abilitare le funzionalità di sicurezza
Il database SQL di Azure include funzionalità di sicurezza accessibili dal portale di Azure. Queste funzionalità sono disponibili sia per il database che per il server, ad eccezione della maschera dei dati, che è disponibile solo nel database. Per altre informazioni, vedere gli articoli relativi a Microsoft Defender per SQL, Controllo, Dynamic Data Masking e Transparent Data Encryption.
Microsoft Defender per SQL
La funzionalità Microsoft Defender per SQL rileva le potenziali minacce nel momento in cui si verificano e invia avvisi di sicurezza per le attività anomale. Gli utenti possono esaminare gli eventi sospetti con la funzionalità di controllo per determinare se si tratta di un tentativo di accesso, violazione o exploit dei dati del database. Possono inoltre accedere a una panoramica sulla sicurezza, che include una valutazione della vulnerabilità oltre allo strumento di individuazione e classificazione dei dati.
Nota
Un esempio di minaccia è SQL injection, un processo in cui gli utenti malintenzionati inseriscono codice SQL dannoso negli input dell'applicazione. L'applicazione può quindi eseguire inconsapevolmente tale codice, consentendo agli utenti malintenzionati di violare o modificare i dati del database.
Per abilitare Microsoft Defender for SQL:
Nel portale di Azure scegliere Database SQL dal menu a sinistra, quindi selezionare il database nella pagina Database SQL.
Nella pagina Panoramica selezionare il collegamento Nome server. Verrà visualizzata la pagina del server.
Nella pagina SQL Server cercare la sezione Sicurezza e selezionare Defender per il cloud.
Selezionare ON in Microsoft Defender per SQL per abilitare la funzionalità. Scegliere un account di archiviazione per il salvataggio dei risultati della valutazione della vulnerabilità. Quindi selezionare Salva.
È anche possibile configurare gli indirizzi di posta elettronica a cui ricevere avvisi di sicurezza, dettagli sulle risorse di archiviazione e tipi di rilevamento delle minacce.
Tornare alla pagina Database SQL del database e selezionare Defender per il cloud nella sezione Sicurezza. In questa sezione sono disponibili vari indicatori della sicurezza per il database.
Se vengono rilevate attività anomale, si riceverà un messaggio di posta elettronica con informazioni sull'evento, tra cui la natura dell'attività, il database, il server, l'ora dell'evento, le possibili cause e le azioni consigliate per analizzare e contrastare la potenziale minaccia. Se si riceve un messaggio di questo tipo, selezionare il collegamento che punta al log di controllo del database SQL di Azure per avviare il portale di Azure e visualizzare i record di controllo pertinenti per l'ora dell'evento.
Eseguire i controlli
La funzionalità di controllo tiene traccia degli eventi del database e li scrive in un log di controllo nell'archiviazione di Azure, nei log di Monitoraggio di Azure o in un hub eventi. Il controllo consente di gestire la conformità alle normative, ottenere informazioni sull'attività del database e rilevare discrepanze e anomalie che possono indicare possibili violazioni della sicurezza.
Per abilitare il controllo:
Nel portale di Azure scegliere Database SQL dal menu a sinistra, quindi selezionare il database nella pagina Database SQL.
Nella sezione Sicurezza selezionare Controllo.
Nelle impostazioni di Controllo specificare i valori seguenti:
Impostare Controllo su ON.
Selezionare una delle opzioni seguenti per Destinazione del log di controllo:
Archiviazione, un account di archiviazione di Azure in cui vengono salvati i log degli eventi, che possono essere scaricati come file con estensione xel
Suggerimento
Per sfruttare al meglio i modelli di report di controllo, usare lo stesso account di archiviazione per tutti i database controllati.
Log Analytics, un servizio che archivia automaticamente gli eventi per le query o per ulteriori analisi
Nota
Per supportare funzionalità avanzate come l'analisi, le regole personalizzate degli avvisi e le esportazioni in Excel o Power BI, è necessaria un'area di lavoro di Log Analytics. Senza quest'area di lavoro, è disponibile solo l'editor di query.
Hub eventi, che consente di instradare gli eventi per l'uso in altre applicazioni
Seleziona Salva.
A questo punto è possibile selezionare Visualizza log di controllo per visualizzare i dati sugli eventi del database.
Importante
Per informazioni su come personalizzare ulteriormente gli eventi di controllo tramite PowerShell o l'API REST, vedere Introduzione al controllo del database SQL.
Maschera dati dinamica
La funzionalità di maschera dei dati nasconde automaticamente i dati sensibili nel database.
Per abilitare la maschera dei dati:
Nel portale di Azure scegliere Database SQL dal menu a sinistra, quindi selezionare il database nella pagina Database SQL.
Nella sezione Sicurezza selezionare Dynamic Data Masking.
Nelle impostazioni di Dynamic Data Masking selezionare Aggiungi maschera per aggiungere una regola di mascheramento. Azure popola automaticamente gli schemi, le tabelle e le colonne del database disponibili tra cui scegliere.
Seleziona Salva. Le informazioni selezionate saranno ora mascherate per la privacy.
Transparent Data Encryption
Questa funzionalità crittografa automaticamente i dati inattivi e non richiede modifiche alle applicazioni che accedono al database crittografato. Per i nuovi database, la crittografia è attivata per impostazione predefinita. È anche possibile crittografare i dati usando SSMS e la funzionalità Always Encrypted.
Per abilitare o verificare la crittografia:
Nel portale di Azure scegliere Database SQL dal menu a sinistra, quindi selezionare il database nella pagina Database SQL.
Nella sezione Sicurezza selezionare Transparent Data Encryption.
Se necessario, impostare Crittografia dati su SÌ. Seleziona Salva.
Nota
Per visualizzare lo stato di crittografia, connettersi al database tramite SSMS ed eseguire una query sulla colonna encryption_state
della visualizzazione sys.dm_database_encryption_keys. Lo stato 3
indica che il database è crittografato.
Nota
Alcuni elementi considerati contenuto dei clienti, ad esempio nomi di tabella, nomi di oggetti e nomi di indice, potrebbero essere trasmessi nei file di resoconto per il supporto e la risoluzione dei problemi da parte di Microsoft.
Contenuto correlato
- Provare il database SQL di Azure in modo gratuito (anteprima)
- Novità del database SQL di Azure
- Configurare e gestire i riferimenti al contenuto: database SQL di Azure
- Pianificare e gestire i costi per il database SQL di Azure
Suggerimento
È tutto pronto per iniziare a sviluppare un'applicazione .NET? Questo modulo di apprendimento gratuito mostra come fare a Sviluppare e configurare un'applicazione ASP.NET che esegue query su un database SQL di Azure, inclusa la creazione di un database semplice.
Passaggio successivo
Passare all'esercitazione successiva per informazioni su come implementare la distribuzione geografica.