ThingWorx Flow > インストールおよび設定 > ThingWorx Flow の設定 > ThingWorx Flow 暗号化キーの入れ替え
ThingWorx Flow 暗号化キーの入れ替え
ThingWorx Flow 内で承認やワークフロー操作などの機密データは暗号化されます。以前に暗号化されたデータを失うことなく、機密データの暗号化に使用する暗号化キーを変更できます。以降のセクションでは、以下の環境で新しい暗号化キーを設定する方法について説明します。
オンプレミス
1. キー名とシークレットから成る新しいキーペアを生成します。
キー名は任意に設定できます。
シークレットの長さは 16 の倍数でなければなりません。GUID ジェネレータを使用してシークレットを作成できます。GUID にハイフン (-) が含まれていてはなりません。
2. secret パラメータの値を使用して、keyfile-key を復号化します。secret パラメータの値を取得するには、ThingWorx Flow をインストールしたマシンで管理者としてコマンドプロンプトを起動し、次のコマンドを実行します。
a. pm2 ls
任意の ThingWorx Flow サービスの ID の値をメモしておきます。
b. pm2 env <id>
ここで、<id>ThingWorx Flow サービスの ID です。例: flow-api サービスの ID。
c. CONFIG_IMAGE 変数の値をコピーします。これは secret パラメータの値です。これは、手順 3 で指定する必要がある secret パラメータの値です。
3. 次のコマンドを実行してキーファイルを復号化します。
a. <ThingWorx Flow のインストール場所> に移動します。
b. 次のコマンドを実行します。
cd <ThingWorx Flow のインストール場所>\cryptography\tw-security-common-nodejs
Windows: npm link または Linux: sudo npm link
c. 次のコマンドを実行して、keyfile-key をテンポラリファイルに復号化します。
PtcOrchKeyFileTool --secret <CONFIG_IMAGE の値> --keyfile-location <ThingWorx Flow のインストール場所>\misc\keyfile-key --plaintext <ThingWorx Flow のインストール場所>\cryptography\keys.dec --encrypted <ThingWorx Flow のインストール場所>\cryptography\keys.enc decrypt
このコマンドによって、新規の復号化された keys.dec ファイルが <ThingWorx Flow インストール場所>\cryptography\ フォルダ内に作成されます。
d. keys.dec ファイルを更新して新しいキーを追加します。
例: "newkey": "0EE0D33AC67E4389AB2B46123729B875",
e. <ThingWorx Flow インストール場所>\cryptography\keys.enc ファイルのバックアップを作成します。
f. <ThingWorx Flow インストール場所>\cryptography\keys.enc ファイルを削除します。
g. 次のコマンドを実行して、新規の暗号化された keys.enc ファイルを作成します。
PtcOrchKeyFileTool --secret <CONFIG_IMAGE の値> --keyfile-location <ThingWorx Flow のインストール場所>\misc\keyfile-key --plaintext <ThingWorx Flow のインストール場所>\cryptography\keys.dec --encrypted <ThingWorx Flow のインストール場所>\cryptography\keys.enc encrypt
h. 復号化された keys.dec ファイルを削除します。
4. 以下の各ファイルで、activeKeyName プロパティの値を新しいキー名に設定して、新しい暗号化キーを設定します。
<ThingWorx Flow のインストール場所>\modules\engine\config\security-common\config.json
<ThingWorx Flow のインストール場所>\modules\exchange\config\security-common\config.json
<ThingWorx Flow のインストール場所>\modules\lookup\config\security-common\config.json
<ThingWorx Flow のインストール場所>\modules\oauth\config\security-common\config.json
<ThingWorx Flow のインストール場所>\modules\trigger\config\security-common\config.json
<ThingWorx Flow のインストール場所>\modules\ux\config\security-common\config.json
たとえば、キー名が newkey の場合、以下のように設定します。
{"
activeKeyName": "newkey"
}
5. ThingWorx Flow サービスを再起動します。
クラウドまたは仮想プライベートクラウド
1. キー名とシークレットから成る新しいキーペアを生成します。
キー名は任意に設定できます。
シークレットの長さは 16 の倍数でなければなりません。GUID ジェネレータを使用してシークレットを作成できます。GUID にハイフン (-) が含まれていてはなりません。
2. ThingWorx Flow 展開には <リリース名>-keys という名前のキーシークレットファイルが含まれています。このキーシークレットファイルには、アクティブな暗号化キーと、oldEncKeys. json に JSON フォーマットで保存されている古い暗号化キーが含まれています。正しいキーシークレットファイルを見つけるには、以下のコマンドを実行します。
kubectl get secrets
3. 以下のコマンドを実行して編集するシークレットファイルを開きます。
kubectl edit secret <release name>-keys
シークレットファイルには以下のエントリが含まれています。
ENCRYPTION_KEY:QVNERkdISktMMTIzNDU2Nw==
ACTIVE_ENCRYPTION_KEY_NAME:bXlrZXk=
oldEncKeys.json:e30=
4. ENCRYPTION_KEYACTIVE_ENCRYPTION_KEY_NAME、および oldEncKeys.json の現在の値を Base64 デコードします。この例では、
ENCRYPTION_KEY で、値 QVNERkdISktMMTIzNDU2Nw==ASDFGHJKL1234567 にデコードされます。
ACTIVE_ENCRYPTION_KEY_NAME で、値 bXlrZXk=mykey にデコードされます。
oldEncKeys.json で、値 e30={} にデコードされます。
5. ENCRYPTION_KEY,ACTIVE_ENCRYPTION_KEY_NAME、および oldEncKeys.json の新しい値を Base64 エンコードします。この例では、
ENCRYPTION_KEY で、値 0EE0D33AC67E4389AB2B46123729B875MEVFMEQzM0FDNjdFNDM4OUFCMkI0NjEyMzcyOUI4NzU= にエンコードされます。
ACTIVE_ENCRYPTION_KEY_NAME で、値 newkeybmV3a2V5 にエンコードされます。
oldEncKeys.json で、JSON フォーマットの古いキーペア {"mykey":"ASDFGHJKL1234567"}eyAibXlrZXkiOiAiQVNERkdISktMMTIzNDU2NyJ9 にエンコードされます
6. 新しい値をキーシークレットファイルに入力し、ファイルを保存します。
ENCRYPTION_KEY:MEVFMEQzM0FDNjdFNDM4OUFCMkI0NjEyMzcyOUI4NzU=
ACTIVE_ENCRYPTION_KEY_NAME:bmV3a2V5
oldEncKeys.json:eyAibXlrZXkiOiAiQVNERkdISktMMTIzNDU2NyJ9
7. すべての ThingWorx Flow コンテナを再起動します。
これは役に立ちましたか?