더북(TheBook)

3.4.2 암호화 키 설정

JAR 파일이 준비되면 대칭 암호화 키를 설정해야 한다. 대칭 암호화 키는 암호자가 값을 암호화하고 복호자가 복호화하는 데 사용하는 공유된 비밀 키에 불과하다. 스프링 클라우드 컨피그 서버에서 사용되는 대칭 암호화 키는 ENCRYPT_KEY라는 운영 체제의 환경 변수를 사용해 서비스에 전달되는 선택된 문자열이다. 책의 목적상 ENCRYPT_KEY 환경 변수를 항상 다음과 같이 설정한다.

export ENCRYPT_KEY=IMSYMMETRIC


대칭 키에 대해 다음 두 가지를 유의한다.

1. 대칭 키의 길이는 12자 이상이어야 하며, 불규칙 문자열이 이상적이다.

2. 대칭 키를 분실하면 안 된다. 암호화 키로 한번 암호화한 것은 그 키 없이는 복호화할 수 없다.

Note 암호화 키 관리

책의 목적상 필자는 일반적으로 운영 환경의 배포에 권장되지 않는 두 가지 행동을 했다.

암호화 키를 문구로 설정했다. 기억하고 읽기 쉽도록 단순한 키를 사용했다. 실제 배포에서는 환경별로 다른 암호화 키를 사용하고 무작위 문자를 키로 사용했다.

• 책의 도커 파일에 ENCRYPT_KEY 환경 변수를 하드 코딩했다. 독자가 파일을 내려받고 환경 변수를 설정하는 데 신경 쓰지 않고 시작할 수 있도록 하기 위해서다. 실제 런타임 환경에서는 Dockerfile 안에서 운영 체제의 환경 변수로 ENCRYPT_KEY를 참조할 것이다. 이 사실을 유념해서 암호화 키를 Dockerfile 안에 하드 코딩하지 말자. 그리고 Dockerfile도 소스 버전도 관리되어야 한다는 것을 기억한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.