Panoramica della sicurezza del database in Azure Cosmos DB

SI APPLICA A: NoSQL MongoDB Cassandra Gremlin Tabella

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.

Novità della sicurezza di Azure Cosmos DB

La crittografia dei dati inattivi è ora disponibile per i documenti e i backup archiviati nel database Azure Cosmos in tutte le aree di Azure. La crittografia di dati inattivi viene applicata automaticamente sai per i clienti nuovi che per quelli esistenti in queste aree. Non è necessario configurare alcun elemento. Latenza, velocità effettiva, disponibilità e funzionalità sono eccezionali come prima, con il vantaggio di sapere che i propri dati sono sicuri e protetti con la crittografia dei dati inattivi. I dati archiviati nell'account Azure Cosmos DB vengono crittografati automaticamente e facilmente con le chiavi gestite da Microsoft usando chiavi gestite dal servizio. Facoltativamente, è possibile scegliere di aggiungere un secondo livello di crittografia con chiavi gestite dal cliente.

Come proteggere il database

La sicurezza dei dati è una responsabilità condivisa tra l'utente, il cliente e il provider di database. A seconda del provider di database scelto, l'entità della responsabilità di ognuno può variare. Se si sceglie una soluzione locale, è necessario garantire tutto ciò che è indispensabile, dalla protezione degli endpoint alla sicurezza fisica dell'hardware, un'attività tutt'altro che semplice. Se si sceglie un provider di database cloud PaaS (piattaforma distribuita come servizio), ad esempio Azure Cosmos DB, le preoccupazioni si riducono considerevolmente. 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.

Screenshot that shows customer and database provider responsibilities.

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 database Come è possibile confrontare le diverse soluzioni?

È consigliabile usare l'elenco di controllo dei requisiti seguente per confrontare i sistemi di database:

  • Sicurezza di rete e impostazioni del firewall
  • Autenticazione utente e controlli utente con granularità fine
  • Possibilità di replicare i dati a livello globale per gli errori locali
  • Possibilità di effettuare il failover da un data center a un altro
  • Replica dei dati locali all'interno di un data center
  • Backup automatici dei dati
  • Ripristino dei dati eliminati dai backup
  • Proteggere e isolare i dati sensibili
  • Monitoraggio per identificare gli attacchi
  • Risposta agli attacchi
  • Possibilità per i dati di seguire le restrizioni di governance dei dati in base al geo-fencing
  • Protezione fisica dei server in data center protetti
  • Certificazioni

Anche se può sembrare ovvio, le recenti violazioni di database su larga scala ricordano l'importanza strategica dei semplici requisiti seguenti:

  • Mantenere aggiornati i server con patch applicate
  • Crittografia HTTPS/TLS predefinita
  • Account amministrativi con password complesse

Protezione del database con Azure Cosmos DB

Si esamini l'elenco precedente. Quanti di tali requisiti di sicurezza sono offerti da Azure Cosmos DB? ogni singolo requisito di sicurezza.

Ognuno di essi verrà ora illustrato in dettaglio.

Requisito di sicurezza Approccio alla sicurezza di Azure Cosmos DB
Sicurezza di rete L'uso di un firewall IP è il primo livello di protezione per il database. Azure Cosmos DB supporta controlli di accesso IP basati su criteri per il supporto del firewall in ingresso. I controlli di accesso basati su IP sono simili alle regole del firewall usate dai sistemi di database tradizionali. Tuttavia, vengono espanse in modo che un account di database Azure Cosmos DB sia accessibile solo da un set approvato di computer o servizi cloud. Per altre informazioni, vedere Supporto firewall per Azure Cosmos DB.

Azure Cosmos DB consente di abilitare un indirizzo IP specifico (168.61.48.0), un intervallo di indirizzi IP (168.61.48.0/8) e combinazioni di indirizzi IP e intervalli.

Azure Cosmos DB blocca tutte le richieste provenienti da computer esterni a questo elenco elementi consentiti. Le richieste provenienti da computer e servizi cloud approvati devono quindi completare il processo di autenticazione per ottenere il controllo di accesso alle risorse.

È possibile usare i tag del servizio di rete virtuale per ottenere l'isolamento rete e proteggere le risorse Azure Cosmos DB dalla rete Internet generale. Quando si creano regole di sicurezza, usare i tag del servizio anziché indirizzi IP specifici. Se si specifica il nome del tag del servizio (ad esempio AzureCosmosDB) nel campo di origine o di destinazione appropriato di una regola, è possibile consentire o negare il traffico per il servizio corrispondente.
Autorizzazione Azure Cosmos DB usa HMAC (Hash Message Authentication Code) per l'autorizzazione.

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. Per convalidare la richiesta, Azure Cosmos DB usa la chiave privata e le proprietà corrette per generare un hash, quindi confronta il valore con quello della richiesta. Se i due valori corrispondono, l'operazione viene autorizzata e la richiesta viene elaborata. Se non corrispondono, si verifica un errore di autorizzazione e la richiesta viene rifiutata.

