Spring Cloud로 개발하는 MSA/설정 정보의 암호화 처리

대칭키를 이용한 암호화

webmaster 2022. 2. 5. 11:20
728x90
  • Encryption : 암호화, Decryption : 복호화
  • 암호화할 때 사용하는 키와 복호화 키를 같이 사용하는 것을 대칭키, 다르게 사용하는 것을 비대칭키라고 한다.
  • 암호화를 한상태로 속성값을 저장을 한 뒤 실제 사용할 때 복호화를 해서 사용할 것이다.

대칭키를 이용한 암호화

  • User MSA의 Application.yml에 DB설정 정보를 config 서버 yml 파일로 옮길 것이다.
  • User MSA의 DB설정에 암호 같은 경우 노출되지 않도록 암호화시켜 저장해야 한다.
    • 저장 시점에는 암호화된 상태, 사용 시점에 복호화된 상태로 사용해야 한다.
    • 암호화된 데이터가 실제 데이터와 다르다는 것을 구분해 주기 위해 { cipher }를 앞에 두어 암호화된 데이터를 표기해 준다.
  • BootStrap 의존성 추가
    • configServer의 Pom.xml
  • BootStrap.yml 파일 생성
    • configServer의 bootstrap.yml
    • 암호화되는지 확인(PostMan)
    • 해당 URL의 Body에 암호화할 Data를 주게된다면, 데이터가 암호화 된다.
    • 해당 URL의 Body에 암호화된 Data를 주게된다면, 데이터를 복호화 해준다.
  • UserService의 DB 관련 설정을 ConfigServer의 UserService.yml 파일을 읽어 설정하도록 한다.
    • configServer의 userService.yml
       
      • password에 실제 데이터가 아닌 데이터를 암호화시켜 저장한다. 
    • UserService의 Bootstrap.yml 파일에서 user-service와 configServer설정을 한다.

 

728x90