Protezione di database PaaS in AzureSecuring PaaS databases in Azure

In questo articolo vengono illustrate varie procedure consigliate per la protezione delle applicazioni Web e per dispositivi mobili in PaaS mediante il database SQL di Azure e SQL Data Warehouse.In this article, we discuss a collection of Azure SQL Database and SQL Data Warehouse security best practices for securing your PaaS web and mobile applications. Le procedure consigliate si basano sull'esperienza di tecnici e clienti con Azure.These best practices are derived from our experience with Azure and the experiences of customers like yourself.

Database SQL di Azure e SQL Data WarehouseAzure SQL Database and SQL Data Warehouse

Il database SQL di Azure e SQL Data Warehouse forniscono un servizio di database relazionale per le applicazioni basate su Internet.Azure SQL Database and SQL Data Warehouse provide a relational database service for your Internet-based applications. Verranno ora illustrati i servizi che aiutano a proteggere applicazioni e dati quando si usano il database SQL di Azure e SQL Data Warehouse in una distribuzione PaaS:Let’s look at services that help protect your applications and data when using Azure SQL Database and SQL Data Warehouse in a PaaS deployment:

  • Autenticazione di Azure Active Directory (invece di autenticazione di SQL Server)Azure Active Directory authentication (instead of SQL Server authentication)
  • Firewall SQL di AzureAzure SQL firewall
  • Transparent data encryption (TDE)Transparent Data Encryption (TDE)

Procedure consigliateBest practices

Usare un repository di identità centralizzato per autenticazione e autorizzazioneUse a centralized identity repository for authentication and authorization

È possibile configurare i database SQL affinché usino uno tra due tipi di autenticazione:Azure SQL databases can be configured to use one of two types of authentication:

  • Autenticazione SQL usa nome utente e password.SQL Authentication uses a username and password. Durante la creazione del server logico per il database, è stato specificato un account di accesso "amministratore del server" con un nome utente e una password.When you created the logical server for your database, you specified a "server admin" login with a username and password. Usando queste credenziali, è possibile essere autenticati in qualsiasi database di tale server in qualità di proprietario del database.Using these credentials, you can authenticate to any database on that server as the database owner.

  • Autenticazione di Azure Active Directory usa identità gestite da Azure Active Directory ed è supportata per domini gestiti e integrati.Azure Active Directory Authentication uses identities managed by Azure Active Directory and is supported for managed and integrated domains. Per usare l'autenticazione di Azure Active Directory, è necessario creare un altro amministratore del server denominato "admin Azure AD," che è autorizzato ad amministrare utenti e gruppi di Azure AD.To use Azure Active Directory Authentication, you must create another server admin called the "Azure AD admin," which is allowed to administer Azure AD users and groups. Questo amministratore può inoltre eseguire tutte le operazioni che un amministratore del server regolare può fare.This admin can also perform all operations that a regular server admin can.

L'autenticazione di Azure Active Directory è un meccanismo di connessione al database SQL di Azure e a SQL Data Warehouse tramite le identità di Azure Active Directory (AD).Azure Active Directory authentication is a mechanism of connecting to Azure SQL Database and SQL Data Warehouse by using identities in Azure Active Directory (AD). Azure AD rappresenta un'alternativa all'autenticazione di SQL Server, anche per evitare la proliferazione di identità utente in più server di database.Azure AD provides an alternative to SQL Server authentication so you can stop the proliferation of user identities across database servers. Con l'autenticazione di Azure AD è possibile gestire centralmente le identità degli utenti del database e di altri servizi Microsoft.Azure AD authentication enables you to centrally manage the identities of database users and other Microsoft services in one central location. La gestione centrale degli ID consente di gestire gli utenti del database da un unico punto e semplifica la gestione delle autorizzazioni.Central ID management provides a single place to manage database users and simplifies permission management.