È possibile usare una chiave primaria o un token della risorsa che consente l'accesso con granularità fine a una risorsa, ad esempio un documento.

Per altre informazioni, vedere Proteggere l'accesso alle risorse in Azure Cosmos DB.
Utenti e autorizzazioni Usando la chiave primaria per l'account, è possibile creare risorse utente e risorse autorizzazione per ogni 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. Le risorse dell'applicazione includono contenitori, documenti, allegati, stored procedure, trigger e funzioni definite dall'utente. Il token della risorsa viene quindi usato durante l'autenticazione per concedere o negare l'accesso alla risorsa.

Per altre informazioni, vedere Proteggere l'accesso alle risorse in Azure Cosmos DB.
Integrazione di Active Directory (controllo degli accessi in base al ruolo di Azure) È anche possibile fornire o limitare l'accesso all'account, al database, al contenitore e alle offerte (velocità effettiva) di Azure Cosmos DB usando il controllo di accesso (IAM) nel portale di Azure. IAM fornisce il controllo degli accessi in base al ruolo e si integra con Active Directory. È possibile usare ruoli predefiniti o ruoli personalizzati per singoli utenti e gruppi. Per altre informazioni, vedere Integrazione di Active Directory.
Replica globale Azure Cosmos DB offre la distribuzione globale chiavi in mano, che consente di replicare i dati in qualsiasi data center di Azure nel mondo in modo predefinito. La replica globale offre una scalabilità globale e l'accesso a bassa latenza ai dati ovunque nel mondo.

Nell'ambito della sicurezza, la replica globale assicura la protezione dei dati da errori a livello di area.

Per altre informazioni, vedere Distribuire i dati a livello globale.
Failover a livello di area 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. È possibile creare un elenco con priorità di aree di failover usando le aree in cui i dati vengono replicati.

Per altre informazioni, vedere Failover a livello di area in Azure Cosmos DB.
Replica locale Anche in un singolo data center, Azure Cosmos DB replica automaticamente i dati per la disponibilità elevata consentendo di scegliere i livelli di coerenza. Questa replica garantisce 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.
Backup online automatizzati I backup dei database Azure Cosmos DB vengono eseguiti periodicamente e salvati in un archivio con ridondanza geografica.

Per altre informazioni, vedere Backup online automatico e ripristino con Azure Cosmos DB.
Ripristinare i data eliminati È possibile usare i backup online automatizzati per recuperare i dati eliminati per errore fino a circa 30 giorni dopo l'evento.

Per altre informazioni, vedere Backup online automatico e ripristino con Azure Cosmos DB
Proteggere e isolare i dati sensibili Tutti i dati nelle aree elencate nelle novità ora vengono crittografati.

I dati personali e altri dati riservati possono essere isolati in contenitori specifici e l'accesso in lettura/scrittura o in sola lettura può essere limitato a utenti specifici.
Monitorare gli attacchi Usando la registrazione di controllo e i log attività, è possibile monitorare l'account per identificare attività normali e anomale. È possibile visualizzare quali operazioni sono state eseguite sulle risorse, ad esempio chi ha avviato l'operazione, quando si è verificata l'operazione, lo stato dell'operazione e molto altro.
Rispondere agli attacchi Dopo avere contattato il supporto tecnico di Azure per segnalare un potenziale attacco, viene avviato un processo di risposta all'evento imprevisto in 5 fasi. L'obiettivo è ripristinare la normale sicurezza e operatività del servizio. Il processo ripristina i servizi il più rapidamente possibile dopo il rilevamento di un problema e l'avvio di un'indagine.

Per altre informazioni, vedere Risposta alla sicurezza di Microsoft Azure nel cloud.
Definizione del geo-fencing Azure Cosmos DB assicura la governance dei dati per le aree sovrane, ad esempio Germania, Cina e US Government.
Strutture protette I dati in Azure Cosmos DB vengono archiviati in unità SSD nei data center protetti di Azure.

Per altre informazioni, vedere Data center globali Microsoft.
Crittografia HTTPS/SSL/TLS Tutte le connessioni ad Azure Cosmos DB supportano HTTPS. Azure Cosmos DB supporta i livelli TLS fino al livello 1.2 (incluso).
È possibile imporre un livello TLS minimo sul lato server. A tale scopo, vedere la guida self-service Imposizione self-service della versione minima di TLS in Azure Cosmos DB.
Crittografia dei dati inattivi Tutti i dati archiviati in Azure Cosmos DB vengono crittografati quando sono inattivi. Per altre informazioni, vedere Crittografia dei dati inattivi in Azure Cosmos DB.
Server con patch Essendo un database gestito, Azure Cosmos DB elimina la necessità di gestire e applicare patch ai server perché queste operazioni vengono eseguite automaticamente.
Account amministrativi con password complesse Non è possibile avere un account amministrativo senza password in Azure Cosmos DB.

