Chiavi di crittografia gestite dal cliente (CMEK)

Per impostazione predefinita, tutti i dati inattivi in Firestore in modalità Datastore sono criptati utilizzando la crittografia predefinita di Google. Firestore in modalità Datastore gestisce e gestisce questa crittografia per te senza che sia necessario alcun intervento aggiuntivo da parte tua.

Se hai requisiti normativi o di conformità specifici relativi alle chiavi che proteggono i tuoi dati, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) per Firestore in modalità Datastore. Anziché lasciare che sia Google a gestire le chiavi di crittografia che proteggono i tuoi dati, il database Firestore in modalità Datastore è protetto utilizzando una chiave che puoi controllare e gestire in Cloud Key Management Service (Cloud KMS).

Questa pagina descrive CMEK per Firestore in modalità Datastore. Per ulteriori informazioni su CMEK in generale, incluso quando e perché abilitarla, consulta la documentazione di Cloud KMS. Per istruzioni sull'esecuzione di attività correlate a CMEK con Firestore in modalità Datastore, vedi Utilizzare CMEK.

Funzionalità

  • Controllo dei dati: CMEK consente di gestire l'accesso alla chiave KMS. Puoi ruotare, disabilitare ed eliminare la chiave utilizzata per criptare i dati at-rest nel tuo database Firestore in modalità Datastore.
  • Prestazioni: CMEK non influisce sullo SLA di Firestore.
  • Verificabilità: se abiliti l'audit logging per Cloud KMS, tutte le operazioni sulla chiave vengono registrate e sono visibili in Cloud Logging.
  • Vincoli dei criteri dell'organizzazione: puoi utilizzare i vincoli dei criteri dell'organizzazione CMEK per specificare i requisiti di conformità della crittografia per Firestore nei database in modalità Datastore della tua organizzazione.

Prezzi

Cloud KMS addebita i costi della chiave e di eventuali operazioni crittografiche eseguite utilizzando la chiave. Per i dettagli, consulta i prezzi di Cloud KMS.

I costi delle operazioni ti vengono addebitati quando Firestore in modalità Datastore chiede alla chiave Cloud KMS di eseguire un'operazione di crittografia o decriptazione. La crittografia/decrittografia non è sincronizzata con la tua richiesta. Ogni 5 minuti tramite il polling di Cloud KMS. I costi sono generalmente bassi, dato il numero previsto di operazioni crittografiche generate da Firestore in modalità Datastore. I costi per Cloud Audit Logs rappresentano una spesa aggiuntiva, ma si prevede anche che siano generalmente bassi, dato il numero previsto di operazioni crittografiche.

Non sono previsti costi aggiuntivi per Firestore in modalità Datastore per l'utilizzo del database protetto da CMEK e continuano a essere applicati i prezzi di Firestore in modalità Datastore.

Se revochi la chiave in un database, il costo di archiviazione verrà addebitato in base alle dimensioni dell'ultimo giorno in cui la chiave era disponibile. Continuerai a sostenere i costi di archiviazione a quelle dimensioni del database finché il database non verrà eliminato o la chiave non diventerà di nuovo disponibile.

Cosa è protetto con CMEK

Quando crei un database protetto da CMEK per Firestore, la chiave Cloud KMS viene utilizzata per proteggere i dati at-rest. Sono inclusi i dati archiviati su disco o Flash. Si applicano alcune eccezioni. I seguenti tipi di dati sono criptati con la crittografia predefinita di Google e non con la chiave CMEK:

  • Dati in transito o in memoria
  • Metadati del database

Come viene gestito uno stato di una chiave non disponibile

