Yeonnnnny

[TIL] Git - 민감 정보 관리 본문

TIL

[TIL] Git - 민감 정보 관리

yeonny_do 2025. 2. 13. 12:43

혼자 작은 프로젝트를 만들어보거나 강의를 들으며 실습을 할 떄 해당 프로젝트의 git repository를 private으로 설정해서, 프로젝트관련 모든 파일들을 push 해놓았다.

이러한 경우, private을 public으로 변경하게되면  DB관련 정보 등 민감한 정보가 유출될 수 있다 !!

그래서 git에 commit할 때 민감 정보와 관련된 파일들이 포함되지 않도록하는 방법을 적용해보고자 한다 !!

 

 

 

먼저, 민감 정보가 들어가 있는 파일들이 이미 올라가 있다면, 먼저 해당 파일들을 원격저장소에서 제거해야 한다.

 

민잠 정보가 가득 담긴 appilcation.properties 파일을 제거해보자 ! ㅎ.ㅎ


✅ 기존에 Git에 올라간 application.properties 파일을 원격 저장소에서 제거하는 방법

 

.gitignore에 추가했다고 해도, 이미 Git에 올라간 파일은 자동으로 제거되지 않는다.. 기존에 원격 저장소에서 수동으로 제거해줘야 한다 🥲

 

1. Git 캐시에서 제거

git rm --cached [제거하고자 하는 파일 경로]

 

--cached 명령어는 로컬 파일은 유지하면서 Git 추적을 중지한다.

 

 

2. 변경 사항 커밋 !

git commit -m "Remove aplication.properties from repository"

 

 

3. 원격 저장소에 반영

git push origin main

 

 

 

application.properties 파일이 사라짐 !! 


🔏민감한 파일 안전하게 관리하는 방법

 

✅ application-secret.yml (application-secret.properties) 파일로 분리

 

(.yml, .properties 파일 각각에 맞게 사용하면 됩니다 ! )

 

📌 application-secret.yml 

spring:
  datasource: 
  	username: mysername
    password: mypassword

 

📌 application-secret.properties

spring.datasource.username=myusername
spring.datasource.password=mypassword

 

 

secret 파일 생성 ! 

 

 

 

📌 .gitignore에 추가

// yml 파일 사용 시
src/main/resources/application-secret.yml

// propertes 파일 사용 시
src/main/resources/application-secret.properties

 

 

.gitignore에 추가 !

 

 

📌 Spring Boot에서 application-secret 불러오기

 

application 파일에서 application-secret을 불러 올 수 있다.

// yml 설정 시
spring:
  profiles:
    include: secret
    
// properties 설정 시
spring.profiles.include=secret

 

 

 

 

모든 파일 수정 후 커밋 > push 해보니

 

 

 

민감 정보가 들어간 application-secret.properties 는 올라가지 않았다 !! 

 

성공 !