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. Si ottiene la stessa latenza, la velocità effettiva, la disponibilità e la funzionalità di prima, con il vantaggio di sapere che i dati sono sicuri e sicuri con la crittografia dei dati inattivi. I dati archiviati nell'account Azure Cosmos DB vengono crittografati automaticamente e facilmente con chiavi gestite da Microsoft usando chiavi gestite dal servizio. Facoltativamente, è possibile scegliere di aggiungere un secondo livello di crittografia con le chiavi gestite dal cliente o la chiave gestita dal cliente.

Ricerca per categorie 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, il che non è semplice. Se si sceglie un provider di database cloud PaaS, ad esempio Azure Cosmos DB, l'ambito di interesse si riduce 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.

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 database e 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 eseguire il failover da un data center a un altro
  • Replica di 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

E, anche se può sembrare ovvio, le recenti violazioni di database su larga scala rendono molto importanti i semplici requisiti seguenti:

  • Server con patch che vengono mantenuti aggiornati
  • HTTPS per impostazione predefinita/Crittografia TLS
  • Account amministrativi con password complesse

Come Azure Cosmos DB protegge il database

Dall'elenco precedente risulta che Azure Cosmos DB soddisfa ogni singolo requisito di sicurezza.

La tabella seguente li illustra 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 ora 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 l'articolo relativo al supporto del firewall di Azure Cosmos DB .

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.

Tutte le richieste che hanno origine da computer non compresi in questo elenco di elementi consentiti vengono bloccate da 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.

È possibile usare i tag del servizio di rete virtuale per ottenere l'isolamento della rete e proteggere le risorse di Azure Cosmos DB da Internet generale. Usare i tag del servizio anziché indirizzi IP specifici quando si creano regole di sicurezza. Specificando 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, 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. Se i due valori corrispondono, l'operazione viene autorizzata correttamente 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 di risorsa che consente l'accesso con granularità fine a una risorsa, ad esempio un documento.

Per altre informazioni, vedere Protezione dell'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 Protezione dell'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 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 persone e gruppi. Per altre informazioni, vedere Integrazione di Active Directory.
Replica globale Azure Cosmos DB offre una distribuzione globale chiavi in mano, che consente di replicare i dati in uno dei data center a livello mondiale di Azure in modo chiavi in mano. 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 automaticamente il roll over delle operazioni se un data center a livello di area passa 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 all'interno di un singolo data center, Azure Cosmos DB replica automaticamente i dati per la disponibilità elevata offrendo la scelta dei livelli di coerenza. Questa replica garantisce un contratto di servizio di disponibilità del 99,99% per tutti gli account di una singola area e tutti gli account in più aree con coerenza rilassata e la disponibilità in lettura del 99,999% in tutti gli account di database in più aree.
Backup online automatizzati Il backup dei database di Azure Cosmos DB viene eseguito regolarmente e archiviato in un archivio con ridondanza geografica.

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

Per altre informazioni, vedere Backup e ripristino online automatico 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 le attività normali e anomale. È possibile visualizzare le operazioni eseguite sulle risorse. Questi dati includono; che ha avviato l'operazione, quando si è verificata l'operazione, lo stato dell'operazione e molto altro ancora.
Rispondere agli attacchi Dopo aver contattato supporto tecnico di Azure per segnalare un potenziale attacco, viene avviata una procedura di risposta agli eventi imprevisti in cinque passaggi. L'obiettivo del processo in cinque passaggi consiste nel ripristinare la normale sicurezza e le operazioni del servizio. Il processo in cinque passaggi ripristina i servizi il più rapidamente possibile dopo il rilevamento di un problema e l'avvio di un'indagine.

Per altre informazioni, vedere Microsoft Azure Security Response in the Cloud (Risposta della 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, US Gov.
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 a 1.3 (incluso).
È possibile applicare un lato server di livello TLS minimo. A tale scopo, aprire un ticket di supporto tecnico di Azure.
Crittografia di 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 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.

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, vedere Conformità di Azure e il documento di conformità di Azure più recente con tutte le certificazioni di Azure, tra cui Azure Cosmos DB.

Lo screenshot seguente mostra come usare la registrazione di controllo e i log attività per monitorare l'account: Log attività per Azure Cosmos DB

Chiavi primarie/secondarie

Le chiavi primarie/secondarie forniscono l'accesso a tutte le risorse amministrative per l'account del database. Chiavi primarie/secondarie:

  • Consentono di accedere ad account, database, utenti e autorizzazioni.
  • Non è possibile usare per fornire un 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/secondarie sono disponibili in due versioni: di sola lettura/scrittura e di sola lettura. Le chiavi di sola lettura consentono solo operazioni di lettura sull'account, ma non forniscono l'accesso alle risorse di autorizzazioni di lettura.

Rotazione e rigenerazione delle chiavi

Il processo di rotazione e rigenerazione delle chiavi è semplice. Assicurarsi innanzitutto che l'applicazione usi in modo coerente la chiave primaria o la chiave secondaria per accedere all'account Azure Cosmos DB. Seguire quindi i passaggi descritti di seguito. Per monitorare l'account per gli aggiornamenti delle chiavi e la rigenerazione delle chiavi, vedere l'articolo 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, quindi selezionare Rigenera chiave secondaria dai puntini di sospensione a destra della chiave secondaria.

    Screenshot del portale di Azure che mostra come rigenerare la chiave secondaria

  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. Indietro al portale di Azure e attivare la rigenerazione della chiave primaria.

    Screenshot del portale di Azure che mostra come rigenerare la chiave primaria

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, quindi selezionare Rigenera chiave primaria dai puntini di sospensione a destra della chiave primaria.

    Screenshot del portale di Azure che mostra come rigenerare la chiave primaria

  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. Indietro al portale di Azure e attivare la rigenerazione della chiave secondaria.

    Screenshot del portale di Azure che mostra come rigenerare la chiave secondaria

Tenere traccia dello stato della rigenerazione delle chiavi

Dopo aver ruotato o rigenerato una chiave, è possibile tenere traccia dello stato dal log attività. Per tenere traccia dello stato, seguire questa procedura:

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

  2. Aprire il riquadro Log attività e impostare i filtri seguenti:

    • Impostare il tipo di risorsa su Account Azure Cosmos DB.
    • Impostare l'operazione su Ruotare le chiavi.

    Stato della rigenerazione delle chiavi dal log attività

  3. Verranno visualizzati gli eventi di rigenerazione delle chiavi insieme allo stato, ora in cui è stata rilasciata l'operazione, i dettagli dell'utente che ha avviato la rigenerazione della chiave. L'operazione di generazione delle chiavi inizia con lo stato Accettato , quindi cambia in Avviato e quindi in Esito positivo al termine dell'operazione.

Passaggi successivi

Per altre informazioni sulle chiavi primarie e sui token di risorse, vedere Protezione dell'accesso ai dati di Azure Cosmos DB.

Per altre informazioni sulla registrazione dei controlli, vedere Registrazione diagnostica di Azure Cosmos DB.

Per altre informazioni sulle certificazioni Microsoft, vedere Centro protezione di Azure.