Zu AES-256-GCM-Verschlüsselung migrieren

robots: noindex



Looker verschlüsselt mit AES-256 Galois/Counter Mode (GCM) intern gespeicherte Daten, darunter:

  • Sicherungen der internen Looker-Datenbank
  • Informationen zu Datenbank- und Dienstverbindungen
  • Informationen zur Nutzerauthentifizierung
  • Nutzerattributwerte
  • Kundendaten, die im Cache gespeichert oder zur Auslieferung bereit sind

Öffnen Sie eine Supportanfrage, um eine detaillierte Liste der Daten aufzurufen, die von Looker verschlüsselt werden.

Die Daten werden mit einem eindeutigen Datenschlüssel verschlüsselt und enthalten einen signierten und versionierten Verschlüsselungsumschlag, um die Bestätigung zu gewährleisten. In diesem Modus muss ein externer Customer Master Key (CMK) verwendet werden. Der CMK wird zum Ableiten, Verschlüsseln und Entschlüsseln des Key Encryption Key (KEK) verwendet, der wiederum zum Ableiten, Verschlüsseln und Entschlüsseln von Datenschlüsseln verwendet wird.

Die Verschlüsselung wird nur für die interne Datenbank und den internen Cache von Looker verwendet. Kundendatenbanken sind in keiner Weise von der Verschlüsselung von Looker betroffen. Außerdem werden nur statische Daten (auf dem Laufwerk gespeicherte Daten) auf diese Weise verschlüsselt.

Vom Kunden gehostete Installationen können ihre eigenen AWS KMS-Konten oder ihre eigenen benutzerdefinierten Schlüsselverwaltungssysteme verwenden. Alle Datenschlüssel und der KEK werden verschlüsselt und intern bei der vom Kunden gehosteten Looker-Installation verwendet. Wenn Sie nicht AWS KMS verwenden, sollte der externe CMK sicher aufbewahrt werden.

Vorhandene vom Kunden gehostete Installationen, die die GCM-Verschlüsselung nutzen möchten, müssen von der alten auf die neue GCM-Verschlüsselung umgestellt werden. Neue vom Kunden gehostete Installationen erfordern eine zusätzliche Konfiguration für die GCM-Verschlüsselung.

Folgen Sie der Anleitung in den folgenden Abschnitten.

Looker beenden und vollständige Sicherung erstellen

Wenn Sie von einer vorhandenen Looker-Instanz zur GCM-Verschlüsselung migrieren, müssen Sie eine vollständige Sicherung erstellen, falls ein Problem mit der Verschlüsselungsmigration auftritt. Wenn Sie eine neue Looker-Instanz installieren, überspringen Sie diesen Abschnitt.

Wenn Sie die interne Looker-Datenbank verwenden:

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, deshalb sollte sie nur ein paar Minuten dauern. Beenden Sie dann Looker.

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 den Migrationsbefehl später ausführen, schlägt der Befehl fehl und die Meldung „Es sind andere Liveknoten mit dieser Back-End-Datenbank von Looker verbunden. Wenn Looker in der letzten Minute heruntergefahren wurde, versuchen Sie es später noch einmal. Prüfen Sie andernfalls, ob alle Knoten im Cluster heruntergefahren wurden.

CMK generieren

Wenn Sie AWS KMS verwenden, erstellen Sie ein CMK mit der AWS-Verwaltungskonsole oder der API.

Wenn Sie nicht AWS KMS verwenden, erstellen Sie ein Base64-32-Byte-CMK. Sie können die CMK-Datei entweder in einer Umgebungsvariablen oder in einer Datei speichern.

  • Zum Generieren des CMK und zum Speichern in einer Umgebungsvariablen können Sie den folgenden Befehl verwenden:

    openssl rand -base64 32
    

    Nachdem Sie den CMK generiert haben, kopieren Sie ihn und verwenden Sie den folgenden Befehl, um den CMK in der Umgebungsvariablen LKR_MASTER_KEY_ENV zu speichern, wobei <CMK_value> der CMK ist, den Sie mit dem vorherigen Befehl generiert haben:

    export LKR_MASTER_KEY_ENV=<CMK_value>
    

    Wenn Looker geclustert ist, führen Sie den vorherigen Befehl auf jedem Knoten im Cluster aus.

  • Zum Generieren und Speichern des CMK können Sie den folgenden Befehl verwenden, wobei <path_to_CMK_file> der Pfad und Dateiname für die Speicherung des CMK ist:

    openssl rand -base64 32 > <path_to_key_file>
    

Legen Sie nach dem Generieren der CMK-Datei die Schlüsseldatei-Berechtigungen auf den aktuellen Lesezugriff des Nutzers fest:

chmod 0400 <path_to_key_file>