La sicurezza usa TLS e l'autenticazione basata su segreti HMAC è supportata per impostazione predefinita.
Certificazioni di sicurezza e protezione dei dati Per l'elenco più aggiornato delle certificazioni, consultare la conformità di Azure e il documento sulla conformità di Azure più recente con tutte le certificazioni di Azure, incluso Azure Cosmos DB.

Lo screenshot seguente mostra come è possibile usare la registrazione di controllo e i log attività per monitorare l'account. Screenshot that shows activity logs for Azure Cosmos DB.

Chiavi primarie e secondarie

Le chiavi primarie e secondarie consentono di accedere a tutte le risorse amministrative per l'account di database. Chiavi primarie e secondarie:

  • Consentono di accedere ad account, database, utenti e autorizzazioni.
  • Non possono essere usate per fornire l'accesso granulare a contenitori e documenti.
  • Vengono create durante la creazione di un account.
  • Possono essere rigenerate in qualsiasi momento.

Ogni account è costituito da due chiavi: una chiave primaria e una chiave secondaria. Lo scopo delle due chiavi è consentire la rigenerazione o la rotazione delle chiavi mantenendo l'accesso continuo ai dati e all'account.

Le chiavi primarie e secondarie sono disponibili in due versioni: lettura/scrittura e sola lettura. Le chiavi di sola lettura consentono solo operazioni di lettura sull'account. Non forniscono l'accesso in lettura alle risorse di autorizzazione.

Rotazione e rigenerazione delle chiavi

Il processo di rotazione e rigenerazione delle chiavi è semplice. Assicurarsi prima di tutto che l'applicazione usi in modo coerente la chiave primaria o la chiave secondaria per accedere all'account Azure Cosmos DB. Seguire quindi la procedura nella sezione successiva. Per monitorare l'account per gli aggiornamenti e la rigenerazione delle chiavi, vedere Monitorare gli aggiornamenti delle chiavi con metriche e avvisi.

Se l'applicazione usa attualmente la chiave primaria

  1. Passare all'account Azure Cosmos DB nel portale di Azure.

  2. Selezionare Chiavi dal menu a sinistra e quindi selezionare Rigenera chiave secondaria dai puntini di sospensione (...) a destra della chiave secondaria.

    Screenshot showing how to regenerate the secondary key in the Azure portal when used with the NoSQL API.

  3. Verificare che la nuova chiave secondaria funzioni in modo coerente con l'account Azure Cosmos DB. La rigenerazione delle chiavi può richiedere da un minuto a più ore a seconda delle dimensioni dell'account Azure Cosmos DB.

  4. Sostituire la chiave primaria con la chiave secondaria nell'applicazione.

  5. Tornare al portale di Azure e attivare la rigenerazione della chiave primaria.

    Screenshot showing how to regenerate the primary key in the Azure portal when used with the NoSQL API.

Se l'applicazione usa attualmente la chiave secondaria

  1. Passare all'account Azure Cosmos DB nel portale di Azure.

  2. Selezionare Chiavi dal menu a sinistra e quindi selezionare Rigenera chiave primaria dai puntini di sospensione (...) a destra della chiave primaria.

    Screenshot that shows how to regenerate the primary key in the Azure portal when used with the NoSQL API.

  3. Verificare che la nuova chiave primaria funzioni in modo coerente con l'account Azure Cosmos DB. La rigenerazione delle chiavi può richiedere da un minuto a più ore a seconda delle dimensioni dell'account Azure Cosmos DB.

  4. Sostituire la chiave secondaria con la chiave primaria nell'applicazione.

  5. Tornare al portale di Azure e attivare la rigenerazione della chiave secondaria.

    Screenshot that shows how to regenerate the secondary key in the Azure portal when used with the NoSQL API.

Monitorare lo stato della rigenerazione delle chiavi

Dopo aver ruotato o rigenerato una chiave, è possibile monitorare lo stato dal log attività. Per monitorare lo stato, seguire questa procedura.

  1. Accedere al portale di Azure e passare all'account Azure Cosmos DB.

  2. Scegliere Chiavi nel menu a sinistra. Verrà visualizzata l'ultima data di rigenerazione della chiave sotto ogni chiave.

    Screenshot that shows status of key regeneration from the activity log.

    È consigliabile rigenerare le chiavi almeno una volta ogni 60 giorni. Se l'ultima rigenerazione è precedente a 60 giorni fa, viene visualizzata un'icona di avviso. Inoltre, si potrebbe notare che la chiave non è stata registrata. In questo caso, l'account è stato creato prima del 18 giugno 2022 e le date non sono state registrate. Tuttavia, dovrebbe essere possibile rigenerare la chiave e visualizzare l'ultima data di rigenerazione per la nuova chiave.

  3. Verranno visualizzati gli eventi di rigenerazione delle chiavi insieme allo stato, all'ora in cui è stata eseguita l'operazione e ai dettagli dell'utente che ha avviato la rigenerazione della chiave. L'operazione di generazione delle chiavi viene avviata con lo stato Accettato. Passa quindi ad Avviato e quindi a Riuscito al termine dell'operazione.

Passaggi successivi