firebase token key git secret 으로 관리하기

다곰·2023년 8월 4일
0

firebase 알람 기능 백엔드 구축을 위해 firebase token key file을 폴더에 위치시켜야 한다.
firebase token key 파일은 json 형식이고 파일에서 필요한 정보를 뽑아낼 때, InputStream 형으로 변환하여 뽑아낸다.

firebase key를 secret으로 관리하기 위해 두가지 방법을 시도하였다.

1. 특정 private key 만 secret으로 관리하기

처음에는 private한 key만 secret에 등록해서 json 파일에 주입하고자 하였다.
다른 secret들은 java 파일에서 쓰이기 때문에 application.yml 에 등록한 이후 Value 어노테이션으로 주입하면 secret을 코드 내에 주입할 수 있지만 json 에는 주입이 불가능했다.
이를 해결하기 위해, json 파일에서 secret을 주입할 부분은 빈 문자열로 남겨두고 firebase token을 뽑아내는 code 이전에 FileReader, FileWriter 로 secret을 json 에 세팅하였다.

🚨 문제점

이 방법으로 구현할 경우, 로컬에서는 잘 돌아가지만 배포할 경우에 FileReaderFileWriter 는 File 경로로 절대 경로를 요구하기 때문에 로컬에서의 절대경로와 배포환경에서의 절대경로가 달라 error가 발생한다.
상대경로를 취득하기 위한 방법도 code가 복잡해져서 2개의 secret 때문에 파일을 계속 읽고 쓰고 하는 과정을 반복하는 것이 비효율적인 것 같다고 판단했다.

2. token 전체를 secret으로 관리하기

두번째 방법은 json 파일의 firebase token json 객체 전체를 String 으로 secret에 저장하는 방법이다.
firebase token key 파일에서 필요한 정보를 뽑아낼 때, InputStream 형으로 변환하여 뽑아내기 때문에 firebase token이 필요한 부분에 secret을 InputStream 으로 변환하여 사용한다.
이 방법도 비효율적일 수 있지만 json 파일을 가져와서 사용하는 code가 한 번 뿐이고 firebase key 자체도 길지 않아서 시도해볼만 했다. 또한 private한 key 이외에 다른 key 들도 개인정보이긴 하기 때문에 함께 보안을 유지하는 것도 나쁘지 않다고 생각했다.

추가적으로 시도해볼 수 있는 방법

내 경우와 달리, json 파일이 여러 개이고 파일이 크다면 String 으로 변환해서 secret을 관리하기보다 배포하면서 파일을 생성해줄 수 있도록 구현하는 방법을 시도해볼 수 있다.

⭐️ create-json

profile
다교미의 불꽃 에러 정복기

0개의 댓글