CI/CD - 감추고 싶은 파일

김형준 Kim Hyeong Jun·2022년 12월 27일
0

AWS 가 제공하는 기능이나, Jwt 가 제공하는 기능들을 사용하게 되면, 외부에 노출이 되면 안되는 민감한 정보들이 분명히 생기게 된다.

예를 들어 아래와 같이 Jwt 토큰을 생성에 관여하는 ScretKey 는 외부에 노출되지 않도록 관리되어야 한다.

그래서 원래는 위와같이 .gitignore 파일을 통해 Git 에서 관리하지 않을 파일을 지정해주는 방식을 사용했다.

직접 빌드를 돌려 jar 파일을 만들어 fileZilla 에 올려주었기 때문에 문제가 되지 않았다.

하지만 Git-Actions 를 통한 CI/CD 를 사용하고 있는 중에 알게된 사실

깃 허브에 올라와 있는 파일들을 토대로 서버를 구동시킨다. (아마 깃 허브에 올라온 파일들을 알아서 서버 컴퓨터에 띄워주는 것으로 보인다.)

그래서 당연히 .gitignore 로 업로드를 막아 놓은 파일들을 사용하지 못하게 되었던 것.

🧐 그래서 어떻게 해결해야돼?

깃 허브 레포지토리 셋팅에 들어가서, 좌측 하단에 Screts -> Actions 로 접근하면 위와 같은 창을 만날 수 있다.
이 곳을 통해 우리는 깃 허브에게

~ 파일은 암호화해서 시크릿 파일으로 관리할거야!!!

라고 알려줄 수 있다.

✏️ 방식은 아래와 같다.

일단 .yml 파일로 들어가 위와 같은 형태로 비밀 문서 설정을 해줄 수 있다.
각 줄에 대해 세세한 내용은 더 공부를 해봐야할 것 같다.

일단 42 열에서는 암호화를 할 파일의 경로를, 그리고 43 열에는 암화호를 할 파일의 원본명을 적어주면 된다. (확장자까지!!!)
또 44 열에 OCCUPY_SECRET1 이 내가 만든 시크릿 파일의 이름이라는 것과,
그리고 해당 파일은 base64 로 인코딩되어 있으니, 디코딩도 base64 로 진행해야한다는 정보가 담겨 있다.
이하의 내용은 파일로의 접근 경로를 보여주는 것으로 보인다.

.yml 파일 설정을 해주고 암호화할 파일의 내용을 base64 알고리즘을 통해 인코딩을 해주면된다.
(https://www.convertstring.com/ko/EncodeDecode/Base64Encode)

위의 과정들이 끝나면 이제 깃 허브 브라우저로 돌아가자.

본문에서 다뤘던 첫 페이지에서 New Repository Secret 버튼을 클릭하면 위와 같은 화면이 나온다.

Name : yml 파일에서 지어준 시크릿 파일의 이름
Secret : base64 로 인코딩한 암호화 파일의 내용

을 담고 Add secret 버튼을 클릭하면 완료다!

이렇게 하면 깃 허브 레포지토리에는 파일이 올라가지 않는다.
하지만 내부적(?)으로 AWS 서버에는 파일을 올려주는 것으로 보인다!
따라서 다른 사람들이 볼 수 없도록 특정 정보를 관리할 수 있고, 서버도 정상적으로 작동시킬 수 있다!!!

profile
I want be a developer🙂

0개의 댓글