Database 암호화 키를 복호화 하는 API
데이터베이스 암호화 키에 대한 복호화
POST
VEGA_DECRYPT_API_ENDPOINT
Enclave database에서 개인 정보나 private key와 같은 민감 정보는 암호화하여 저장합니다.
암호화할 때에는 대칭키 암호화 알고리즘을 사용합니다.
데이터베이스 암호화를 위해 사용하는 암호화 키는 Enclave 서버의 환경 변수로 설정합니다. 하지만, 환경 변수로 설정된 값을 그대로 암호화 키로 사용하는 것보다는, 가급적이면 별도의 외부 서비스(ex. HSM)를 이용하여 한 번 더 복호화하는 것을 권장합니다.
위 기능을 위해 아래와 같이 암호화 키를 복호화 하는 API를 구현한 다음, 해당 API endpoint를 Enclave 서버의 VEGA_DECRYPT_API_ENDPOINT 환경 변수로 설정합니다.
VEGA_DECRYPT_API_ENDPOINT 환경 변수를 설정하지 않으면, VEGA_ENCRYPTION_KEY_BASE64 환경 변수로 설정된 값을 평문 그대로 encryption key로 사용합니다. (권장하지 않음)
VEGA_DECRYPT_API_ENDPOINT 환경 변수를 설정하면, Enclave 서버 부팅 시 해당 API를 호출할 때 VEGA_ENCRYPTION_KEY_BASE64로 입력된 값을 request body로 넘겨줍니다. 해당 API의 response로 받은 값을 실제 DB의 암호화 키로 사용합니다.
따라서 AWS KMS와 같은 서비스를 사용하는 경우, VEGA_ENCRYPTION_KEY_BASE64를 AWS ARN으로 설정하고 VEGA_DECRYPT_API_ENDPOINT에는 KMS를 래핑 한 서버를 구현하여 그 엔드포인트를 설정하면 KMS에서 ARN으로 암호화키를 추출하여 사용할 수 있습니다.
Request Body
inputKey
string
true
"Y9uIJCLAkzVi2XYZrUDmBYJp3szXlJIUwfLfbLsVeHU="
VEGA_ENCRYPTION_KEY_BASE64 환경 변수로 입력된 값.
base64로 인코딩된 값.
Response Body
outputKey
string
true
"d0odhtb/jD9qWWTA59koPGgw2jj0ptov56A3b3dfohY="
inputKey를 복호화 한 값을 base64로 인코딩하여 반환합니다.
Last updated