Sicurezza database di Azure Cosmos DBAzure Cosmos DB database security

Questo articolo illustra le procedure consigliate per la sicurezza del database e le funzionalità principali offerte da Azure Cosmos DB per prevenire, rilevare e rispondere alle violazioni del database.This article discusses database security best practices and key features offered by Azure Cosmos DB to help you prevent, detect, and respond to database breaches.

Novità della sicurezza di Azure Cosmos DBWhat's new in Azure Cosmos DB security?

La crittografia dei dati inattivi è ora disponibile per i documenti e i backup archiviati nel database Azure Cosmos in tutte le aree di Azure.Encryption at rest is now available for documents and backups stored in Azure Cosmos DB in all Azure regions. La crittografia di dati inattivi viene applicata automaticamente sai per i clienti nuovi che per quelli esistenti in queste aree.Encryption at rest is applied automatically for both new and existing customers in these regions. Non è necessario eseguire alcuna configurazione e latenza, velocità effettiva, disponibilità e funzionalità sono eccezionali come prima, con il vantaggio che i dati sono sicuri e protetti con la crittografia di dati inattivi.There is no need to configure anything; and you get the same great latency, throughput, availability, and functionality as before with the benefit of knowing your data is safe and secure with encryption at rest.

Come proteggere il databaseHow do I secure my database?

La sicurezza dei dati è una responsabilità condivisa tra l'utente, il cliente e il provider di database.Data security is a shared responsibility between you, the customer, and your database provider. A seconda del provider di database scelto, l'entità della responsabilità di ognuno può variare.Depending on the database provider you choose, the amount of responsibility you carry can vary. Se si sceglie una soluzione locale, è necessario garantire tutto ciò che è indispensabile, dalla protezione degli endpoint alla sicurezza fisica dell'hardware, il che non è semplice.If you choose an on-premises solution, you need to provide everything from end-point protection to physical security of your hardware - which is no easy task. Se si sceglie un provider di database cloud PaaS, ad esempio Azure Cosmos DB, l'ambito di interesse si riduce considerevolmente.If you choose a PaaS cloud database provider such as Azure Cosmos DB, your area of concern shrinks considerably. L'immagine seguente, tratta dal white paper di Microsoft Shared Responsibilities for Cloud Computing (Responsabilità condivise per il cloud computing), illustra come la responsabilità diminuisca con un provider PaaS, ad esempio Azure Cosmos DB.The following image, borrowed from Microsoft's Shared Responsibilities for Cloud Computing white paper, shows how your responsibility decreases with a PaaS provider like Azure Cosmos DB.

Responsabilità del provider di database e del cliente

Il diagramma precedente illustra i componenti della sicurezza cloud generali, ma è opportuno stabilire quali sono gli elementi specifici da tenere in considerazione per la soluzione di databaseThe preceding diagram shows high-level cloud security components, but what items do you need to worry about specifically for your database solution? e come è possibile confrontare le diverse soluzioni.And how can you compare solutions to each other?

È consigliabile usare l'elenco di controllo dei requisiti seguente per confrontare i sistemi di database:We recommend the following checklist of requirements on which to compare database systems:

  • Sicurezza di rete e impostazioni del firewallNetwork security and firewall settings
  • Autenticazione utente e controlli utente con granularità fineUser authentication and fine grained user controls
  • Possibilità di replicare i dati a livello globale per gli errori localiAbility to replicate data globally for regional failures
  • Possibilità di eseguire failover da un data center a un altroAbility to perform failovers from one data center to another
  • Replica di dati locali all'interno di un data centerLocal data replication within a data center
  • Backup automatici dei datiAutomatic data backups
  • Ripristino dei dati eliminati dai backupRestoration of deleted data from backups
  • Proteggere e isolare i dati sensibiliProtect and isolate sensitive data
  • Monitoraggio per identificare gli attacchiMonitoring for attacks
  • Risposta agli attacchiResponding to attacks
  • Possibilità per i dati del recinto virtuale di seguire le restrizioni di governance dei datiAbility to geo-fence data to adhere to data governance restrictions
  • Protezione fisica dei server in data center protettiPhysical protection of servers in protected data centers

E, anche se può sembrare ovvio, le recenti violazioni di database su larga scala rendono molto importanti i semplici requisiti seguenti:And although it may seem obvious, recent large-scale database breaches remind us of the simple but critical importance of the following requirements:

  • Mantenere aggiornati i server con patch applicatePatched servers that are kept up to date
  • Crittografia SSL/HTTPS predefinitaHTTPS by default/SSL encryption
  • Account amministrativi con password complesseAdministrative accounts with strong passwords

Protezione del database con Azure Cosmos DBHow does Azure Cosmos DB secure my database?

