Looker usa la encriptación AES-256 Galois/Counter Mode (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 control de versiones 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 usen encriptación heredada deben migrar sus bases de datos internas a la encriptación AES-256 GCM. Las instalaciones alojadas por clientes nuevos deben configurarlas 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 deseas cambiar tu CMK, o si deseas pasar de una configuración local basada en claves a una configuración de AWS KMS (o viceversa), puedes hacerlo creando una nueva CMK y cambiando la clave de tu encriptación AES-256 GCM.
El cambio de clave se realiza sin conexión, lo que significa que la instancia de Looker debe cerrarse. En el caso de las instancias de Looker agrupadas, se deben cerrar todos los nodos del clúster.
El cambio de claves invalida toda la caché en 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 del cliente experimenten una carga mayor que la 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
- Cómo 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 en clústeres, asegúrate de detener todos los nodos antes de continuar:
cd looker
./looker stop
Si algún nodo sigue en ejecución cuando más adelante emitas el comando rekey
, este fallará y mostrará el mensaje “Hay otros nodos activos conectados a esta base de datos de backend de Looker. Si se cerró Looker en el último minuto, vuelve a intentarlo en breve. De lo contrario, verifica que todos los nodos del clúster estén apagados”.
Configura las variables de entorno _SOURCE
y _DESTINATION
Cuando tu instancia de Looker se migró a la encriptación AES-256 GCM o se configuró para usarla, se crearon una o más variables de entorno que indican dónde Looker puede encontrar tu CMK. Estas variables difieren si usas AWS KMS.
En la operación de cambio de clave, se usan variables de entorno adicionales, en función de si actualmente usas AWS KMS y de si usarás AWS KMS después de la operación de cambio de clave. Las variables de entorno con el sufijo _SOURCE
indican dónde Looker puede encontrar tu CMK actualmente, y las variables de entorno con el sufijo _DESTINATION
indican dónde Looker 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 KMS de AWS.
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
. Configura 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, en un principio, configuraste tu encriptación con un KMS distinto de AWS, creaste una de las siguientes variables de entorno, según si almacenaste la CMK en una variable de entorno o en un archivo en tu instancia:
LKR_MASTER_KEY_ENV
: Si almacenas la CMK en una variable de entorno, se almacenará en ella.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>
Configura 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 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 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 CMK.
Si deseas almacenar tu CMK en un archivo, ejecuta 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 comienza 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 para 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 la 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 la CMK en un archivo, haz lo siguiente:
export LKR_MASTER_KEY_FILE=<path_to_CMK_file>
Si migraste de una clave almacenada localmente al KMS de AWS o de AWS a una clave almacenada localmente, 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