Modifica delle chiavi di crittografia di Looker

Looker utilizza la crittografia AES-256 Galois/Counter Mode (GCM) per criptare internamente i dati. Tutti i dati vengono criptati utilizzando una chiave dati univoca e contengono una busta con crittografia firmata e con controllo delle versioni per garantire la verifica. Questa modalità richiede l'uso di una chiave master cliente (CMK) esterna. CMK viene utilizzata per ricavare, criptare e decriptare la chiave di crittografia della chiave (KEK), che a sua volta viene utilizzata per ricavare, criptare e decriptare le chiavi di dati.

Le installazioni ospitate dal cliente che utilizzano la crittografia precedente devono eseguire la migrazione dei propri database interni alla crittografia AES-256 GCM. Le nuove installazioni ospitate dal cliente devono configurare le proprie installazioni per la crittografia AES-256 GCM. Per istruzioni sulla migrazione o sulla configurazione dell'installazione ospitata dal cliente per la crittografia GCM 256 GCM, consulta la pagina Utilizzo della crittografia AES-256 GCM.

Se vuoi cambiare CMK o vuoi passare da una configurazione basata su chiave locale a una configurazione AWS KMS (o viceversa), puoi creare una nuova CMK e reimpostare la crittografia AES-256 GCM.

La modifica della chiave viene eseguita offline, il che significa che l'istanza di Looker deve essere arrestata. Per le istanze Looker di cluster, tutti i nodi del cluster devono essere arrestati.

La modifica del codice invalida l'intera cache su disco di Looker, inclusa quella della cache dei risultati. Di conseguenza, dopo aver completato un rekey e avviato l'istanza, i database client potrebbero riscontrare un carico superiore al solito.

Per ridefinire la crittografia AES-256 GCM, esegui le seguenti procedure:

  1. Arresta Looker e crea un backup completo
  2. Impostare le variabili di ambiente _SOURCE e _DESTINATION
  3. Esegui il comando rekey
  4. Impostare nuove variabili di ambiente
  5. Avvia Looker

Interrompi Looker e crea un backup completo

Esegui i seguenti comandi:

cd looker
./looker stop
tar -zcvf /tmp/looker-pre-encrypt.tar.gz  /home/lookerops/looker --exclude=.cache --exclude=log --exclude=.tmp --exclude=.snapshots --exclude=looker.jar --exclude=authorized_keys --exclude=dr-log --exclude=core

Se esegui un database MySQL esterno per archiviare i dati delle applicazioni di Looker, esegui il backup del database separatamente. Se il database è un'istanza MySQL, crea uno snapshot. Il database è relativamente piccolo, quindi dovrebbe richiedere solo pochi minuti.

Se Looker è in cluster, assicurati di arrestare tutti i nodi prima di procedere:

cd looker
./looker stop

Se alcuni nodi sono ancora in esecuzione quando in seguito eseguirai il comando rekey, il comando avrà esito negativo con il messaggio "Ci sono altri nodi live connessi a questo database Looker di backend. Se Looker è stato arrestato nell'ultimo minuto, riprova a breve, altrimenti verifica che tutti i nodi nel cluster siano arrestati."

Imposta le variabili di ambiente _SOURCE e _DESTINATION

Quando è stata inizialmente eseguita la migrazione o la configurazione della crittografia AES-256 GCM dell'istanza di Looker, sono state create una o più variabili di ambiente che indicano dove Looker può trovare la tua CMK. Queste variabili variano a seconda che tu stia utilizzando AWS KMS.

L'operazione di rekey utilizza variabili di ambiente aggiuntive, a seconda che tu stia attualmente utilizzando AWS KMS e se utilizzerai AWS KMS dopo l'operazione di rekey. Le variabili di ambiente con il suffisso _SOURCE indicano dove Looker può attualmente trovare la tua CMK, mentre le variabili di ambiente con il suffisso _DESTINATION indicano dove Looker può trovare la CMK dopo l'operazione di modifica della chiave.

Impostazione delle _SOURCE variabili

Esegui una delle seguenti procedure, a seconda che la tua configurazione attuale utilizzi AWS KMS.

Se al momento utilizzi AWS KMS

