해당 글에서는 public Repository 내에 민감한 API 키가 올라간 경우 해당 내용을 없애는 방법에 대해 확인해 봅니다.
1) API 키 노출 상황
1. GitGuardian - OpenAI API Key exposed on GitHub
💡 문제 상황 - GitGuardian으로부터 아래와 같은 메시지가 왔습니다. - 내용은 'OpenAI API Key exposed on GitHub'이라고 이야기하고 있습니다. 말 그대로 multi-flex-chatgpt 레포지토리의 OpenAI API 키가 노출되었다는 이야기입니다.
2. 노출된 파일 확인
💡 노출된 파일 확인 - 문제가 되는 파일은 존재하지 않았습니다.
- 그렇다면 의심해 볼 부분은 이전에 Git Remote 저장소에 키 값이 저장되었다가 이후 다시 Git Remote로 Commit & Push를 통해 해당 내용이 덮어져서 현재 파일에서는 보이지 않을까 라는 의심을 하게 됩니다.
3. Git History 확인
💡Git History 확인
- 해당 문제에 대해 이전부터 Repository를 private로 사용하고 있다가 최근에 public으로 수정을 하였습니다.
- Private Repository에서는 문제가 되지 않지만 Public Repository 내에서는 노출이 되어 발생한 문제고, Git Hisotry 내에도 남아있기에 해당 문제가 발생됨을 확인하였습니다.
2) 해결방법
1. git filter-branch 명령어를 수행합니다.
💡 git filter-branch 명령어를 수행합니다. - 이는 Git 저장소의 모든 커밋에 대해 필터링 작업을 수행하여 특정 파일의 Git의 히스토리를 '모두 삭제'하는 역할을 수행합니다.
💡 아래의 명령어를 설명합니다. - Git 저장소에서 특정 파일을 제거하는 데 사용됩니다.