Per impostazione predefinita, tutti i dati inattivi in Firestore in modalità Datastore sono criptati utilizzando Crittografia predefinita di Google. Handle e gestione della modalità Datastore gestisce questa crittografia per conto tuo senza che tu debba fare altro.
Se hai requisiti di conformità o normativi specifici relativi alle chiavi che proteggono i tuoi dati, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) per la modalità Datastore. Invece che da Google, le chiavi di crittografia che proteggono i tuoi dati vengono gestite dal database in modalità Datastore utilizzando una chiave che puoi controllare e gestire in Cloud Key Management Service (Cloud KMS).
In questa pagina viene descritta la modalità CMEK per Datastore. Per ulteriori informazioni su CMEK in generale, per sapere quando e perché abilitarla, consulta la seguente documentazione di Cloud KMS:
Per istruzioni su come eseguire attività correlate a CMEK con la modalità Datastore, consulta Utilizzare CMEK.
Funzionalità
- Controllo dei dati: CMEK consente di gestire la chiave KMS. Puoi girare, disattivare ed eliminare la chiave utilizzata per criptare i dati at-rest nel database in modalità Datastore.
- Rendimento: CMEK non influisce sul contratto di servizio di Firestore.
- Auditabilità: se attivi il logging degli audit per Cloud KMS, tutte le operazioni sulla chiave vengono registrate e sono visibili in Cloud Logging.
- Vincoli dei criteri dell'organizzazione: puoi utilizzare Vincoli dei criteri dell'organizzazione CMEK per specificare i requisiti di conformità della crittografia per i database in modalità Datastore che fa parte della tua organizzazione.
Prezzi
Cloud KMS addebita il costo della chiave e di eventuali operazioni di crittografia eseguite utilizzandola. Per ulteriori informazioni, consulta Cloud KMS prezzi.
Ti vengono addebitati i costi dell'operazione quando la modalità Datastore chiede alla chiave Cloud KMS di eseguire un'operazione di crittografia o decrittografia. L'operazione di crittografia/decrittografia da parte della chiave gestita dal cliente avviene ogni 5 minuti e non viene sincronizzato con le richieste del database. I costi sono generalmente ridotti, dato il numero previsto di operazioni crittografiche generate dalla modalità Datastore. I costi di Cloud Audit Logs sono una spesa aggiuntiva, ma generalmente basso, dato il numero previsto di operazioni.
Non sono previsti costi aggiuntivi per la modalità Datastore per l'utilizzo del database protetto da CMEK e continueranno a essere applicati i prezzi in modalità Datastore.
Se revochi la chiave in un database, il costo di archiviazione verrà addebitato in base al dimensioni dell'ultimo giorno in cui la chiave era disponibile. Continuerai a incorrere i costi di archiviazione a quelle dimensioni del database fino a quando il database non viene eliminato o torna disponibile.
Cosa è protetto con CMEK
Quando crei un database protetto da CMEK in modalità Datastore, la chiave Cloud KMS viene utilizzata per proteggere i dati at-rest. Sono inclusi i dati archivi su un disco o su un'unità flash, inclusi indici e backup. Sono previste alcune eccezioni. I seguenti tipi di dati sono criptati con il metodo predefinito di Google e non tramite la chiave CMEK:
- Dati in transito o in memoria
- Metadati del database
Come viene gestito lo stato di una chiave non disponibile
Le operazioni di crittografia e decrittografia non vengono eseguite per ogni richiesta di dati. Invece, il sistema Firestore esegue il polling di Cloud KMS ogni 5 minuti per verificare se sia ancora disponibile, quindi esegue operazioni di crittografia e decriptazione sia disponibile.
Se il sistema rileva che la chiave non è disponibile, entro 10 minuti tutte le chiamate successive al database Firestore, incluse letture, scritture e query, restituiranno un errore FAILED_PRECONDITION
con il messaggio The customer-managed encryption key required by the requested
resource is not accessible
.
Se il database dispone di criteri di durata (TTL) e se eventuali tempi di scadenza vengono superati mentre la chiave non è disponibile, eliminazione dei dati per TTL verrà ritardato fino al reintegro della chiave. Se del database ha operazioni a lunga esecuzione in corso, che segue:
- Le operazioni di importazione o esportazione dei dati smetteranno di funzionare
progressi e sarà contrassegnata come
Failed
. Le operazioni non riuscite non saranno nuovo tentativo se la chiave viene reintegrata. - Operazioni di creazione dell'indice e operazioni che attivano nuovo TTL norme interromperanno i progressi. Le operazioni interrotte verranno rieseguite se la chiave viene reintegrata.
Le chiavi sono considerate non disponibili in qualsiasi situazione che impedisca intenzionalmente a Firestore di accedervi. tra cui:
- Disabilitata o eliminazione della versione della chiave in uso. Cerca di essere attenzione quando elimini la versione di una chiave, perché causando una perdita di dati irreversibile.
- Rimuovi l'autorizzazione per accedere alla chiave dall'account di servizio Firestore.
Se la chiave viene reintegrata, l'operazione di polling rileva che la chiave è nuovamente disponibile. L'accesso viene riattivato in genere entro pochi minuti, ma in alcuni casi alcune ore, in rari casi. Alcune operazioni su Cloud KMS di chiavi, come la disattivazione o l'eliminazione di una chiave, possono richiedere fino a 3 ore per la propagazione. Firestore non rilevare eventuali modifiche fino a quando non saranno effettive in Cloud KMS.
Il reintegro di una chiave comporta quanto segue, a seconda della situazione:
- Riattivare una versione della chiave disattivata.
- Ripristino di una versione della chiave eliminata. Prima di essere eliminata definitivamente, viene pianificata una versione della chiave la distruzione di massa. Puoi ripristinare una chiave solo durante il periodo in cui è pianificata l'eliminazione di una versione della chiave. Non puoi ripristinare una chiave che è già stata distrutte definitivamente.
- Concedere di nuovo all'agente di servizio Firestore l'autorizzazione per accedere alla chiave.
Considerazioni sulla rotazione delle chiavi
Quando ruoti la chiave CMEK, la modalità Datastore cripta nuovamente il database con la versione primaria più recente della chiave CMEK. Durante la ricrittografia , mantieni disponibili sia la versione precedente che quella nuova della chiave. Al termine della nuova crittografia, la disabilitazione o l'eliminazione delle vecchie versioni della chiave CMEK non disattiva l'accesso al database, poiché è criptato con la nuova versione della chiave primaria.
Puoi anche visualizzare le versioni delle chiavi utilizzate per proteggere un database. Per ulteriori informazioni, consulta la sezione Visualizzare la chiave .
Considerazioni sulle chiavi esterne
Quando utilizzi una chiave Cloud EKM, Google non ha alcun controllo sulla disponibilità della chiave gestita esternamente nel sistema del partner di gestione delle chiavi esterne.
Se una chiave gestita esternamente non è disponibile, la modalità Datastore continua a supportare operazioni di database complete utilizzando una versione della chiave memorizzata nella cache, per un un'ora.
Dopo un'ora, se la modalità Datastore non riesce ancora a connettersi a Cloud KMS, inizia a mettere offline il database come misura di protezione. Le chiamate al database avranno esito negativo con un FAILED_PRECONDITION
che include ulteriori dettagli.
Per ulteriori informazioni, consulta la documentazione di Cloud External Key Manager considerazioni sull'uso di chiavi esterne.
Backup e ripristino
Un backup utilizza lo stesso meccanismo di crittografia del database da cui è stato creato. Quando un database in modalità Datastore protetto da CMEK crea un il backup viene criptato con la versione della chiave primaria utilizzata al momento della creazione del backup.
La modalità Datastore crea il primo backup di un database CMEK dopo 24 di ore dal momento in cui attivi le pianificazioni dei backup.
Per ulteriori informazioni sui backup in modalità Datastore, consulta Eseguire il backup e ripristinare i dati.
Per impostazione predefinita, un database ripristinato da un backup utilizza lo stesso meccanismo di crittografia del backup. Quando ripristini un database, puoi specificare un tipo di crittografia diverso in uno dei seguenti modi:
- Esegui il ripristino in un database CMEK con una chiave appena specificata.
- Ripristina in un database non CMEK che utilizza la crittografia predefinita di Google.
- Esegui il ripristino in un database che utilizza la stessa crittografia del backup.
Per ulteriori informazioni sul ripristino di un database in modalità Datastore da un backup, consulta Ripristinare i dati da un backup di database. Per maggiori informazioni informazioni sul ripristino di un database in modalità Datastore protetto da CMEK da un backup, consulta Ripristinare un database protetto da CMEK.
Monitoraggio delle chiavi
Puoi utilizzare il monitoraggio delle chiavi per visualizzare le risorse, ad esempio i database in modalità Datastore, protette da una chiave. Per saperne di più sul monitoraggio delle chiavi, consulta Visualizzare l'utilizzo delle chiavi.
CMEK e disponibilità delle chiavi
Quando le chiavi non sono disponibili o sono disattivate, tieni presente i seguenti comportamenti che possono verificarsi nei database con CMEK abilitato:
- Puoi modificare le impostazioni di recupero point-in-time (PITR) in modalità Datastore su un database abilitato per CMEK anche se la chiave non è disponibile perché le impostazioni PITR sono metadati di database, che non sono criptati da CMEK.
- Puoi eliminare un database CMEK con chiavi non disponibili.
- Quando crei un database abilitato per le chiavi CMEK, le chiavi disattivate non vengono visualizzate nell'elenco delle chiavi disponibili nella console Google Cloud. Se inserisci manualmente una chiave disattivata, il processo di creazione del database non andrà a buon fine con un errore
FAILED_PRECONDITION
400.
Limitazioni
- Non puoi modificare una chiave per un database protetto da CMEK. Puoi ruotare, attivare e disattivare le chiavi.
- Supporto dei database protetti da CMEK Key Visualizer solo per entità e dei documenti, non dei dati di indice.
- Non puoi abilitare CMEK sui database esistenti. Puoi attivare CMEK solo su nuove e devi abilitarlo quando crei il database. Per eseguire la migrazione i dati di un database non CMEK esistente in un database protetto da CMEK, esporta per importare i dati in un nuovo database protetto da CMEK. Puoi ripristinano anche i dati da un database non CMEK a un database CMEK.
- Firestore supporta un numero limitato di database protetti da CMEK.
- La protezione CMEK non è supportata con l'integrazione di Cloud Functions (1ª gen.). Se vuoi usufruire della protezione CMEK, utilizza i trigger Firestore di Cloud Run (2ª gen.).