Nachdem Sie ein CMK generiert haben, sollten Sie es an einem sicheren und dauerhaften Ort aufbewahren, bevor Sie fortfahren. Der CMK kann nach der Verschlüsselung der internen Datenbank verloren gehen. Dies kann zum Verlust Ihrer Instanz führen.

AWS-IAM-Rolle erstellen

Wenn Sie nicht AWS KMS verwenden, überspringen Sie diesen Abschnitt.

Wenn Sie AWS KMS verwenden, empfiehlt Looker, eine neue IAM-Rolle zu erstellen, die für Ihren CMK eindeutig ist, und sie mit Ihrer Looker-Instanz anzuhängen.

Das folgende Beispiel zeigt eine IAM-Rolle, die die erforderlichen Mindestberechtigungen für Ihren CMK enthält:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "kms:GenerateRandom",
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:Encrypt",
                "kms:Generate*",
            ],
            "Resource": "arn:aws:kms:*:*:key/*"
        }
    ]
}

Umgebungsvariablen festlegen

Wenn Sie AWS KMS verwenden, legen Sie die Umgebungsvariable AWS_REGION auf Ihre AWS-Region und die Umgebungsvariable LKR_AWS_CMK auf den Alias Ihres CMK fest:

export AWS_REGION=<AWS_region>
export LKR_AWS_CMK=alias/<CMK_alias>

Sie können auch die Umgebungsvariable LKR_AWS_CMK_EC festlegen, um einen benutzerdefinierten AWS-Verschlüsselungskontext festzulegen. Wenn Sie diese Umgebungsvariable nicht festlegen, verwendet Looker den Standardverschlüsselungskontext, den String Looker_Encryption_Context.

export LKR_AWS_CMK_EC=<My_Encryption_Context>

Wenn Sie nicht AWS KMS verwenden und Ihre CMK-Datei in einer Datei speichern, legen Sie die Umgebungsvariable LKR_MASTER_KEY_FILE auf den Pfad der CMK-Datei fest:

export LKR_MASTER_KEY_FILE=<path_to_key_file>

Wenn Sie nicht AWS KMS verwenden und Ihre CMK in einer Umgebungsvariablen speichern, legen Sie die Umgebungsvariable LKR_MASTER_KEY_ENV auf den Wert der CMK fest:

export LKR_MASTER_KEY_ENV=<CMK_value>

Wenn Looker geclustert ist, führen Sie den vorherigen Befehl auf jedem Knoten im Cluster aus.

Interne Datenbank verschlüsseln

Wenn Sie eine vorhandene Looker-Instanz zu GCM-Verschlüsselung migrieren, migrieren Sie die interne Looker-Datenbank und starten Sie Looker:

java -jar looker.jar migrate_encryption
./looker  start

Wenn Ihre Looker-Instanz entweder mit den Startoptionen -d <db.yaml> oder --internal-db-creds=<db.yaml> beginnt, die einen Pfad zu einer YAML-Datei mit Ihren Datenbankanmeldedaten enthalten, müssen Sie dieselbe Option in den Befehl java -jar looker.jar migrate_encryption aufnehmen.

Beispiel: java -jar looker.jar migrate_encryption -d /path/file.

Wenn Sie eine neue Looker-Instanz installieren, beginnt die Verschlüsselung, wenn Sie die neue Looker-Instanz starten.

Die Verschlüsselung dauert in der Regel weniger als eine Minute. Nachdem Looker gestartet wurde, können Sie die neue Verschlüsselung prüfen. Suchen Sie dazu im Looker-Log nach GCM:

grep GCM log/looker.log

2018-10-29 22:42:20.279 +0000 [INFO|007d0|crypt] :: Starting migration from AES-128-CBC Legacy to AES-GCM-256
2018-10-29 22:42:20.468 +0000 [INFO|007d0|db:looker] :: (0.000152s) INSERT INTO "SETTING" ("KEY", "VALUE") VALUES

Fehlerbehebung

In diesem Abschnitt werden einige häufige Fehler sowie Lösungen zu diesen Fehlern aufgeführt:

  • Aufgabe „migrate_verschlüsselung“ konnte nicht gefunden werden: Aktualisieren Sie Ihre Looker-Instanz auf Looker 6.4.

  • Looker kann nicht beginnen, da: Schlüsselspeicher nicht gesichert ist: Looker kann den CMK nicht finden. Prüfen Sie, ob der CMK-Pfad in der Umgebungsvariablen LKR_MASTER_KEY_FILE korrekt ist.

  • Looker kann nicht starten, da die Größe des Masterschlüssels ungültig ist. Er muss 32 Byte betragen, ist aber X. Der CMK muss genau 32 Byte lang sein.

  • Looker kann nicht beginnen, da: Berechtigung für unterstützende Schlüsseldatei muss 0400 sein, ist aber XXX: Die CMK-Datei muss schreibgeschützt sein und den Wert chmod auf 0400 haben.