Vantaggi dell'uso dell'autenticazione di Azure AD al posto dell'autenticazione SQL:Benefits of using Azure AD authentication instead of SQL authentication include:

  • Consente la rotazione delle password in un'unica posizione.Allows password rotation in a single place.
  • Consente di gestire le autorizzazioni del database tramite gruppi Azure AD esterni.Manages database permissions using external Azure AD groups.
  • Consente di eliminare l'archiviazione delle password abilitando l'autenticazione integrata di Windows e altre forme di autenticazione supportate da Azure AD.Eliminates storing passwords by enabling integrated Windows authentication and other forms of authentication supported by Azure AD.
  • Usa gli utenti di database indipendente per autenticare le identità a livello di database.Uses contained database users to authenticate identities at the database level.
  • Supporta l'autenticazione basata su token per le applicazioni che si connettono al database SQL.Supports token-based authentication for applications connecting to SQL Database.
  • Supporta la federazione dei domini di AD FS o l'autenticazione utente/password nativa per un'istanza locale di Azure AD senza la sincronizzazione del dominio.Supports ADFS (domain federation) or native user/password authentication for a local Azure AD without domain synchronization.
  • Supporta le connessioni da SQL Server Management Studio che utilizzano l'autenticazione universale di Active Directory, che include l'autenticazione MFA (Multi-Factor Authentication).Supports connections from SQL Server Management Studio that use Active Directory Universal Authentication, which includes Multi-Factor Authentication (MFA). L'MFA include funzionalità avanzate di autenticazione con una serie di semplici opzioni di verifica, tra cui: chiamata telefonica, SMS, smart card con pin o notifica tramite app per dispositivi mobili.MFA includes strong authentication with a range of easy verification options — phone call, text message, smart cards with pin, or mobile app notification. Per altre informazioni Supporto di SQL Server Management Studio (SSMS) per l'autenticazione MFA di Azure AD con il database SQL e SQL Data Warehouse.For more information, see SSMS support for Azure AD MFA with SQL Database and SQL Data Warehouse.

Per altre informazioni sull'autenticazione di Azure AD, vedere:To learn more about Azure AD authentication, see:

Nota

Per assicurarsi che Azure Active Directory sia ideale per l'ambiente di riferimento, vedere le funzionalità e le limitazioni di Azure AD, in particolare le considerazioni aggiuntive.To ensure that Azure Active Directory is a good fit for your environment, see Azure AD features and limitations, specifically the additional considerations.

Limitare l'accesso in base all'indirizzo IPRestrict Access based on IP Address

È possibile creare regole del firewall che specificano gli intervalli di indirizzi IP accettabili.You can create firewall rules that specify ranges of acceptable IP addresses. Queste regole possono essere destinate a livello di server e database.These rules can be targeted at both the server and database levels. È consigliabile usare le regole del firewall a livello di database quando è possibile, allo scopo di migliorare la sicurezza e la portabilità del database.We recommend using database-level firewall rules whenever possible to enhance security and to make your database more portable. Le regole del firewall a livello di server sono utili per gli amministratori e in presenza di molti molti database che presentano gli stessi requisiti di accesso ma non si vuole dedicare tempo alla configurazione di ogni singolo database.Server-level firewall rules are best used for administrators and when you have many databases that have the same access requirements but you don't want to spend time configuring each database individually.

Le restrizioni predefinite agli indirizzi IP di origine del database SQL consentono l'accesso da qualsiasi indirizzo di Azure, inclusi altri tenant e sottoscrizioni.SQL Database’s default source IP address restrictions allow access from any Azure address (including other subscriptions and tenants). È possibile modificare le restrizioni per consentire l'accesso all'istanza solo ai propri indirizzi IP.You can restrict this to only allow your IP addresses to access the instance. Anche in presenza del firewall SQL e delle restrizioni per gli indirizzi IP, è comunque necessaria un'autenticazione avanzata.Even with your SQL firewall and IP address restrictions, strong authentication is still needed. Vedere le indicazioni riportate in precedenza in questo articolo.See the recommendations made earlier in this article.

Per altre informazioni sul firewall SQL di Azure e sulle restrizioni per gli indirizzi IP, vedere:To learn more about Azure SQL Firewall and IP restrictions, see:

