AWS Secrets Manager에 넣을 내용들을 한번 더 암호화를 해서 넣기 위해 짧은 bash script를 작성해보았다.

암호화 (AES-256-CBC + PBKDF2 사용, base64로 인코딩)

#!/bin/bash
read -sp "Input a string to be encrypted:" str1
echo
printf "$str1" | openssl enc -aes-256-cbc -pbkdf2 | base64

복호화 (base64 디코딩 후, AES-256-CBC + PBKDF2 사용)

#!/bin/bash
read -p "Input a base64-format string to be decrypted:" str1
echo
echo "$str1" | base64 -d | openssl enc -d -aes-256-cbc -pbkdf2

암호화를 한 뒤 테스트로 복호화를 반드시 한 번을 해보는 것을 추천한다. 여기서는 API key 정도만 암호화하는 정도라 복호화가 안되어도 큰 상관은 없다.

(노트) 큰 파일을 암호화해서 보관하는 시나리오에서, 레고를 밟을 가능성들이 몇몇 존재한다. 공인인증서 키보드 보안 프로그램이 키입력을 aa로 바꿔서 넣는다든가, 아니면 언어 입력이 영어/한국어가 아닌 다른 국가 언어로 되어 있는 경우…