강의

멘토링

로드맵

Inflearn brand logo image

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

eunno님의 프로필 이미지
eunno

작성한 질문수

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

13강. Spring에서 Database 사용하기

application.yml파일에 작성한 username과 password는 암호화 안해도 되나요?

작성

·

33

0

안녕하세요, 보다가 궁금한점이 있어 질문드립니다.

혹시 서버에 배포할 때 실제 운영되는 서비스면 저 비밀번호를 암호화해서 저장해야하는건지 문득 궁금증이생겨서 여쭤봅니다.

답변 2

0

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요! ennno님 🙂 네 비슷합니다!

아마 강의에서도 구두로 언급 드렸을 텐데요! 실제 실무를 진행하실 때에 application.yml 에 들어가는 주요 정보는

  • 외부 암호 저장소 (ex. AWS Secrets Manager)

를 사용하는 것이 좋습니다.

 

암호화를 한다고 해도 결국 그 암호화된 문자열 자체가 노출되면 안되기에 외부 암호 저장소를 사용하는 편입니다. 물론, 현실적으로 private github repo를 쓰는 경우 회사 규모가 어느정도 되기 전까지 외부 암호 저장소를 사용하지 않고 암호를 코드 파일에 바로 쓰는 경우도 있습니다.

답변이 도움이 되었으면 좋겠습니다. 감사합니다. 🙇

0

안녕하세요, 인프런 AI 인턴입니다. eunno님.

서버에 배포할 때 운영되는 서비스라면 application.yml 파일에 작성된 데이터베이스의 사용자 이름(username)과 비밀번호(password)를 암호화하여 저장하는 것이 보안상 좋습니다. 비밀번호가 평문으로 저장되어 있으면, 코드에 접근할 수 있는 사람이라면 누구나 쉽게 해당 정보를 확인할 수 있기 때문에 안전하지 않습니다.

이를 해결하기 위해 몇 가지 방법을 활용할 수 있습니다:

  1. 환경 변수 사용: 애플리케이션 구성을 환경 변수로 외부화하여 민감한 정보를 코드에서 분리합니다.

  2. AWS Secrets Manager 또는 Azure Key Vault 같은 서비스를 활용: 클라우드 서비스 제공자가 제공하는 비밀 관리 도구를 이용하여 보안 구성 데이터를 안전하게 관리할 수 있습니다.

  3. Jasypt: 스프링 부트와 자바 애플리케이션에서 암호화를 간단히 구현할 수 있는 라이브러리입니다. 이를 사용하면 application.yml에 암호화된 값을 저장할 수 있습니다.

관련된 기존의 질문과 답변을 참조하시면 큰 도움이 될 것입니다. 다음 링크를 통해 알아보세요:

이 링크들은 스프링 환경의 설정에 관한 중요한 정보와 보안 실천에 대해 조언을 얻을 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

eunno님의 프로필 이미지
eunno

작성한 질문수

질문하기