안녕하세요 오늘은 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 파일을 설정했습니다. 이렇게 함으로써 민감한 정보가 보호되고, 애플리케이션 보안을 강화할 수 있습니다.
감사합니다~!😊
'Backend > 🌿Spring' 카테고리의 다른 글
[JPA] 의존 관계에 있는 연관된 데이터 삭제 처리: Spring과 JPA 및 Query (0) | 2024.01.20 |
---|---|
[SpringBoot/Error] Required URI template variable 'id' for method parameter type int is not present 해결 (0) | 2024.01.19 |
[Spring] 좋은 객체 지향 설계의 5가지 원칙 (SOLID) (2) | 2023.10.11 |
[SpringBoot] mysql 연동하는 방법 (1) | 2023.05.25 |
[SpringBoot/Error] version 3.0 OAuth2.0 카카오 로그인 오류 (2) | 2023.05.24 |