Looker usa la encriptación AES-256 Galois/Counter (GCM) para encriptar los datos de forma interna. Cada elemento de datos se encripta con una clave de datos única y contiene un sobre de encriptación firmado y con versión para garantizar la verificación. Este modo requiere el uso de una clave principal del cliente (CMK) externa. La CMK se usa para derivar, encriptar y desencriptar la clave de encriptación de claves (KEK), que a su vez se usa para derivar, encriptar y desencriptar claves de datos.
Las instalaciones alojadas por el cliente que usan la encriptación heredada deben migrar sus bases de datos internas a la encriptación AES-256 GCM. Las nuevas instalaciones alojadas por el cliente deben configurarse para la encriptación AES-256 GCM. Consulta la página de documentación Cómo usar la encriptación AES-256 GCM para obtener instrucciones sobre cómo migrar o configurar tu instalación alojada por el cliente para la encriptación 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 crear una CMK nueva y volver a generar una clave para la encriptación AES-256 GCM.
El cambio de clave se realiza sin conexión, lo que significa que la instancia de Looker debe estar cerrada. En el caso de las instancias de Looker agrupadas, se deben cerrar todos los nodos del clúster.
La nueva asignación de claves invalida toda la caché en el disco de Looker, incluida la caché de resultados de la consulta. Como resultado, después de completar un cambio de clave y de iniciar la instancia, es posible que las bases de datos de los clientes experimenten una carga más alta de lo habitual.
Para volver a asignar una clave a la encriptación AES-256 GCM, sigue estos procedimientos:
- Detén Looker y crea una copia de seguridad completa
- Configura las variables de entorno
_SOURCE
y_DESTINATION
- Ejecuta el comando
rekey
- Establece nuevas variables de entorno
- Iniciar Looker
Detén Looker y crea una copia de seguridad completa
Ejecuta 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 ejecutas una base de datos de MySQL externa para almacenar datos de la aplicación de Looker, crea una copia de seguridad de la base de datos por separado. Si la base de datos es una instancia de MySQL, toma una instantánea. La base de datos es relativamente pequeña, por lo que solo debería tardar unos minutos.
Si Looker está agrupado, asegúrate de detener todos los nodos antes de continuar:
cd looker
./looker stop
Si algún nodo sigue ejecutándose cuando, más adelante, emites el comando rekey
, este fallará con el mensaje "Hay otros nodos activos conectados a esta base de datos de Looker de backend. Si Looker se cerró en el último minuto, vuelve a intentarlo en breve. De lo contrario, verifica que todos los nodos del clúster estén cerrados".
Configura las variables de entorno _SOURCE
y _DESTINATION
Cuando tu instancia de Looker se migró o configuró para la encriptación de GCM AES-256, se crearon una o más variables de entorno que indican dónde puede encontrar tu CMK. Estas variables difieren según si usas AWS KMS.
La operación de cambio de clave usa variables de entorno adicionales, según si usas AWS KMS actualmente y si lo usarás después de la operación de cambio de clave. Las variables de entorno con el sufijo _SOURCE
indican dónde puede encontrar tu CMK actualmente Looker, y las variables de entorno con el sufijo _DESTINATION
indican dónde puede encontrar tu CMK después de la operación de cambio de clave.
Cómo configurar variables _SOURCE
Realiza uno de los siguientes procedimientos, según si tu configuración actual usa AWS KMS.
Si actualmente usas AWS KMS
Si configuraste la encriptación 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
: Es una variable opcional que define el contexto de encriptación que se usa 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>
Luego, crea las variables _SOURCE
. Establece 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 actualmente no usas AWS KMS
Si configuraste la encriptación inicialmente con un KMS que no es AWS, creaste una de las siguientes variables de entorno, según 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, esta la almacenará.LKR_MASTER_KEY_FILE
: Si almacenas tu CMK en un archivo, se almacenarán la ruta de acceso y el nombre del archivo que contiene la CMK.
Vuelve a crear la variable de entorno que se usó para tu configuración:
export LKR_MASTER_KEY_FILE=<path_to_key_file>
O:
export LKR_MASTER_KEY_ENV=<CMK_value>
Luego, crea la variable _SOURCE
.
Si almacenas tu CMK en un archivo, crea 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>
Cómo configurar variables _DESTINATION
Realiza uno de los siguientes procedimientos, según si usarás AWS KMS después de la operación de cambio de clave.
Tu nueva configuración usará AWS KMS
Si tu nueva configuración usará AWS KMS, crea 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 configuración nueva no usará AWS KMS, tienes la opción de usar las variables LKR_MASTER_KEY_FILE_DESTINATION
o LKR_MASTER_KEY_ENV_DESTINATION
para especificar el destino de la CMK.
Si deseas almacenar tu CMK en un archivo, emite el siguiente comando:
export LKR_MASTER_KEY_FILE_DESTINATION=<path_to_new_key_file>
O bien, si deseas almacenar tu CMK con una variable de entorno, emite 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 opciones de inicio
-d <db.yaml>
o--internal-db-creds=<db.yaml>
, que proporcionan una ruta de acceso a un archivo YAML con las credenciales de tu base de datos, deberás incluir la misma opción con el comandorekey
.Por ejemplo,
java -jar looker.jar rekey -d /path/file/db.yaml
.
Cómo establecer nuevas variables de entorno
Establece una o más de las siguientes variables de entorno según corresponda a tu nueva configuración.
Si tu configuración nueva usa AWS KMS, haz lo siguiente:
export LKR_AWS_CMK=alias/<new_CMK_alias>
export LKR_AWS_CMK_EC=<new_encryption_context>
Si tu configuración nueva 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 configuración nueva no usa AWS KMS y almacenas tu CMK en un archivo, haz lo siguiente:
export LKR_MASTER_KEY_FILE=<path_to_CMK_file>
Si cambiaste de una clave almacenada de forma local a AWS KMS o de AWS KMS a una clave almacenada de forma local, tendrás variables de entorno de tu configuración anterior que no son necesarias. Borra las variables de entorno anteriores.
Si migraste de una clave almacenada de forma local a AWS KMS, haz lo siguiente:
unset LKR_MASTER_KEY_FILE
Si migraste de AWS KMS a una clave almacenada de forma local, haz lo siguiente:
unset LKR_AWS_CMK
unset LKR_AWS_CMK_EC
Inicia Looker
Ejecuta el siguiente comando:
./looker start