Crittografia dei dati inattiviEncryption of data at rest

La funzionalità Transparent Data Encryption (TDE) è abilitata per impostazione predefinita.Transparent Data Encryption (TDE) is enabled by default. Crittografa in modo trasparente i file di log e dati di SQL Server, del database SQL di Azure e Microsoft Azure SQL Data Warehouse.TDE transparently encrypts SQL Server, Azure SQL Database, and Azure SQL Data Warehouse data and log files. Questa crittografia consente di proteggere da una violazione di accesso diretto ai file o ai backup.TDE protects against a compromise of direct access to the files or their backup. Ciò consente di crittografare i dati inattivi senza modificare le applicazioni esistenti.This enables you to encrypt data at rest without changing existing applications. La funzionalità Transparent Data Encryption deve essere sempre attivata; un malintenzionato potrà comunque eseguire un attacco tramite il percorso di accesso normale.TDE should always stay enabled; however, this will not stop an attacker using the normal access path. Offre inoltre la possibilità di conformarsi a diverse leggi, normative e linee guida stabilite in vari settori.TDE provides the ability to comply with many laws, regulations, and guidelines established in various industries.

Azure SQL gestisce i principali problemi correlati per TDE.Azure SQL manages key related issues for TDE. Come con TDE, è necessario prestare particolare attenzione al livello locale per garantire la recuperabilità e lo spostamento di database.As with TDE, on premise special care must be taken to ensure recoverability and when moving databases. In scenari più sofisticati, le chiavi possono essere gestite in modo esplicito in Azure Key Vault tramite Extensible Key Management (vedere Abilitare TDE in SQL Server con EKM).In more sophisticated scenarios, the keys can be explicitly managed in Azure Key Vault through extensible key management (see Enable TDE on SQL Server Using EKM). Ciò consente anche l'uso di Bring Your Own Key (BYOK) tramite la capacità BYOK di Azure Key Vault.This also allows for Bring Your Own Key (BYOK) through Azure Key Vaults BYOK capability.

Azure SQL fornisce la crittografia per le colonne tramite Always Encrypted.Azure SQL provides encryption for columns through Always Encrypted. Questa crittografia consente solo alle applicazioni autorizzate l'accesso alle colonne sensibili.This allows only authorized applications access to sensitive columns. L'uso di questo tipo di crittografia limita le query SQL per le colonne crittografate a valori basati sull'uguaglianza.Using this kind of encryption limits SQL queries for encrypted columns to equality-based values.

La crittografia a livello di applicazione deve essere usata anche per dati selettivi.Application level encryption should also be used for selective data. È possibile talvolta limitare le problematiche legate alla sovranità dei dati crittografandoli con una chiave da conservare nel paese appropriato.Data sovereignty concerns can sometimes be mitigated by encrypting data with a key that is kept in the correct country. In questo modo si impedisce anche che un trasferimento accidentale dei dati possa rappresentare un problema, perché è comunque impossibile decrittografarli senza la chiave, presupponendo che venga usato un algoritmo avanzato come AES 256.This prevents even accidental data transfer from causing an issue since it is impossible to decrypt the data without the key, assuming a strong algorithm is used (such as AES 256).

È possibile usare diverse precauzioni per proteggere il database, ad esempio la progettazione di un sistema sicuro, la crittografia di risorse riservate e la creazione di un firewall che protegga i server di database.You can use additional precautions to help secure the database such as designing a secure system, encrypting confidential assets, and building a firewall around the database servers.

Passaggi successiviNext steps

In questo articolo sono state illustrate varie procedure consigliate per la protezione delle applicazioni Web e per dispositivi mobili in PaaS mediante il database SQL e SQL Data Warehouse.This article introduced you to a collection of SQL Database and SQL Data Warehouse security best practices for securing your PaaS web and mobile applications. Per altre informazioni sulla protezione delle distribuzioni PaaS, vedere:To learn more about securing your PaaS deployments, see: