Backend/🌿Spring

[Spring Boot] application.yml 내용 secret으로 관리하기

발달중인 망고 2023. 9. 2. 23:42

안녕하세요 오늘은 JAVA언어를 사용하는 Spring Boot 웹프레임워크를 사용하면서 application.yml을 사용하게 되는데요.

여기서 git-hub에 올리면 안 될 민감한 정보를 관리하는 방법을 소개드리도록 하겠습니다.

 

왜 application.yml에서 민감한 정보를 보호해야 할까?

애플리케이션을 개발하다 보면 데이터베이스 비밀번호, API키, 인증 토큰 등과 같은 민감한 정보를 구성파일에 저장해야 할 때가 있습니다. 이러한 정보를 무단으로 액세스 하면 보안 위험에 노출될 수 있으므로, 이러한 정보는 안전하게 관리해야 합니다. 

{예를 들어 GPT api는 git-hub에 올라갔을 때 자체적으로 파기됩니다}

 

민감한 정보의 예시

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: mydb
    password: system
    
chatgpt: //GPT API를 예시로 들겠습니다.
  api-key: abcdefghijklmnopqrstuvwxyz

와 같이 노출이되면 안 되는 정보를 관리하는 여러 방법 중. gitignore를 활용한 방법을 알려드리겠습니다.

 

 

Secret으로 관리

먼저 노출되면 안되는 정보를 관리할 application-secret.yml 파일을 만들어줍니다. 파일이름은 개발자 마음대로 만드시면 됩니다.

이후. gitgnore 페이지에서 application-secret.yml을 등록해 줍니다.

# .gitignore

# application-secret.yml 파일을 무시하도록 설정
/application-secret.yml

혹은

src/main/resources/*.yml
!application.yml

 

이후 application.yml 파일에서 application-secret.yml을 import 해줍니다.

 

application.yml 파일을 사용하면서 민감한 정보를 안전하게 관리하는 방법으로 application-secret.yml 파일을 활용하고, Git을 통해 이 파일이 노출되지 않도록. gitignore 파일을 설정했습니다. 이렇게 함으로써 민감한 정보가 보호되고, 애플리케이션 보안을 강화할 수 있습니다.

 

감사합니다~!😊