Le operazioni di crittografia e decriptazione non vengono eseguite per ogni richiesta di dati. Il sistema Firestore esegue invece il polling di Cloud Key Management Service ogni 5 minuti per verificare se la chiave è ancora disponibile, quindi esegue operazioni di crittografia e decriptazione se la chiave è disponibile. Se il sistema rileva che la chiave non è disponibile entro 10 minuti, qualsiasi chiamata successiva al database Firestore, incluse letture, scritture e query, restituisce un errore FAILED_PRECONDITION con il messaggio The customer-managed encryption key required by the requested resource is not accessible. Se il database ha criteri di durata (TTL) e se i tempi di scadenza vengono superati mentre la chiave non è disponibile, l'eliminazione dei dati per TTL verrà ritardata fino a quando la chiave non viene reintegrata. Se nel database sono in corso operazioni a lunga esecuzione, queste saranno interessate come segue:

  • Le operazioni di import o esportazione dei dati non andranno più in corso e verranno contrassegnate come Failed. Le operazioni non riuscite non verranno ritentate se la chiave viene reintegrata.
  • Le operazioni di creazione dell'indice e le operazioni che attivano nuovi criteri TTL non produrranno più progressi. Se la chiave viene reintegrata, verranno ritentate le operazioni interrotte.

Le chiavi sono considerate non disponibili in qualsiasi situazione che impedisca intenzionalmente a Firestore di accedere alla chiave. Ciò include:

Se la chiave viene reintegrata, l'operazione di polling rileva che la chiave è di nuovo disponibile. L'accesso viene riattivato, in genere entro pochi minuti, ma in rari casi potrebbero essere necessarie alcune ore. Tieni presente che la propagazione di alcune operazioni sulle chiavi Cloud KMS, come la disabilitazione o l'eliminazione di una chiave, può richiedere fino a 3 ore. Firestore non rileva alcuna modifica fino a quando non sono effettive in Cloud KMS.

Il reintegro di una chiave comporta quanto segue, a seconda della situazione:

  • Riattivazione di una versione della chiave disattivata.
  • Ripristinare la versione di una chiave eliminata. Prima di essere eliminata definitivamente, viene pianificata l'eliminazione di una versione della chiave. Puoi ripristinare una chiave solo durante il periodo in cui è pianificata l'eliminazione della versione della chiave. Non puoi ripristinare una chiave già eliminata definitivamente.
  • Riassegnazione dell'autorizzazione dell'agente di servizio Firestore per l'accesso alla chiave.

Considerazioni chiave esterne

Quando utilizzi una chiave Cloud EKM, Google non ha alcun controllo sulla disponibilità della chiave gestita esternamente nel sistema esterno di gestione delle chiavi del partner.

Se non è disponibile una chiave gestita esternamente, Firestore in modalità Datastore continua a supportare le operazioni di database complete utilizzando una versione della chiave memorizzata nella cache, per un massimo di un'ora.

Dopo un'ora, se Firestore in modalità Datastore non è ancora in grado di connettersi a Cloud KMS, Firestore in modalità Datastore inizia a mettere offline il database come misura protettiva. Le chiamate al database non andranno a buon fine e verrà generato un errore FAILED_PRECONDITION che include ulteriori dettagli.

Per ulteriori considerazioni sull'utilizzo delle chiavi esterne, consulta la documentazione di Cloud External Key Manager.

Limitazioni

  • La modifica di una chiave per un database protetto da CMEK non è supportata. La rotazione, l'abilitazione e la disattivazione delle chiavi sono supportate.
  • Le pianificazioni dei backup e le operazioni di ripristino non sono supportate per i database protetti da CMEK. Puoi utilizzare il ripristino point-in-time (PITR) per il ripristino di emergenza.
  • I database protetti da CMEK supportano Key Visualizer solo per i dati di entità e documenti, non per i dati di indice.
  • Non puoi abilitare CMEK sui database esistenti. Puoi abilitare CMEK solo su nuovi database e dovrai abilitarla quando crei il database. Per eseguire la migrazione dei dati di un database non CMEK esistente a un database protetto da CMEK, esporta i dati e importali in un nuovo database protetto da CMEK.
  • Il monitoraggio delle chiavi non è supportato per il database protetto da CMEK.
  • Durante l'anteprima, Firestore supporterà un numero limitato di database protetti da CMEK.

Passaggi successivi