Dall'elenco precedente risulta che Azure Cosmos DB soddisfaLet's look back at the preceding list - how many of those security requirements does Azure Cosmos DB provide? ogni singolo requisito di sicurezza.Every single one.

La tabella seguente li illustra in dettaglio.Let's dig into each one in detail.

Requisito di sicurezzaSecurity requirement Approccio alla sicurezza di Azure Cosmos DBAzure Cosmos DB's security approach
Sicurezza di reteNetwork security L'uso di un firewall IP è il primo livello di protezione per il database.Using an IP firewall is the first layer of protection to secure your database. Azure Cosmos DB supporta ora controlli di accesso IP basati su criteri per il supporto del firewall in ingresso.Azure Cosmos DB supports policy driven IP-based access controls for inbound firewall support. I controlli degli accessi in base all'IP sono simili alle regole del firewall usate dai sistemi di database tradizionali, ma vengono espansi in modo che un account di database Azure Cosmos DB sia accessibile solo da un set approvato di computer o di servizi cloud.The IP-based access controls are similar to the firewall rules used by traditional database systems, but they are expanded so that an Azure Cosmos DB database account is only accessible from an approved set of machines or cloud services.

Azure Cosmos DB consente di abilitare un indirizzo IP specifico (168.61.48.0), un intervallo di IP (168.61.48.0/8) e combinazioni di IP e intervalli.Azure Cosmos DB enables you to enable a specific IP address (168.61.48.0), an IP range (168.61.48.0/8), and combinations of IPs and ranges.

Tutte le richieste che hanno origine da computer non compresi in questo elenco di elementi consentiti vengono bloccate da Azure Cosmos DB.All requests originating from machines outside this allowed list are blocked by Azure Cosmos DB. Le richieste provenienti da computer e servizi cloud approvati devono quindi completare il processo di autenticazione per ottenere il controllo di accesso alle risorse.Requests from approved machines and cloud services then must complete the authentication process to be given access control to the resources.

Per altre informazioni, vedere Azure Cosmos DB firewall support (Supporto del firewall di Azure Cosmos DB).Learn more in Azure Cosmos DB firewall support.
AuthorizationAuthorization Azure Cosmos DB usa HMAC (Hash Message Authentication Code) per l'autorizzazione.Azure Cosmos DB uses hash-based message authentication code (HMAC) for authorization.

Per ogni richiesta viene generato un hash usando la chiave dell'account privata e il successivo hash con codifica Base 64 viene inviato con ogni chiamata ad Azure Cosmos DB.Each request is hashed using the secret account key, and the subsequent base-64 encoded hash is sent with each call to Azure Cosmos DB. Per convalidare la richiesta, il servizio Azure Cosmos DB usa la chiave privata e le proprietà corrette per generare un hash, quindi confronta il valore con quello della richiesta.To validate the request, the Azure Cosmos DB service uses the correct secret key and properties to generate a hash, then it compares the value with the one in the request. Se i due valori corrispondono, l'operazione viene autorizzata e la richiesta viene elaborata. In caso contrario, si verifica un errore di autorizzazione e la richiesta viene rifiutata.If the two values match, the operation is authorized successfully and the request is processed, otherwise there is an authorization failure and the request is rejected.

È possibile usare una chiave master o un token della risorsa che consente l'accesso con granularità fine a una risorsa, ad esempio un documento.You can use either a master key, or a resource token allowing fine-grained access to a resource such as a document.

Per altre informazioni, vedere Protezione dell'accesso alle risorse in Azure Cosmos DB.Learn more in Securing access to Azure Cosmos DB resources.
Utenti e autorizzazioniUsers and permissions Usando la chiave master per l'account, è possibile creare risorse utente e risorse autorizzazione per ogni database.Using the master key for the account, you can create user resources and permission resources per database. Un token della risorsa viene associato a un'autorizzazione in un database e determina se l'utente ha accesso (lettura/scrittura, sola lettura o nessun accesso) a una risorsa dell'applicazione nel database.A resource token is associated with a permission in a database and determines whether the user has access (read-write, read-only, or no access) to an application resource in the database. Le risorse dell'applicazione includono raccolte, documenti, allegati, stored procedure, trigger e funzioni definite dall'utente.Application resources include collections, documents, attachments, stored procedures, triggers, and UDFs. Il token della risorsa viene quindi usato durante l'autenticazione per concedere o negare l'accesso alla risorsa.The resource token is then used during authentication to provide or deny access to the resource.

