Looker verwendet die AES-256-Verschlüsselung im Galois/Counter Mode (GCM), um Daten intern zu verschlüsseln. Jeder Datensatz 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 ist die Verwendung eines externen Kundenmasterschlüssels (Customer Master Key, CMK) erforderlich. Der CMK wird verwendet, um den Schlüsselverschlüsselungsschlüssel (Key Encryption Key, KEK) abzuleiten, zu verschlüsseln und zu entschlüsseln. Dieser wird wiederum verwendet, um Datenschlüssel abzuleiten, zu verschlüsseln und zu entschlüsseln.
Bei Kunden gehostete Installationen, die die bisherige Verschlüsselung verwenden, müssen ihre internen Datenbanken zur AES-256-GCM-Verschlüsselung migrieren. Neue von Kunden gehostete Installationen müssen für die AES-256-GCM-Verschlüsselung konfiguriert werden. Auf der Dokumentationsseite AES-256 GCM-Verschlüsselung verwenden finden Sie eine Anleitung zum Migrieren oder Konfigurieren Ihrer von Kunden gehosteten Installation für die AES-256 GCM-Verschlüsselung.
Wenn Sie Ihre CMK ändern oder von einer lokalschlüsselbasierten Konfiguration zu einer AWS KMS-Konfiguration wechseln möchten (oder umgekehrt), können Sie eine neue CMK erstellen und die AES-256-GCM-Verschlüsselung neu verschlüsseln.
Die Neuschlüsselung erfolgt offline. Die Looker-Instanz muss also heruntergefahren werden. Bei clusterisierten Looker-Instanzen müssen alle Knoten des Clusters heruntergefahren werden.
Durch das Neuschlüsseln wird der gesamte Looker-Cache auf dem Laufwerk ungültig, einschließlich des Abfrageergebnis-Caches. Daher kann es nach dem Neuschlüsseln und Starten der Instanz zu einer höheren als gewöhnlichen Auslastung der Clientdatenbanken kommen.
So ändern Sie den Schlüssel für die AES-256-GCM-Verschlüsselung:
- Looker beenden und eine vollständige Sicherung erstellen
- Umgebungsvariablen
_SOURCE
und_DESTINATION
festlegen - Befehl
rekey
ausführen - Neue Umgebungsvariablen festlegen
- Looker starten
Looker beenden und eine 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 verwenden, sichern Sie die Datenbank separat. Wenn es sich bei der Datenbank um eine MySQL-Instanz handelt, erstellen Sie einen Snapshot. Die Datenbank ist relativ klein, sodass der Vorgang nur wenige Minuten dauern sollte.
Wenn Looker geclustert ist, müssen Sie jeden Knoten anhalten, 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 fehl und Sie erhalten die Meldung „Es gibt noch andere aktive Knoten, die mit dieser Looker-Backend-Datenbank verbunden sind. Wenn Looker innerhalb der letzten Minute heruntergefahren wurde, versuchen Sie es bald noch einmal. Andernfalls prüfen Sie, ob alle Knoten im Cluster heruntergefahren sind.“
Umgebungsvariablen _SOURCE
und _DESTINATION
festlegen
Als Ihre Looker-Instanz ursprünglich zur AES-256-GCM-Verschlüsselung migriert oder für diese konfiguriert wurde, wurden eine oder mehrere Umgebungsvariablen erstellt, die angeben, wo Looker Ihre CMK finden kann. Diese Variablen unterscheiden sich je nachdem, ob Sie AWS KMS verwenden.
Für den Vorgang zum Ändern der Schlüssel werden zusätzliche Umgebungsvariablen verwendet, je nachdem, ob Sie derzeit AWS KMS verwenden und ob Sie AWS KMS nach dem Vorgang zum Ändern der Schlüssel verwenden werden. Umgebungsvariablen mit dem Suffix _SOURCE
geben an, wo Looker Ihre CMK derzeit finden kann. Umgebungsvariablen mit dem Suffix _DESTINATION
geben an, wo Looker Ihre CMK nach dem Neuschlüsselvorgang finden kann.
_SOURCE
-Variablen festlegen
Führen Sie einen der folgenden Schritte aus, je nachdem, ob in Ihrer aktuellen Konfiguration AWS KMS verwendet wird.
Wenn Sie derzeit AWS KMS verwenden
Wenn Sie die 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 AWS KMS derzeit nicht 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 Ihre CMK in einer Umgebungsvariablen oder in einer Datei auf Ihrer Instanz speichern:
LKR_MASTER_KEY_ENV
: Wenn Sie Ihren CMEK in einer Umgebungsvariablen speichern, wird er dort gespeichert.LKR_MASTER_KEY_FILE
: Wenn Sie Ihre CMK in einer Datei speichern, werden der Pfad und der Dateiname der Datei mit der CMK gespeichert.
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 Ihre CMK in einer Datei speichern, erstellen Sie die folgende Variable:
export LKR_MASTER_KEY_FILE_SOURCE=<path_to_key_file>
Wenn Sie Ihre CMK in einer Umgebungsvariablen speichern, erstellen Sie die folgende Variable:
export LKR_MASTER_KEY_ENV_SOURCE=<CMK_value>
_DESTINATION
-Variablen festlegen
Führen Sie einen der folgenden Schritte aus, je nachdem, ob Sie nach dem Neuschlüsseln AWS KMS verwenden.
Ihre neue Konfiguration verwendet AWS KMS.
Wenn in Ihrer neuen Konfiguration AWS KMS verwendet wird, erstellen Sie die folgenden Umgebungsvariablen, um den neuen Speicherort des CMK anzugeben:
export LKR_AWS_CMK_DESTINATION=alias/<new_CMK_alias>
export LKR_AWS_CMK_EC_DESTINATION=<new_encryption_context>
In Ihrer 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 die CMK in einer Datei speichern möchten, geben Sie den folgenden Befehl ein:
export LKR_MASTER_KEY_FILE_DESTINATION=<path_to_new_key_file>
Wenn Sie die CMK in einer Umgebungsvariablen speichern möchten, verwenden Sie den folgenden Befehl:
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>
gestartet wird, die einen Pfad zu einer YAML-Datei mit Ihren Datenbankanmeldedaten angeben, müssen Sie dieselbe Option auch im Befehlrekey
angeben.Beispiel:
java -jar looker.jar rekey -d /path/file/db.yaml
.
Neue Umgebungsvariablen festlegen
Legen Sie eine oder mehrere der folgenden Umgebungsvariablen entsprechend Ihrer neuen Konfiguration fest.
Wenn in Ihrer neuen Konfiguration AWS KMS verwendet wird:
export LKR_AWS_CMK=alias/<new_CMK_alias>
export LKR_AWS_CMK_EC=<new_encryption_context>
Wenn in Ihrer neuen Konfiguration AWS KMS nicht verwendet wird und Sie Ihre CMK in einer Umgebungsvariablen speichern:
export LKR_MASTER_KEY_ENV=<CMK_value>
Wenn in Ihrer neuen Konfiguration AWS KMS nicht verwendet wird und Sie den 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 gewechselt sind, gibt es Umgebungsvariablen aus Ihrer vorherigen Konfiguration, die nicht mehr erforderlich sind. Löschen Sie die alten Umgebungsvariablen.
Wenn Sie von einem lokal gespeicherten Schlüssel zu AWS KMS gewechselt sind:
unset LKR_MASTER_KEY_FILE
Wenn Sie von AWS KMS zu einem lokal gespeicherten Schlüssel gewechselt sind:
unset LKR_AWS_CMK
unset LKR_AWS_CMK_EC
Looker starten
Führen Sie dazu folgenden Befehl aus:
./looker start