Verschlüsselungsschlüssel von Looker ändern

Looker verwendet für die interne Verschlüsselung von Daten die AES-256-Galois-/Counter-Modus-(GCM-)Verschlüsselung. Jedes Datenelement wird mit einem eindeutigen Datenschlüssel verschlüsselt und enthält einen signierten und versionierten Umschlag, um die Bestätigung zu gewährleisten. In diesem Modus ist ein externer Kunden-Masterschlüssel (CMK) erforderlich. 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, die die alte Verschlüsselung verwenden, müssen die internen Datenbanken zur AES-256-GCM-Verschlüsselung migriert werden. Bei neuen, vom Kunden gehosteten Installationen muss die Installation für die AES-256-GCM-Verschlüsselung konfiguriert werden. Auf der Dokumentationsseite AES-256-GCM-Verschlüsselung verwenden erfahren Sie, wie Sie Ihre vom Kunden gehostete Installation für die AES-256-GCM-Verschlüsselung migrieren oder konfigurieren.

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

Die Umschlüsselung erfolgt offline. Die Looker-Instanz muss daher heruntergefahren werden. Bei geclusterten Looker-Instanzen müssen alle Knoten des Clusters heruntergefahren werden.

Durch die Neuverschlüsselung wird der gesamte Looker-Cache auf dem Laufwerk, einschließlich des Abfrageergebnis-Cache, ungültig. Daher ist es möglich, dass die Clientdatenbanken nach dem Abschluss einer Neuschlüsselung und dem Hochfahren der Instanz höher als üblich sind.

Führen Sie die folgenden Schritte aus, um die AES-256-GCM-Verschlüsselung neu zu verschlüsseln:

  1. Looker beenden und vollständige Sicherung erstellen
  2. Umgebungsvariablen _SOURCE und _DESTINATION festlegen
  3. Befehl rekey ausführen
  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. Die Datenbank ist relativ klein, sodass sie nur wenige Minuten in Anspruch nehmen sollte.

Wenn Looker geclustert ist, müssen Sie jeden Knoten beenden, 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 „(\)“ fehl. Es sind weitere Live-Knoten mit dieser Looker-Datenbank im Back-End verbunden. Wenn Looker in der letzten Minute heruntergefahren wurde, versuchen Sie es später noch einmal. Andernfalls prüfen Sie, ob alle Knoten im Cluster heruntergefahren wurden.

Umgebungsvariablen _SOURCE und _DESTINATION festlegen

Als die Looker-Instanz ursprünglich zu einer AES-256-GCM-Verschlüsselung migriert oder dafür konfiguriert wurde, wurde mindestens eine Umgebungsvariable erstellt, die angibt, wo Looker Ihre CMK findet. Diese Variablen hängen davon ab, ob Sie AWS KMS verwenden.

Für den Neuschlüsselvorgang werden zusätzliche Umgebungsvariablen verwendet, je nachdem, ob Sie derzeit AWS KMS verwenden und ob Sie AWS KMS nach dem Neuschlüsselvorgang verwenden. Umgebungsvariablen mit dem Suffix _SOURCE geben an, wo Looker derzeit Ihren CMK findet. Umgebungsvariablen mit dem Suffix _DESTINATION geben an, wo Looker Ihren CMK nach dem Neuschlüsselvorgang findet.

_SOURCE Variablen werden festgelegt

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

Wenn Sie derzeit AWS KMS verwenden

Wenn Sie die Verschlüsselung zu Beginn mit AWS KMS konfiguriert haben, haben Sie mindestens eine der folgenden Umgebungsvariablen erstellt:

  • LKR_AWS_CMK: Speichert die AWS-CMK_alias.
  • LKR_AWS_CMK_EC: Eine optionale Variable, die den Verschlüsselungskontext für AWS KMS-Schlüsselspeicher definiert.

Erstellen Sie die obigen Umgebungsvariablen neu:

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

Erstellen Sie dann die Variablen _SOURCE. 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 zu Beginn 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 CMK in einer Umgebungsvariablen speichern, wird Ihr CMK gespeichert.
  • LKR_MASTER_KEY_FILE: Wenn Sie Ihren CMK in einer Datei speichern, werden der Pfad und der Dateiname der Datei mit Ihrem CMK gespeichert.

Erstellen Sie die für die 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 Ihren 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 je nachdem, ob Sie nach dem Neuschlüsselvorgang AWS KMS verwenden, einen der folgenden Schritte aus.

Ihre neue Konfiguration verwendet AWS KMS.

Wenn in Ihrer neuen Konfiguration AWS KMS verwendet wird, 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 Ihrer neuen Konfiguration wird AWS KMS nicht verwendet

Wenn in Ihrer neuen Konfiguration nicht AWS KMS 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 Ihren 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 mit einer Umgebungsvariable speichern möchten, führen Sie den folgenden Befehl aus:

export LKR_MASTER_KEY_ENV_DESTINATION=<CMK_value>

Befehl rekey ausführen

Führen Sie dazu folgenden Befehl aus:

./looker rekey

Neue Umgebungsvariablen festlegen

Legen Sie für Ihre neue Konfiguration mindestens eine der folgenden Umgebungsvariablen 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 in der neuen Konfiguration nicht AWS KMS verwendet wird 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 verschoben haben:

unset LKR_MASTER_KEY_FILE

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

unset LKR_AWS_CMK
unset LKR_AWS_CMK_EC

Looker starten

Führen Sie dazu folgenden Befehl aus:

./looker start