Modifier les clés de chiffrement Looker

Looker utilise le chiffrement AES-256 Galois/Counter Mode (GCM) pour chiffrer les données en interne. Chaque élément de données est chiffré à l'aide d'une clé de données unique et contient une enveloppe de chiffrement signée et versionnée pour garantir la vérification. Ce mode nécessite l'utilisation d'une clé principale client (CMK) externe. La clé CMK sert à extraire, chiffrer et déchiffrer la clé de chiffrement de clé (KEK, Key Encryption Key), qui permet à son tour de dériver, de chiffrer et de déchiffrer des clés de données.

Les installations hébergées par le client qui utilisent un ancien chiffrement doivent migrer leurs bases de données internes vers le chiffrement GCM AES-256. Les installations hébergées par des nouveaux clients doivent être configurées pour le chiffrement GCM AES-256. Consultez la page de documentation Utiliser le chiffrement AES-256 GCM pour obtenir des instructions sur la migration ou la configuration de votre installation hébergée par un client pour le chiffrement GCM AES-256.

Si vous souhaitez modifier votre clé CMK ou passer d'une configuration locale basée sur des clés à une configuration AWS KMS (ou l'inverse), vous pouvez créer une clé CMK et recréer votre clé de chiffrement GCM AES-256.

Le renouvellement des clés s'effectue hors connexion, ce qui signifie que l'instance Looker doit être arrêtée. Pour les instances Looker en cluster, tous les nœuds du cluster doivent être arrêtés.

La modification des clés invalide l'intégralité du cache sur disque de Looker, y compris le cache des résultats de la requête. Par conséquent, une fois que vous avez renouvelé la clé et démarré l'instance, les bases de données clientes peuvent subir une charge plus importante que d'habitude.

Pour reclé le chiffrement AES-256 GCM, procédez comme suit:

  1. Arrêter Looker et créer une sauvegarde complète
  2. Définir les variables d'environnement _SOURCE et _DESTINATION
  3. Exécuter la commande rekey
  4. Définir de nouvelles variables d'environnement
  5. Démarrer Looker

Arrêter Looker et créer une sauvegarde complète

Exécutez les commandes suivantes :

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 vous exécutez une base de données MySQL externe pour stocker les données de l'application Looker, sauvegardez la base de données séparément. Si la base de données est une instance MySQL, prenez un instantané. La base de données étant relativement petite, cela ne devrait prendre que quelques minutes.

Si Looker est en cluster, veillez à arrêter chaque nœud avant de continuer:

cd looker
./looker stop

Si des nœuds sont toujours en cours d'exécution lorsque vous exécutez la commande rekey ultérieurement, la commande échoue et le message suivant s'affiche : "D'autres nœuds actifs sont connectés à cette base de données Looker backend. Si Looker a été arrêté au cours de la dernière minute, réessayez dans quelques instants. Sinon, vérifiez que tous les nœuds du cluster sont arrêtés."

Définir les variables d'environnement _SOURCE et _DESTINATION

Lors de la migration ou de la configuration initiale de votre instance Looker vers le chiffrement GCM AES-256, une ou plusieurs variables d'environnement ont été créées pour indiquer où Looker peut trouver votre clé CMK. Ces variables diffèrent selon que vous utilisez AWS KMS.

L'opération de regénération de clé utilise des variables d'environnement supplémentaires, selon que vous utilisez actuellement ou non AWS KMS, et si vous l'utiliserez après l'opération. Les variables d'environnement avec le suffixe _SOURCE indiquent où Looker peut actuellement trouver votre CMK, et les variables d'environnement avec le suffixe _DESTINATION indiquent où Looker peut trouver votre CMK après l'opération de recréation de clé.

Définir des variables _SOURCE

Effectuez l'une des procédures suivantes, selon que votre configuration actuelle utilise AWS KMS ou non.

Si vous utilisez actuellement AWS KMS

Si vous avez initialement configuré le chiffrement à l'aide d'AWS KMS, vous avez créé l'une des variables d'environnement suivantes, ou les deux:

  • LKR_AWS_CMK: stocke le CMK_alias AWS.
  • LKR_AWS_CMK_EC: variable facultative qui définit le contexte de chiffrement utilisé avec les keystores AWS KMS.

Recréez les variables d'environnement:

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

Créez ensuite les variables _SOURCE. Définissez les nouvelles variables suivantes avec le suffixe _SOURCE:

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

Si vous n'utilisez pas AWS KMS

Si vous avez initialement configuré votre chiffrement à l'aide d'un service de gestion des clés autre qu'AWS, vous avez créé l'une des variables d'environnement suivantes, selon que vous stockez votre clé CMK dans une variable d'environnement'environnement ou dans un fichier sur votre instance:

  • LKR_MASTER_KEY_ENV: si vous stockez votre CMK dans une variable d'environnement, elle est également stockée.
  • LKR_MASTER_KEY_FILE: si vous stockez la clé CMK dans un fichier, le chemin d'accès et le nom du fichier contenant la clé CMK sont stockés.

Recréez la variable d'environnement utilisée pour votre configuration:

export LKR_MASTER_KEY_FILE=<path_to_key_file>

ou

export LKR_MASTER_KEY_ENV=<CMK_value>

Créez ensuite la variable _SOURCE.

Si vous stockez votre CMK dans un fichier, créez la variable suivante:

export LKR_MASTER_KEY_FILE_SOURCE=<path_to_key_file>

Si vous stockez votre CMK dans une variable d'environnement, créez la variable suivante:

export LKR_MASTER_KEY_ENV_SOURCE=<CMK_value>

Définir des variables _DESTINATION

Effectuez l'une des procédures suivantes, selon que vous utiliserez ou non AWS KMS après l'opération de regénération de clé.

Votre nouvelle configuration utilisera AWS KMS

Si votre nouvelle configuration utilise AWS KMS, créez les variables d'environnement suivantes pour indiquer le nouvel emplacement CMK:

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

Votre nouvelle configuration n'utilisera pas AWS KMS

Si votre nouvelle configuration n'utilise pas AWS KMS, vous avez la possibilité d'utiliser les variables LKR_MASTER_KEY_FILE_DESTINATION ou LKR_MASTER_KEY_ENV_DESTINATION pour spécifier la destination CMK.

Si vous souhaitez stocker votre clé CMK dans un fichier, exécutez la commande suivante:

export LKR_MASTER_KEY_FILE_DESTINATION=<path_to_new_key_file>

Si vous souhaitez stocker votre clé CMK à l'aide d'une variable d'environnement, exécutez la commande suivante:

export LKR_MASTER_KEY_ENV_DESTINATION=<CMK_value>

Exécuter la commande rekey

Exécutez la commande suivante :

./looker rekey

Si votre instance Looker commence par les options de démarrage -d <db.yaml> ou --internal-db-creds=<db.yaml>, qui fournissent un chemin d'accès à un fichier YAML avec vos identifiants de base de données, vous devez inclure la même option dans la commande rekey.

Par exemple, java -jar looker.jar rekey -d /path/file/db.yaml.

Définir de nouvelles variables d'environnement

Définissez une ou plusieurs des variables d'environnement suivantes en fonction de votre nouvelle configuration.

Si votre nouvelle configuration utilise AWS KMS:

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

Si votre nouvelle configuration n'utilise pas AWS KMS et que vous stockez votre CMK dans une variable d'environnement:

export LKR_MASTER_KEY_ENV=<CMK_value>

Si votre nouvelle configuration n'utilise pas AWS KMS et que vous stockez votre CMK dans un fichier:

export LKR_MASTER_KEY_FILE=<path_to_CMK_file>

Si vous êtes passé d'une clé stockée localement à AWS KMS ou d'AWS KMS vers une clé stockée localement, les variables d'environnement de votre configuration précédente ne seront pas nécessaires. Supprimez les anciennes variables d'environnement.

Si vous êtes passé d'une clé stockée localement à AWS KMS:

unset LKR_MASTER_KEY_FILE

Si vous êtes passé d'AWS KMS à une clé stockée localement:

unset LKR_AWS_CMK
unset LKR_AWS_CMK_EC

Démarrer Looker

Exécutez la commande suivante :

./looker start