ThingWorx Flow Verschlüsselungsschlüssel rotieren
Sensible Daten, einschließlich Autorisierungen und Workflow-Aktionen, werden in ThingWorx Flow verschlüsselt. Sie können den Verschlüsselungsschlüssel ändern, der zum Verschlüsseln sensibler Daten verwendet wird, ohne zuvor verschlüsselte Daten zu verlieren. Die folgenden Abschnitte enthalten Informationen zum Festlegen eines neuen Verschlüsselungsschlüssels in den folgenden Umgebungen:
Lokal
1. Generieren Sie ein neues Schlüsselpaar mit Schlüsselname und Verschlüsselungswort.
◦ Sie können den Schlüsselnamen beliebig festlegen.
◦ Die Länge des Verschlüsselungsworts muss ein Vielfaches von 16 sein. Sie können den GUID-Generator verwenden, um das Verschlüsselungswort zu erstellen. Der GUID darf keinen Bindestrich (-) enthalten.
2. Der Wert des secret-Parameters wird verwendet, um keyfile-key zu entschlüsseln. Um den Wert des Parameters secret abzurufen, starten Sie die Eingabeaufforderung als Administrator auf dem Rechner, auf dem Sie ThingWorx Flow installiert haben, und führen Sie die folgenden Befehle aus:
a. pm2 ls
Notieren Sie sich den Wert der ID eines beliebigen ThingWorx Flow Diensts.
b. pm2 env <ID>
Hierbei ist <ID> die ID eines beliebigen ThingWorx Flow Diensts. Beispiel: Die ID des flow-api-Diensts.
c. Kopieren Sie den Wert der Variablen CONFIG_IMAGE. Dies ist der Wert des Parameters secret. Dies ist der Wert des secret-Parameters, den Sie in Schritt 3 angeben müssen.
3. Führen Sie die folgenden Befehle aus, um die Schlüsseldatei zu entschlüsseln:
a. Navigieren Sie zum <ThingWorx_Flow_Installationsspeicherort>.
b. Führen Sie die folgenden Befehle aus:
cd <ThingWorx_Flow_Installationsspeicherort>\cryptography\tw-security-common-nodejs
Windows: npm link oder Linux: sudo npm link
c. Führen Sie den folgenden Befehl aus, um keyfile-key in eine temporäre Datei zu entschlüsseln:
PtcOrchKeyFileTool --secret <Wert von CONFIG_IMAGE> --keyfile-location <ThingWorx_Flow_Installationsspeicherort>\misc\keyfile-key --plaintext <ThingWorx_Flow_Installationsspeicherort>\cryptography\keys.dec --encrypted <ThingWorx_Flow_Installationsspeicherort>\cryptography\keys.enc decrypt
Durch diesen Befehl wird eine neue, verschlüsselte Datei keys.dec im Ordner <ThingWorx_Flow_Installationsspeicherort>\cryptography\ erstellt.
d. Aktualisieren Sie die Datei keys.dec, um den neuen Schlüssel hinzuzufügen.
Zum Beispiel: "newkey": "0EE0D33AC67E4389AB2B46123729B875",
e. Erstellen Sie eine Sicherung der Datei <ThingWorx_Flow_Installationsspeicherort>\cryptography\keys.enc.
f. Löschen Sie die Datei <ThingWorx_Flow_Installationsspeicherort>\cryptography\keys.enc.
g. Führen Sie den folgenden Befehl aus, um die neue verschlüsselte Datei keys.enc zu erstellen:
PtcOrchKeyFileTool --secret <Wert von CONFIG_IMAGE> --keyfile-location <ThingWorx_Flow_Installationsspeicherort>\misc\keyfile-key --plaintext <ThingWorx_Flow_Installationsspeicherort>\cryptography\keys.dec --encrypted <ThingWorx_Flow_Installationsspeicherort>\cryptography\keys.enc encrypt
h. Löschen Sie die entschlüsselte Datei keys.dec.
4. Legen Sie in den folgenden Dateien den Wert der activeKeyName-Eigenschaft auf den neuen Schlüsselnamen fest, um den neuen Verschlüsselungsschlüssel zu konfigurieren:
◦ <ThingWorx_Flow_Installationsspeicherort>\modules\engine\config\security-common\config.json
◦ <ThingWorx_Flow_Installationsspeicherort>\modules\exchange\config\security-common\config.json
◦ <ThingWorx_Flow_Installationsspeicherort>\modules\lookup\config\security-common\config.json
◦ <ThingWorx_Flow_Installationsspeicherort>\modules\oauth\config\security-common\config.json
◦ <ThingWorx_Flow_Installationsspeicherort>\modules\trigger\config\security-common\config.json
◦ <ThingWorx_Flow_Installationsspeicherort>\modules\ux\config\security-common\config.json
Legen Sie beispielsweise für den Schlüsselnamen newkey Folgendes fest:
{"
activeKeyName": "newkey"
}
5. Starten Sie die ThingWorx Flow Dienste neu.
Cloud oder virtuelle private Cloud
1. Generieren Sie ein neues Schlüsselpaar mit Schlüsselname und Verschlüsselungswort.
◦ Sie können den Schlüsselnamen beliebig festlegen.
◦ Die Länge des Verschlüsselungsworts muss ein Vielfaches von 16 sein. Sie können den GUID-Generator verwenden, um das Verschlüsselungswort zu erstellen. Der GUID darf keinen Bindestrich (-) enthalten.
2. Die ThingWorx Flow Bereitstellung enthält eine Datei mit Schlüssel/Verschlüsselungswort namens <Versionsname>-keys. Diese Datei mit Schlüssel/Verschlüsselungswort enthält den aktiven Verschlüsselungsschlüssel und die alten Verschlüsselungsschlüssel im JSON-Format (gespeichert in der Datei oldEncKeys.json). Um die richtige Datei mit Schlüssel/Verschlüsselungswort zu finden, führen Sie den folgenden Befehl aus:
kubectl get secrets
3. Führen Sie den folgenden Befehl aus, um die Verschlüsselungswort-Datei zum Bearbeiten zu öffnen:
kubectl edit secret <release name>-keys
Die Verschlüsselungswort-Datei enthält die folgenden Einträge:
◦ ENCRYPTION_KEY:QVNERkdISktMMTIzNDU2Nw==
◦ ACTIVE_ENCRYPTION_KEY_NAME:bXlrZXk=
◦ oldEncKeys.json:e30=
4. Decodieren Sie die aktuellen Werte vonENCRYPTION_KEY, ACTIVE_ENCRYPTION_KEY_NAME und oldEncKeys.json mit Base64. In diesem Beispiel gilt:
◦ Für ENCRYPTION_KEY wird der Wert QVNERkdISktMMTIzNDU2Nw== in ASDFGHJKL1234567 decodiert.
◦ Für ACTIVE_ENCRYPTION_KEY_NAME wird der Wert bXlrZXk= in mykey decodiert.
◦ Für oldEncKeys.json wird der Wert e30= in {} decodiert.
5. Codieren Sie die neuen Werte von ENCRYPTION_KEY,, ACTIVE_ENCRYPTION_KEY_NAMEund oldEncKeys.json mit Base64. In diesem Beispiel gilt:
◦ Für ENCRYPTION_KEY wird der Wert 0EE0D33AC67E4389AB2B46123729B875 in MEVFMEQzM0FDNjdFNDM4OUFCMkI0NjEyMzcyOUI4NzU= codiert.
◦ Für ACTIVE_ENCRYPTION_KEY_NAME wird der Wert newkey in bmV3a2V5 codiert.
◦ Für oldEncKeys.json wird das alte Schlüsselpaar im JSON-Format {"mykey":"ASDFGHJKL1234567"} in eyAibXlrZXkiOiAiQVNERkdISktMMTIzNDU2NyJ9 codiert.
6. Geben Sie die neuen Werte in die Datei mit dem Schlüssel/Verschlüsselungswort ein, und speichern Sie die Datei.
◦ ENCRYPTION_KEY:MEVFMEQzM0FDNjdFNDM4OUFCMkI0NjEyMzcyOUI4NzU=
◦ ACTIVE_ENCRYPTION_KEY_NAME:bmV3a2V5
◦ oldEncKeys.json:eyAibXlrZXkiOiAiQVNERkdISktMMTIzNDU2NyJ9
7. Starten Sie alle ThingWorx Flow Container neu.