<문제 상황>
그냥 평소처럼 로컬환경에서 개발하다가 이런 이메일이 날라왔다. 대충 내용은 이렇다. api key가 유출되었으니, 우리가 그 api키를 무효화시켰고, 새로 api 키를 만들어서 사용하라는 것이다.
<문제 원인 분석 및 해결>
일단 나는 로컬환경에서만 이 api key를 사용하고 있었고, 생성한지도 얼마안 된 key였다. 다른 사람에게 실제로 넘어갔을 염려는 없을 것이라고 판단했다. 그럼 외부에 내 apikey를 저장한 적이 있나 생각해보니... 그런 적 있긴 했었다.
바로 github다. github의 원격 저장소에 apikey가 담긴 javascript파일을 저장한 적이 있는데 푸쉬 시간과 이메일을 받은 시간을 보니 거의 비슷했다. 그래서 검증을 위해 apikey를 빨리 하나 만들어서 push를 해봤다. 얼마 있다가 그 key도 무효화된 것을 확인할 수 있었다.
즉 github내에 openai의 api key를 감지하는 기능이 존재하고 있어서 이 api key를 무효화시킨 것으로 보인다.
어떻게 해결하면 될까?
간단하다. 그냥 api key가 들어간 파일을 github의 원격 저장소에 안 업로드 하면 된다. 정석적인 방법은 이렇다.
- 프로젝트 내에 환경변수 파일을 만든다. (node.js의 경우엔 dotenv패키지를 설치하면 환경변수를 사용하기 편하다. 사용법은 링크 참고.)
- 환경변수 파일에 apikey를 넣고, 코드 파일들에선 이 api key를 환경변수 파일에서 불러 오는 방식으로 사용한다.
- 핵심: 프로젝트에서 git을 사용한다면 .gitignore에 api key가 들어간 환경변수 파일 이름을 적어서 git에서 제외시킨다.
오늘도 문제 해결 끝!
'잡다한 문제 해결' 카테고리의 다른 글
한 프로세스가 여러 개의 포트와 동시연결될 수 있을까? (0) | 2023.06.09 |
---|---|
Window OS에서 자동으로 commit을 하도록 예약하고 싶어요 (1) | 2023.05.22 |
티스토리에서 자꾸 502 bad gateway 에러가 나요 (0) | 2023.05.16 |