이유
💬 Jenkins에서 자동 빌드 및 배포를 위해서 Git Repository에 Application.properties 파일이 포함되어야 했다. 그런데 DB, S3 등 중요한 정보가 담겨 있어서 문제가 되었다. 이걸 해결하기 위해 별도 Private Repository를 만들어 배포 코드 Repository의 Submodule로 사용하기로 했다.
Submodule 적용하기
✔ 진행
1. Private Git Repository 생성
2. Application Repository에서 submodule 추가
➡ git submodule add https://github.com/mini-project-evey-team/four-cuts-backend-security.git
3. application.properties 파일을 submodule 폴더로 이동
➡ mv ./src/main/resources/application.propety ./for-cut-backend-security
4. build시 application.properties 복사하도록 설정
➡ build.gradle에 추가
5.. gitIgnore에 application.properties를 추가
6. git application.properties에 관련 캐시 삭제
➡ git rm -r --cached ./src/main/resources/application.properties
7. git commit & push
➡ git add .
➡ git commit -m "chore: set submodule"
➡ git push --recurse-submodules=on-demand
✔ build.gradle 설정 추가
processResources.dependsOn('securityInfo')
task securityInfo(type: Copy) {
from './four-cuts-backend-security'
include '*.properties'
into './src/main/resources'
}
✔ 결과
생각
보안은 항상 중요하다. 하지만 너무나도 지나치기 쉬운 것 같다. Git에 중요한 정보들을 담은 것처럼 말이다. 사후 처리를 하더라도 커밋 내용이 남기 때문에 완벽한 처리로는 볼 수 없다. 이번 기회를 통해 이러한 경각심을 일깨우고 다음 실전 프로젝트부터는 처음부터 적용함으로 정보 보안을 더 철저히 해야겠다.
'개발일지 > TIL' 카테고리의 다른 글
[230721] [클론] Lifegram S.A (0) | 2023.07.21 |
---|---|
[230720] [미니] 모여봐요 인생네컷 Jenkins Git Submodule Clone 문제 (0) | 2023.07.20 |
[230718] [미니] 모여봐요 인생네컷 HTTPS 설정 (0) | 2023.07.18 |
[230717] [미니] 모여봐요 인생네컷 CI/CD 구성 (3) (0) | 2023.07.17 |
[230716] [미니] 모여봐요 인생네컷 CI/CD 구성 (2) (0) | 2023.07.16 |