Verschlüsselungsschlüssel von Looker ändern

Looker verwendet die AES-256 Galois/Counter Mode (GCM)-Verschlüsselung, um Daten intern zu verschlüsseln. Jedes Datenelement wird mit einem eindeutigen Datenschlüssel verschlüsselt und enthält einen signierten und versionierten Verschlüsselungsumschlag, um die Überprüfung zu gewährleisten. Für diesen Modus muss ein externer Kundenhauptschlüssel (Customer Master Key, CMK) verwendet werden. Der CMK wird zum Ableiten, Verschlüsseln und Entschlüsseln des Schlüsselverschlüsselungsschlüssels (Key Encryption Key, KEK) verwendet, der wiederum zum Ableiten, Verschlüsseln und Entschlüsseln von Datenschlüsseln verwendet wird.

Bei vom Kunden gehosteten Installationen mit Legacy-Verschlüsselung müssen die internen Datenbanken zur AES-256-GCM-Verschlüsselung migriert werden. Bei neuen, von Kunden gehosteten Installationen müssen ihre Installationen für die AES-256-GCM-Verschlüsselung konfiguriert werden. Auf der Dokumentationsseite AES-256-GCM-Verschlüsselung verwenden finden Sie eine Anleitung zur Migration oder Konfiguration Ihrer vom Kunden gehosteten Installation für die AES-256-GCM-Verschlüsselung.

Wenn Sie Ihren CMK ändern oder von einer lokalen schlüsselbasierten Konfiguration zu einer AWS KMS-Konfiguration wechseln möchten (oder umgekehrt), können Sie einen neuen CMK erstellen und Ihre AES-256-GCM-Verschlüsselung neu verschlüsseln.

Die Neuverschlüsselung erfolgt offline, d. h. die Looker-Instanz muss heruntergefahren werden. Bei geclusterten Looker-Instanzen müssen alle Knoten des Clusters heruntergefahren werden.

Bei einer Neuverschlüsselung wird der gesamte Looker-Cache auf dem Datenträger entwertet, einschließlich des Abfrageergebnisses-Cache. Daher kann die Auslastung der Client-Datenbanken nach der Neuverschlüsselung und beim Start der Instanz höher als üblich sein.

Gehen Sie wie folgt vor, um die AES-256-GCM-Verschlüsselung neu zu verschlüsseln:

  1. Looker beenden und vollständiges Back-up erstellen
  2. Umgebungsvariablen _SOURCE und _DESTINATION festlegen
  3. Führen Sie den Befehl rekey aus.
  4. Neue Umgebungsvariablen festlegen
  5. Looker starten

Looker beenden und vollständige Sicherung erstellen

Führen Sie folgende Befehle aus:

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

Wenn Sie eine externe MySQL-Datenbank zum Speichern von Looker-Anwendungsdaten ausführen, sichern Sie die Datenbank separat. Wenn die Datenbank eine MySQL-Instanz ist, erstellen Sie einen Snapshot. Da die Datenbank relativ klein ist, sollte es nur wenige Minuten dauern.

Wenn Looker geclustert ist, beenden Sie jeden Knoten, bevor Sie fortfahren:

cd looker
./looker stop

Wenn noch Knoten ausgeführt werden, wenn Sie später den Befehl rekey ausführen, schlägt der Befehl mit der Meldung „Es sind weitere Live-Knoten mit dieser Backend-Looker-Datenbank verbunden. Wenn Looker innerhalb der letzten Minute heruntergefahren wurde, versuchen Sie es kurz und prüfen Sie andernfalls, ob alle Knoten im Cluster heruntergefahren wurden.“

Umgebungsvariablen _SOURCE und _DESTINATION festlegen

Als Ihre Looker-Instanz anfangs zur AES-256-GCM-Verschlüsselung migriert oder dafür konfiguriert wurde, wurden eine oder mehrere Umgebungsvariablen erstellt, die angeben, wo Looker Ihren CMK finden kann. Diese Variablen unterscheiden sich je nachdem, ob Sie AWS KMS verwenden.

Für den Vorgang der Neuverschlüsselung werden zusätzliche Umgebungsvariablen verwendet, je nachdem, ob Sie derzeit AWS KMS verwenden und ob Sie nach dem Neuverschlüsselungsvorgang AWS KMS verwenden werden. Umgebungsvariablen mit dem Suffix _SOURCE geben an, wo Looker Ihren CMK derzeit finden kann. Umgebungsvariablen mit dem Suffix _DESTINATION geben an, wo Looker Ihren CMK nach der Neuverschlüsselung finden kann.

_SOURCE Variablen werden festgelegt

Führen Sie je nachdem, ob Ihre aktuelle Konfiguration AWS KMS verwendet, eines der folgenden Verfahren aus.

Wenn Sie derzeit AWS KMS verwenden

