티스토리 뷰

728x90
하루종일 삽질을 하면서 나 같은 사람이 있을 거라는 생각이 들어 글을 작성하게 되었다.

 

글에 들어가기 전 참고용

 

구성할 환경: 로컬/개발

서버: AWS EC2 1개 개발서버용 (백엔드, 프런트)

DB: H2(로컬) AWS RDS(개발)

CI/CD: 깃허브액션

회원가입: JWT


CI/CD는 깃허브액션을 사용했고, 회원가입 부분에서 JWT를 이용해 application-oauth.yml에서 시크릿 키들을 정의했다.

ssh에 접속해서  resources/ 경로에 vim 명령어를 통해 application-oauth.yml를 생성 및 키 값들을 포함한 내용 작성을 해주었다.

nohup java -jar. jar --spring.profiles.active=dev & 명령어를 통해 백엔드를 배포할 때 application-oauth.yml를 찾지 못한다는 에러를 마주했다.

 

application-oauth.yml를 왜 찾지 못할까? 

그리고 어떻게 하면 application-oauth.yml를 포함하여 빌드와 배포를 할 수 있을까에 대한 글이다.

 

application-oauth.yml

1. application-oauth.yml를 왜 찾지 못할까? 


깃허브액션 빌드 과정 살펴보기

먼저 나는 백엔드(스프링부트) 코드들을 개발(release브런치) 환경에 푸시할 경우 깃허브액션을 이용했다. 

나의 경우 아래의 과정을 거친다.

[release브런치 push - 깃허브액션 실행 - gradle.build -S3... 등등]

위의 과정이 끝나면

ssh로 접속해서 파일과 코드들이 업데이트되고  nohup java -jar. jar --spring.profiles.active=dev & 명령어를 통해 배포를 했다.

하지만 깃허브 액션build with Gradle 과정에서 깃허브에 application-oauth.yml이 없으므로 빌드시 application-oauth.yml를 빼고 jar파일을 만들었다.!!! 내가 ssh서버에 접속해서 application-oauth.yml를 만들어줬다 한들 build시 application-oauth.yml를 빼고 build를 했던 것이다.

 

이 문제를 해결하기 위해 application-oauth.yml를 깃허브에 포함해줘야 했다.

 

 

2. application-oauth.yml를 . gitIgnore에 등록하지않고 보안을 유지하는 방법


⭐️ 깃허브 시크릿 키 이용하기

.gitIgnore에 파일 혹은 폴더를 등록하면 깃허브에 등록되지 않는다.

보통 oauth와 같은 보안, 시크릿키등 외부에 노출되면 안 되는 파일/폴더를 등록한다.

 

하지만 여기서는. gitIgnore에 application-oauth.yml를 포함하지 않는다.

그리고 application-oauth.yml의 정보를 깃허브 Secrets - Actions에 정의한다.

 

1. 깃허브 Secrets - Actions 등록

application-oauth.yml

2. 깃허브 액션을 정의한 release.yml파일에 시크릿키 환경변수로 값 받기

[release.yml]

1차 주입!! 여기서는 ${{secrets. 키값}} 을 사용한다.

 

3. 깃허브 액션을 정의한 application-oauth.yml에 파일에 환경변수로 값 받기

[application-oauth.yml]

- release.yml에서 주입된 값을  application-oauth.yml의 ${release.yml 상수값}으로 전달받는다. 

즉 깃허브 시크릿 키 -> release.yml -> application-oauth.yml 이런식으로 주입이 된다.

 

이 방법을 통해 

깃허브에 application-oauth.yml이 등록되지 않아 보안문제를 해결하였고,

정상적인 깃허브액션 빌드와 배포가 실행되었다. 

 

 

 

* 이 문제를 해결하기 위해 구글링, openAI에 질문했는데 정확한 답을 얻지 못했습니다.

더 나은 방법이 있다면 피드백 부탁드립니다 감사합니다.

728x90
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday