Looker usa el cifrado AES-256 Galois/Counter Mode (GCM) para cifrar los datos internamente. Cada elemento de datos se cifra con una clave de datos única y contiene un envoltorio de cifrado firmado y versionado para garantizar la verificación. Este modo requiere el uso de una clave maestra del cliente (CMK) externa. La CMK se usa para derivar, encriptar y desencriptar la clave de encriptado de claves (KEK), que a su vez se usa para derivar, encriptar y desencriptar claves de datos.
Las instalaciones alojadas por el cliente que utilicen el cifrado antiguo deben migrar sus bases de datos internas al cifrado AES-256 GCM. Las nuevas instalaciones alojadas por el cliente deben configurar sus instalaciones para el cifrado AES-256 GCM. Consulta la página de documentación Usar el cifrado AES-256 GCM para obtener instrucciones sobre cómo migrar o configurar tu instalación alojada por el cliente para usar el cifrado AES-256 GCM.
Si quieres cambiar tu CMK o pasar de una configuración basada en claves locales a una configuración de AWS KMS (o viceversa), puedes hacerlo creando una CMK y volviendo a cifrar tu cifrado AES-256 GCM.
El proceso de cambio de claves se realiza sin conexión, lo que significa que la instancia de Looker debe cerrarse. En el caso de las instancias de Looker agrupadas en clústeres, todos los nodos del clúster deben cerrarse.
Al volver a generar las claves, se invalida toda la caché en disco de Looker, incluida la caché de resultados de las consultas. Por lo tanto, después de completar un cambio de clave y de iniciar la instancia, las bases de datos de clientes pueden experimentar una carga superior a la habitual.
Para volver a generar las claves de cifrado AES-256 GCM, sigue estos procedimientos:
- Detener Looker y crear una copia de seguridad completa
- Definir las variables de entorno
_SOURCE
y_DESTINATION
- Ejecuta el comando
rekey
. - Definir nuevas variables de entorno
- Iniciar Looker
Detener Looker y crear una copia de seguridad completa
Introduce los siguientes comandos:
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
Si utilizas una base de datos MySQL externa para almacenar los datos de la aplicación Looker, crea una copia de seguridad de la base de datos por separado. Si la base de datos es una instancia de MySQL, haz una instantánea. La base de datos es relativamente pequeña, por lo que solo debería tardar unos minutos.
Si Looker está agrupado en clústeres, asegúrate de detener todos los nodos antes de continuar:
cd looker
./looker stop
Si algún nodo sigue ejecutándose cuando ejecutes el comando rekey
más adelante, el comando fallará y se mostrará el mensaje "Hay otros nodos activos conectados a esta base de datos de backend de Looker. Si Looker se ha apagado en el último minuto, inténtalo de nuevo en breve. De lo contrario, comprueba que todos los nodos del clúster estén apagados."
Definir las variables de entorno _SOURCE
y _DESTINATION
Cuando tu instancia de Looker se migró o configuró inicialmente para el cifrado AES-256 GCM, se crearon una o varias variables de entorno que indican dónde puede encontrar Looker tu CMK. Estas variables varían en función de si usas AWS KMS.
La operación de cambio de clave usa variables de entorno adicionales, en función de si estás usando AWS KMS y de si lo vas a usar después de la operación. Las variables de entorno con el sufijo _SOURCE
indican dónde puede encontrar Looker tu CMK en ese momento, y las variables de entorno con el sufijo _DESTINATION
indican dónde puede encontrar Looker tu CMK después de la operación de cambio de clave.
Configurar variables _SOURCE
Sigue uno de los procedimientos que se indican a continuación, en función de si tu configuración actual usa AWS KMS.
Si ya utilizas AWS KMS
Si configuraste el cifrado inicialmente con AWS KMS, creaste una o ambas de las siguientes variables de entorno:
LKR_AWS_CMK
: almacena elCMK_alias
de AWS.LKR_AWS_CMK_EC
: variable opcional que define el contexto de cifrado utilizado con los almacenes de claves de AWS KMS.
Vuelve a crear las variables de entorno:
export LKR_AWS_CMK=alias/<CMK_alias>
export LKR_AWS_CMK_EC=<encryption_context>
A continuación, crea las variables _SOURCE
. Define las siguientes variables nuevas con el sufijo _SOURCE
:
export LKR_AWS_CMK_SOURCE=alias/<CMK_alias>
export LKR_AWS_CMK_EC_SOURCE=<encryption_context>
Si no usas AWS KMS
Si configuraste el cifrado inicialmente con un KMS que no es AWS, creaste una de las siguientes variables de entorno, en función de si almacenas tu CMK en una variable de entorno o en un archivo de tu instancia:
LKR_MASTER_KEY_ENV
: si almacenas tu CMK en una variable de entorno, se almacenará tu CMK.LKR_MASTER_KEY_FILE
: si almacenas tu CMK en un archivo, se guardará la ruta y el nombre del archivo que contiene tu CMK.
Vuelve a crear la variable de entorno que usaste para la configuración:
export LKR_MASTER_KEY_FILE=<path_to_key_file>
O:
export LKR_MASTER_KEY_ENV=<CMK_value>
A continuación, crea la variable _SOURCE
.
Si almacena su CMK en un archivo, cree la siguiente variable:
export LKR_MASTER_KEY_FILE_SOURCE=<path_to_key_file>
Si almacenas tu CMK en una variable de entorno, crea la siguiente variable:
export LKR_MASTER_KEY_ENV_SOURCE=<CMK_value>
Configurar variables _DESTINATION
Sigue uno de los procedimientos siguientes, en función de si vas a usar AWS KMS después de la operación de cambio de clave.
Tu nueva configuración usará AWS KMS
Si la nueva configuración va a usar AWS KMS, cree las siguientes variables de entorno para indicar la nueva ubicación de la CMK:
export LKR_AWS_CMK_DESTINATION=alias/<new_CMK_alias>
export LKR_AWS_CMK_EC_DESTINATION=<new_encryption_context>
Tu nueva configuración no usará AWS KMS
Si tu nueva configuración no va a usar AWS KMS, puedes usar las variables LKR_MASTER_KEY_FILE_DESTINATION
o LKR_MASTER_KEY_ENV_DESTINATION
para especificar el destino de la CMK.
Si quieres almacenar tu CMK en un archivo, ejecuta el siguiente comando:
export LKR_MASTER_KEY_FILE_DESTINATION=<path_to_new_key_file>
Si quieres almacenar tu CMK mediante una variable de entorno, ejecuta el siguiente comando:
export LKR_MASTER_KEY_ENV_DESTINATION=<CMK_value>
Ejecuta el comando rekey
.
Ejecuta el siguiente comando:
./looker rekey
Si tu instancia de Looker se inicia con las
-d <db.yaml>
o las--internal-db-creds=<db.yaml>
opciones de inicio, que proporcionan una ruta a un archivo YAML con tus credenciales de base de datos, tendrás que incluir la misma opción con el comandorekey
.Por ejemplo,
java -jar looker.jar rekey -d /path/file/db.yaml
.
Definir nuevas variables de entorno
Define una o varias de las siguientes variables de entorno según corresponda a tu nueva configuración.
Si tu nueva configuración usa AWS KMS:
export LKR_AWS_CMK=alias/<new_CMK_alias>
export LKR_AWS_CMK_EC=<new_encryption_context>
Si tu nueva configuración no usa AWS KMS y almacenas tu CMK en una variable de entorno, haz lo siguiente:
export LKR_MASTER_KEY_ENV=<CMK_value>
Si tu nueva configuración no usa AWS KMS y almacenas tu CMK en un archivo, haz lo siguiente:
export LKR_MASTER_KEY_FILE=<path_to_CMK_file>
Si has cambiado de una clave almacenada localmente a AWS KMS o de AWS KMS a una clave almacenada localmente, tendrás variables de entorno de tu configuración anterior que no son necesarias. Elimina las variables de entorno antiguas.
Si has pasado de una clave almacenada localmente a AWS KMS:
unset LKR_MASTER_KEY_FILE
Si has pasado de AWS KMS a una clave almacenada localmente:
unset LKR_AWS_CMK
unset LKR_AWS_CMK_EC
Iniciar Looker
Ejecuta el siguiente comando:
./looker start