Wenn Sie Ihre Verschlüsselung ursprünglich mit AWS KMS konfiguriert haben, haben Sie eine oder beide der folgenden Umgebungsvariablen erstellt:

  • LKR_AWS_CMK: Speichert die AWS-CMK_alias.
  • LKR_AWS_CMK_EC: Eine optionale Variable, die den Verschlüsselungskontext definiert, der mit AWS KMS-Schlüsselspeichern verwendet wird.

Erstellen Sie die Umgebungsvariablen neu:

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

Erstellen Sie dann die _SOURCE-Variablen. Legen Sie die folgenden neuen Variablen mit dem Suffix _SOURCE fest:

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

Wenn Sie derzeit nicht AWS KMS verwenden

Wenn Sie die Verschlüsselung ursprünglich mit einem anderen KMS als AWS konfiguriert haben, haben Sie eine der folgenden Umgebungsvariablen erstellt, je nachdem, ob Sie Ihren CMK in einer Umgebungsvariablen oder in einer Datei auf Ihrer Instanz speichern:

  • LKR_MASTER_KEY_ENV: Wenn Sie Ihren CMK in einer Umgebungsvariablen speichern, wird er darin gespeichert.
  • LKR_MASTER_KEY_FILE: Wenn Sie Ihren CMK in einer Datei speichern, werden hier Pfad und Dateiname der Datei gespeichert, die Ihren CMK enthält.

Erstellen Sie die für Ihre Konfiguration verwendete Umgebungsvariable neu:

export LKR_MASTER_KEY_FILE=<path_to_key_file>

oder:

export LKR_MASTER_KEY_ENV=<CMK_value>

Erstellen Sie dann die Variable _SOURCE.

Wenn Sie Ihren CMK in einer Datei speichern, erstellen Sie die folgende Variable:

export LKR_MASTER_KEY_FILE_SOURCE=<path_to_key_file>

Wenn Sie den CMK in einer Umgebungsvariablen speichern, erstellen Sie die folgende Variable:

export LKR_MASTER_KEY_ENV_SOURCE=<CMK_value>

_DESTINATION Variablen werden festgelegt

Führen Sie eines der folgenden Schritte aus, je nachdem, ob Sie nach der Neuverschlüsselung AWS KMS verwenden.

Ihre neue Konfiguration verwendet AWS KMS

Wenn die neue Konfiguration AWS KMS verwendet, erstellen Sie die folgenden Umgebungsvariablen, um den neuen CMK-Speicherort anzugeben:

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

In der neuen Konfiguration wird AWS KMS nicht verwendet

Wenn in Ihrer neuen Konfiguration AWS KMS nicht verwendet wird, können Sie die Variablen LKR_MASTER_KEY_FILE_DESTINATION oder LKR_MASTER_KEY_ENV_DESTINATION verwenden, um das CMK-Ziel anzugeben.

Wenn Sie den CMK in einer Datei speichern möchten, führen Sie den folgenden Befehl aus:

export LKR_MASTER_KEY_FILE_DESTINATION=<path_to_new_key_file>

Wenn Sie den CMK mithilfe einer Umgebungsvariable speichern möchten, geben Sie den folgenden Befehl ein:

export LKR_MASTER_KEY_ENV_DESTINATION=<CMK_value>

Befehl rekey ausführen

Führen Sie dazu folgenden Befehl aus:

./looker rekey

Wenn Ihre Looker-Instanz mit den Startoptionen -d <db.yaml> oder --internal-db-creds=<db.yaml> beginnt, die einen Pfad zu einer YAML-Datei mit Ihren Datenbankanmeldedaten bereitstellen, müssen Sie dieselbe Option in den Befehl rekey einfügen.

Beispiel: java -jar looker.jar rekey -d /path/file/db.yaml.

Neue Umgebungsvariablen festlegen

Legen Sie eine oder mehrere der folgenden Umgebungsvariablen für Ihre neue Konfiguration fest.

Wenn Ihre neue Konfiguration AWS KMS verwendet:

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

Wenn Ihre neue Konfiguration AWS KMS nicht verwendet und Sie Ihren CMK in einer Umgebungsvariablen speichern:

export LKR_MASTER_KEY_ENV=<CMK_value>

Wenn Ihre neue Konfiguration nicht AWS KMS verwendet und Sie Ihren CMK in einer Datei speichern:

export LKR_MASTER_KEY_FILE=<path_to_CMK_file>

Wenn Sie von einem lokal gespeicherten Schlüssel zu AWS KMS oder von AWS KMS zu einem lokal gespeicherten Schlüssel verschoben haben, haben Sie unnötige Umgebungsvariablen aus Ihrer vorherigen Konfiguration. Löschen Sie die alten Umgebungsvariablen.

Wenn Sie von einem lokal gespeicherten Schlüssel zu AWS KMS gewechselt haben:

unset LKR_MASTER_KEY_FILE

Wenn Sie von AWS KMS zu einem lokal gespeicherten Schlüssel gewechselt haben:

unset LKR_AWS_CMK
unset LKR_AWS_CMK_EC

Looker starten

Führen Sie dazu folgenden Befehl aus:

./looker start