Chiavi di crittografia gestite dal cliente (CMEK)

Per impostazione predefinita, tutti i dati at-rest in Firestore sono criptati utilizzando la crittografia predefinita di Google. Firestore gestisce questa crittografia per conto tuo senza che tu debba fare altro.

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

Questa pagina descrive CMEK per Firestore. Per ulteriori informazioni su CMEK in generale, inclusi quando e perché abilitarla, consulta la documentazione di Cloud KMS. Per istruzioni su come eseguire le attività relative a CMEK con Firestore, 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.
  • Prestazioni: CMEK non influisce sullo SLA di Firestore.
  • Auditbilità: se abiliti l'audit logging per Cloud KMS, tutte le operazioni sulla chiave vengono registrate e 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 i database Firestore nella tua organizzazione.

Prezzi

Cloud KMS addebita il costo della chiave e le eventuali operazioni crittografiche eseguite utilizzando la chiave in questione. Per i dettagli, consulta i prezzi di Cloud KMS.

I costi operativi ti vengono addebitati quando Firestore chiede alla chiave Cloud KMS di eseguire un'operazione di crittografia o decriptazione. La crittografia/decriptazione non viene sincronizzata con la tua richiesta. Viene eseguito ogni 5 minuti eseguendo il polling di Cloud KMS. In genere i costi sono bassi, dato il numero previsto di operazioni crittografiche generate da Firestore. I costi per Cloud Audit Logs sono una spesa aggiuntiva, ma sono previsti anche che siano generalmente bassi, dato il numero previsto di operazioni crittografiche.

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

Se revochi la chiave per un database, il costo di archiviazione verrà addebitato in base alle dimensioni dell'ultimo giorno in cui la chiave era disponibile. Per le dimensioni del database continueranno a essere addebitati costi di archiviazione fino a quando il database non viene eliminato o la chiave non diventa di nuovo disponibile.

Cosa è protetto con CMEK

Quando crei un database Firestore protetto da CMEK, la chiave Cloud KMS viene utilizzata per proteggere i dati at-rest. Sono inclusi i dati memorizzati 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 le eventuali chiamate successive al database Firestore, incluse le letture, le scritture e le query, restituiscono 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 eventuali tempi di scadenza vengono superati mentre la chiave non è disponibile, l'eliminazione dei dati in base al TTL verrà ritardata fino al reintegro della chiave. Se il database ha operazioni a lunga esecuzione in corso, l'impatto sarà il seguente:

  • Le operazioni di import o esportazione dei dati non verranno più eseguite e verranno contrassegnate come Failed. Le operazioni non riuscite non verranno tentate nuovamente se la chiave viene reintegrata.
  • Le operazioni di creazione dell'indice e quelle che abilitano nuovi criteri TTL smetteranno di avanzare. Le operazioni interrotte verranno tentate di nuovo se la chiave viene reintegrata.

Le chiavi sono considerate non disponibili in qualsiasi situazione che impedisca intenzionalmente a Firestore di accedere alla chiave. 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 alcuni rari casi possono essere necessarie alcune ore. Tieni presente che la propagazione di alcune operazioni sulle chiavi Cloud KMS, come la disattivazione o l'eliminazione di una chiave, può richiedere fino a 3 ore. Firestore non rileva alcuna modifica fino a quando non diventa effettiva in Cloud KMS.

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

  • Riattivazione di una versione della chiave disabilitata.
  • Ripristino della versione di una chiave eliminata. Prima dell'eliminazione definitiva, è pianificata l'eliminazione di una versione della chiave. 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 eliminata definitivamente.
  • Concessione dell'autorizzazione dell'agente di servizio Firestore ad accedere alla chiave.

Considerazioni sulle chiavi esterne

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

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

Dopo un'ora, se Firestore non è ancora in grado di connettersi con Cloud KMS, Firestore inizia a mettere il database offline come misura di protezione. Le chiamate al database avranno esito negativo con un errore FAILED_PRECONDITION che include dettagli aggiuntivi.

Per ulteriori considerazioni sull'utilizzo di 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 della chiave sono supportate.
  • Le pianificazioni di backup e le operazioni di ripristino non sono supportate per i database protetti da CMEK. Puoi utilizzare il recupero 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 nei database esistenti. Puoi abilitare CMEK solo sui nuovi database e devi abilitarla quando crei il database. Per eseguire la migrazione dei dati in 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