Se hai configurato inizialmente la crittografia utilizzando AWS KMS, hai creato una o entrambe le seguenti variabili di ambiente:

  • LKR_AWS_CMK: archivia AWS CMK_alias.
  • LKR_AWS_CMK_EC: una variabile facoltativa che definisce il contesto di crittografia utilizzato con gli archivi chiavi AWS KMS.

Ricrea le variabili di ambiente riportate sopra:

export LKR_AWS_CMK=alias/<CMK_alias>
export LKR_AWS_CMK_EC=<encryption_context>

A questo punto, crea le variabili _SOURCE. Imposta le nuove variabili seguenti con il suffisso _SOURCE:

export LKR_AWS_CMK_SOURCE=alias/<CMK_alias>
export LKR_AWS_CMK_EC_SOURCE=<encryption_context>

Se non stai utilizzando AWS KMS

Se hai configurato inizialmente la crittografia utilizzando un KMS diverso da AWS, hai creato una delle seguenti variabili di ambiente, a seconda che archivi la CMK in una variabile di ambiente o in un file nell'istanza:

  • LKR_MASTER_KEY_ENV: se archivi la tua CMK in una variabile di ambiente, questa viene memorizzata.
  • LKR_MASTER_KEY_FILE: se archivi la tua CMK in un file, viene memorizzato il percorso e il nome del file che contiene la CMK.

Ricrea la variabile di ambiente utilizzata per la configurazione:

export LKR_MASTER_KEY_FILE=<path_to_key_file>

Oppure:

export LKR_MASTER_KEY_ENV=<CMK_value>

A questo punto, crea la variabile _SOURCE.

Se memorizzi la CMK in un file, crea la seguente variabile:

export LKR_MASTER_KEY_FILE_SOURCE=<path_to_key_file>

Se archivi la CMK in una variabile di ambiente, crea la seguente variabile:

export LKR_MASTER_KEY_ENV_SOURCE=<CMK_value>

Impostazione delle _DESTINATION variabili

Esegui una delle seguenti procedure, a seconda che utilizzerai AWS KMS dopo l'operazione di ripristino.

La nuova configurazione utilizzerà AWS KMS

Se la nuova configurazione utilizzerà AWS KMS, crea le seguenti variabili di ambiente per indicare la nuova posizione di CMK:

export LKR_AWS_CMK_DESTINATION=alias/<new_CMK_alias>
export LKR_AWS_CMK_EC_DESTINATION=<new_encryption_context>

La tua nuova configurazione non utilizzerà AWS KMS

Se la nuova configurazione non utilizzerà AWS KMS, hai la possibilità di utilizzare le variabili LKR_MASTER_KEY_FILE_DESTINATION o LKR_MASTER_KEY_ENV_DESTINATION per specificare la destinazione CMK.

Se vuoi archiviare la tua CMK in un file, esegui il comando seguente:

export LKR_MASTER_KEY_FILE_DESTINATION=<path_to_new_key_file>

In alternativa, se vuoi archiviare la tua CMK utilizzando una variabile di ambiente, esegui il comando seguente:

export LKR_MASTER_KEY_ENV_DESTINATION=<CMK_value>

Esegui il comando rekey

Esegui questo comando:

./looker rekey

Imposta nuove variabili di ambiente

Imposta una o più delle variabili di ambiente seguenti come appropriato per la nuova configurazione.

Se la nuova configurazione utilizza AWS KMS:

export LKR_AWS_CMK=alias/<new_CMK_alias>
export LKR_AWS_CMK_EC=<new_encryption_context>

Se la nuova configurazione non utilizza AWS KMS e archivi la tua CMK in una variabile di ambiente:

export LKR_MASTER_KEY_ENV=<CMK_value>

Se la nuova configurazione non utilizza AWS KMS e archivi la tua CMK in un file:

export LKR_MASTER_KEY_FILE=<path_to_CMK_file>

Se passi da una chiave archiviata localmente a AWS KMS o da AWS KMS a una chiave archiviata localmente, saranno presenti variabili di ambiente della configurazione precedente che non sono necessarie. Elimina le vecchie variabili di ambiente.

Se hai spostato una chiave archiviata in locale in AWS KMS:

unset LKR_MASTER_KEY_FILE

Se sei passato da AWS KMS a una chiave archiviata localmente:

unset LKR_AWS_CMK
unset LKR_AWS_CMK_EC

Avvia Looker

Esegui questo comando:

./looker start