인프런 커뮤니티 질문&답변

java_oop님의 프로필 이미지
java_oop

작성한 질문수

스프링 부트 개념과 활용

스프링 데이터 3부: MySQL

데이터베이스 정보 같은 보안에 중요한 값들은 어떻게 처리해야 하나요>?

작성

·

436

1

질문이 있습니다. local, dev, prod

이렇게 서버를 구성하는 경우가 많은데

properties 구성도

properties.local, properties.dev, properties.prod

이렇게 3 개를 구성해서 사용하고 있는데요. 그런데 데이터베이스 접속 정보, 각종 시크릿키 들 같은 경우에는 properties 파일에서 구성을 하면 굉장히 안좋을 거같은데요

저런 민감한 소스코드에서 다루면 안좋을거 같은데 저런 정보들은 어떻게 properties 에서 관리하나요?

만약 properties에서 관리 대상이 아니면 어디서 어떻게 관리해야 할까요 ?

답변 2

3

백기선님의 프로필 이미지
백기선
지식공유자

좋은 질문 주셔서 감사합니다. 여러 방법이 있을 수 있는데, 그런 정보를 지금처럼 properties에 넣어서 쓰시지만, prod 용 프로퍼티 파일은 버전관리에서 빼고, prod 서버에서 만들어 제공하는 방법도 있을 수 있겠구요.

또는 아에 프로퍼티 파일에서 해당 정보는 빼고, prod에서 서버를 띄울 때 해당 서버의 환경 변수에 그 값들을 넣어두면 스프링 부트는 그걸 더 높은 우선 순위로 여겨 그 값을 사용할테니 그것도 역시 또 다른 방법이 될 수 이습니다.

또는 spring cloud config라는 걸 이용해서 설정값들을 원격으로 관리하는 방법이 있고요.

이상적으로는 spring (cloud) vault라고 시크릿 저장소를 이용하는 방법이 있습니다. spring config랑 spring vault는 대신 좀 더 학습이 필요하겠죠.

감사합니다.

1

java_oop님의 프로필 이미지
java_oop
질문자

많은 대안을 알려주신 점 감사합니다.

가장 쉽게 적용할 수 있는 부분이 서버 환경변수 설정이겠네요.

그래도 cloud config 라는 키워드도 한번 알아보겠습니다. 친절한 답변 감사합니다.

java_oop님의 프로필 이미지
java_oop

작성한 질문수

질문하기