Per altre informazioni, vedere Protezione dell'accesso alle risorse in Azure Cosmos DB.Learn more in Securing access to Azure Cosmos DB resources.
Integrazione di Active Directory (controllo degli accessi in base al ruolo)Active directory integration (RBAC) È anche possibile concedere l'accesso all'account del database usando Controllo di accesso (IAM) nel portale di Azure, come mostrato nella schermata sotto a questa tabella.You can also provide access to the database account using Access control (IAM) in the Azure portal, as shown in the screenshot that follows this table. IAM fornisce il controllo degli accessi in base al ruolo e si integra con Active Directory.IAM provides role-based access control and integrates with Active Directory. È possibile usare ruoli predefiniti o ruoli personalizzati per persone e gruppi, come illustrato nell'immagine seguente.You can use built in roles or custom roles for individuals and groups as shown in the following image.
Replica globaleGlobal replication Azure Cosmos DB offre la distribuzione globale chiavi in mano, che consente di replicare i dati in qualsiasi data center di Azure nel mondo, semplicemente facendo clic su un pulsante.Azure Cosmos DB offers turnkey global distribution, which enables you to replicate your data to any one of Azure's world-wide datacenters with the click of a button. La replica globale offre una scalabilità globale e l'accesso a bassa latenza ai dati ovunque nel mondo.Global replication lets you scale globally and provide low-latency access to your data around the world.

Nell'ambito della sicurezza, la replica globale assicura la protezione dei dati dagli errori a livello di area.In the context of security, global replication insures data protection against regional failures.

Per altre informazioni, vedere Distribuire i dati a livello globale.Learn more in Distribute data globally.
Failover a livello di areaRegional failovers Se i dati sono stati replicati in più di un data center, Azure Cosmos DB esegue il rollover automatico delle operazioni, nel caso in cui un data center di un'area specifica passi alla modalità offline.If you have replicated your data in more than one data center, Azure Cosmos DB automatically rolls over your operations should a regional data center go offline. È possibile creare un elenco con priorità di aree di failover usando le aree in cui i dati vengono replicati.You can create a prioritized list of failover regions using the regions in which your data is replicated.

Per altre informazioni, vedere Failover a livello di area in Azure Cosmos DB.Learn more in Regional Failovers in Azure Cosmos DB.
Replica localeLocal replication Anche in un singolo data center, Azure Cosmos DB replica automaticamente i dati per la disponibilità elevata consentendo di scegliere i livelli di coerenza.Even within a single data center, Azure Cosmos DB automatically replicates data for high availability giving you the choice of consistency levels. In questo modo viene garantito un contratto di servizio con disponibilità del 99,99% per tutti gli account in una singola area e tutti gli account in più aree con coerenza media e con disponibilità in lettura del 99,999% per tutti gli account di database in più aree.This guarantees a 99.99% availability SLA for all single region accounts and all multi-region accounts with relaxed consistency, and 99.999% read availability on all multi-region database accounts.
Backup online automatizzatiAutomated online backups I backup dei database Azure Cosmos DB vengono eseguiti periodicamente e salvati in un archivio con ridondanza geografica.Azure Cosmos DB databases are backed up regularly and stored in a georedundant store.

Per altre informazioni, vedere Backup online automatico e ripristino con Azure Cosmos DB.Learn more in Automatic online backup and restore with Azure Cosmos DB.
Ripristinare i data eliminatiRestore deleted data I backup online automatizzati possono essere usati per recuperare i dati eliminati per errore fino a circa 30 giorni dopo l'evento.The automated online backups can be used to recover data you may have accidentally deleted up to ~30 days after the event.

Per altre informazioni, vedere Backup online automatico e ripristino con Azure Cosmos DBLearn more in Automatic online backup and restore with Azure Cosmos DB
Proteggere e isolare i dati sensibiliProtect and isolate sensitive data Tutti i dati nelle aree elencate nelle novità ora vengono crittografati.All data in the regions listed in What's new? is now encrypted at rest.

Le informazioni personali e altri dati riservati possono essere isolati in raccolte specifiche e l'accesso in lettura/scrittura o in sola lettura può essere limitato a utenti specifici.PII and other confidential data can be isolated to specific collections and read-write, or read-only access can be limited to specific users.
Monitorare gli attacchiMonitor for attacks Usando la registrazione di controllo e i log attività, è possibile monitorare l'account per identificare attività normali e anomale.By using audit logging and activity logs, you can monitor your account for normal and abnormal activity. È possibile visualizzare quali operazioni sono state eseguite sulle risorse, chi ha avviato l'operazione, quando si è verificata l'operazione, lo stato dell'operazione e molto altro come mostrato nella schermata sotto a questa tabella.You can view what operations were performed on your resources, who initiated the operation, when the operation occurred, the status of the operation, and much more as shown in the screenshot following this table.
Rispondere agli attacchiRespond to attacks Dopo avere contattato il supporto di Azure per segnalare un potenziale attacco, viene avviato un processo di risposta all'evento imprevisto in 5 fasi.Once you have contacted Azure support to report a potential attack, a 5-step incident response process is kicked off. L'obiettivo del processo in 5 fasi è quello di ripristinare la normale sicurezza del servizio e le normali operazioni il più rapidamente possibile dopo il rilevamento di un problema e l'avvio di un indagine.The goal of the 5-step process is to restore normal service security and operations as quickly as possible after an issue is detected and an investigation is started.

