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
이 명령은 <ThingWorx Flow 설치 위치>\cryptography\ 폴더에 암호화 해제된 새 keys.dec 파일을 만듭니다.
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. Base64는 ENCRYPTION_KEY, ACTIVE_ENCRYPTION_KEY_NAMEoldEncKeys.json의 현재 값을 디코딩합니다. 이 예에서는 다음과 같습니다.
ENCRYPTION_KEY의 경우 QVNERkdISktMMTIzNDU2Nw== 값이 ASDFGHJKL1234567로 디코딩됩니다.
ACTIVE_ENCRYPTION_KEY_NAME의 경우 bXlrZXk= 값이 mykey로 디코딩됩니다.
oldEncKeys.json의 경우 e30= 값이 {}로 디코딩됩니다.
5. Base64는 ENCRYPTION_KEY, ACTIVE_ENCRYPTION_KEY_NAMEoldEncKeys.json의 새 값을 인코딩합니다. 이 예에서는 다음과 같습니다.
ENCRYPTION_KEY의 경우 0EE0D33AC67E4389AB2B46123729B875 값이 MEVFMEQzM0FDNjdFNDM4OUFCMkI0NjEyMzcyOUI4NzU=로 인코딩됩니다.
ACTIVE_ENCRYPTION_KEY_NAME의 경우 newkey 값이 bmV3a2V5로 인코딩됩니다.
oldEncKeys.json의 경우 JSON 형식의 이전 키 쌍 {"mykey":"ASDFGHJKL1234567"}eyAibXlrZXkiOiAiQVNERkdISktMMTIzNDU2NyJ9로 인코딩됩니다.
6. 키 보안 파일에 새 값을 입력하고 파일을 저장합니다.
ENCRYPTION_KEY:MEVFMEQzM0FDNjdFNDM4OUFCMkI0NjEyMzcyOUI4NzU=
ACTIVE_ENCRYPTION_KEY_NAME:bmV3a2V5
oldEncKeys.json:eyAibXlrZXkiOiAiQVNERkdISktMMTIzNDU2NyJ9
7. 모든 ThingWorx Flow 컨테이너를 다시 시작합니다.
도움이 되셨나요?