Per altre informazioni, vedere Microsoft Azure Security Response in the Cloud (Risposta della sicurezza di Microsoft Azure nel cloud).Learn more in Microsoft Azure Security Response in the Cloud.
Definizione del recinto virtualeGeo-fencing Azure Cosmos DB assicura la conformità e la governance dei dati per le aree sovrane, ad esempio Germania, Cina, US Gov.Azure Cosmos DB ensures data governance and compliance for sovereign regions (for example, Germany, China, US Gov).
Strutture protetteProtected facilities I dati in Azure Cosmos DB vengono archiviati in unità SSD nei data center protetti di Azure.Data in Azure Cosmos DB is stored on SSDs in Azure's protected data centers.

Per altre informazioni, vedere Data center globali MicrosoftLearn more in Microsoft global datacenters
Crittografia HTTPS/SSL/TLSHTTPS/SSL/TLS encryption A tutte le interazioni Azure Cosmos DB da client a servizio viene applicato SSL/TLS 1.2.All client-to-service Azure Cosmos DB interactions are SSL/TLS 1.2 enforced. Anche a tutte le repliche all'interno di data center e tra data center viene applicato SSL/TLS 1.2.Also, all intra datacenter and cross datacenter replication is SSL/TLS 1.2 enforced.
Crittografia di dati inattiviEncryption at rest Tutti i dati archiviati in Azure Cosmos DB vengono crittografati quando sono inattivi.All data stored into Azure Cosmos DB is encrypted at rest. Per altre informazioni, vedere Crittografia dei dati inattivi in Azure Cosmos DBLearn more in Azure Cosmos DB encryption at rest
Server con patchPatched servers Essendo un database gestito, Azure Cosmos DB elimina la necessità di gestire e applicare patch ai server perché queste operazioni vengono eseguite automaticamente.As a managed database, Azure Cosmos DB eliminates the need to manage and patch servers, that's done for you, automatically.
Account amministrativi con password complesseAdministrative accounts with strong passwords Può sembrare strano vedere citato questo requisito, ma a differenza di quanto accade con alcuni concorrenti, è impossibile avere un account amministrativo senza password in Azure Cosmos DB.It's hard to believe we even need to mention this requirement, but unlike some of our competitors, it's impossible to have an administrative account with no password in Azure Cosmos DB.

La sicurezza usa SSL e l'autenticazione basata su segreti HMAC è supportata per impostazione predefinita.Security via SSL and HMAC secret based authentication is baked in by default.
Certificazioni di sicurezza e protezione dei datiSecurity and data protection certifications Azure Cosmos DB ha le certificazioni ISO 27001, clausole del modello dell'Unione Europea e HIPAA.Azure Cosmos DB has ISO 27001, European Model Clauses (EUMC), and HIPAA certifications. Altre certificazioni saranno presto disponibili.Additional certifications are in progress.

La schermata seguente mostra l'integrazione di Active Directory (RBAC) tramite il controllo di accesso (IAM) nel portale di Azure: Controllo di accesso (IAM) nel portale di Azure: dimostrazione della sicurezza del databaseThe following screenshot shows Active directory integration (RBAC) using access control (IAM) in the Azure portal: Access control (IAM) in the Azure portal - demonstrating database security

La schermata seguente mostra come è possibile usare la registrazione di controllo e i log attività per monitorare l'account: Log attività per Azure Cosmos DBThe following screenshot shows how you can use audit logging and activity logs to monitor your account: Activity logs for Azure Cosmos DB

Passaggi successiviNext steps

Per altre informazioni sulle chiavi master e sui token delle risorse, vedere Protezione dell'accesso ai dati in Azure Cosmos DB.For more details about master keys and resource tokens, see Securing access to Azure Cosmos DB data.

Per altri dettagli sulla registrazione di controllo, vedere l'articolo relativo alla registrazione diagnostica di Azure Cosmos DB.For more details about audit logging, see Azure Cosmos DB diagnostic logging.

Per altre informazioni sulle certificazioni Microsoft, vedere il Centro protezione di Azure.For more details about Microsoft certifications, see Azure Trust Center.