[깃허브] .gitignore 파일로 API key 숨기기

728x90
반응형

.gitignore


: 프로젝트를 개발할 때 필요한 파일 이외의 파일들이 생성되는데, 이 파일들을 git 관리 대상에서 제외하기 위해(commit에 포함되지 않도록, github에 올라가지 않도록) 규칙들을 저장한 파일이다.

 

깃허브에 파일들을 업로드할 때 보안 상의 이유로 올리면 안 되는 파일들이 있다. 예를 들어 API key, secret key 등이 포함된 파일은 올리면 안 된다. 이 key들이 노출되면 해킹을 당할 수 있기 때문에 과금을 물어야할 수도 있다. 이러한 파일을 깃허브에 올리면, 다음과 같이 Git Guardian 한테 경고 알림과 메일이 온다. 이런 경우에는 api key를 따로 다른 파일에 넣고, 그 파일의 경로를 .gitignore 파일에 작성함으로써 api key가 담긴 파일만 깃허브에 올리지 않으면 된다.

 

 

 

.gitignore 파일 생성 방법


프로젝트의 최상위 디렉터리에 .gitignore 이라는 이름으로 파일을 생성한다.

다음의 사이트에서 쉽게 만들 수 있다. 개발하려는 프로젝트에 맞는 '운영체제, 개발환경(IDE), 프로그래밍 언어'를 입력하면 생성이 된다. 그 코드들을 복사해서 .gitignore 파일에 붙여넣어 주면 된다. 

 

gitignore.io

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

.gitignore 파일 안에 해당하는 폴더나 파일들은 추적당하지 않는다.

 

여기서 우리는 추가로 api key가 포함된 파일에서 api key만 분리해서 따로 저장하고, 그 파일을 제외시키려고 한다.

추가로 제외하고 싶은 파일이나 폴더가 있다면 추가로 작성함으로써 제외시킬 수 있다.

# 파일 제외 (파일명.확장자)
파일명.txt
 
# 현재 경로에 있는 파일만 제외 (다른 경로의 동일한 파일명은 추적)
/파일명.txt
 
# 특정 경로안의 특정 파일 제외
폴더명/파일명.txt
 
# 특정 폴더안의 파일 전부 제외
폴더명/
 
# 해당 확장자 파일 전체 제외
*.txt
 
# 예외
!제외할 파일명.txt

 

 

API key 분리하여 제외하기


1. apikey.js 파일(파일 이름은 임의로 지정)을 만들어서 다음과 같이 실제 api key를 작성한다. 

2. apikey를 사용했던 원래 파일에서 api key를 지우고, config의 apikey 변수값을 가져와서 쓴다.

3. weather.js 파일에서 apikey.js 파일의 변수를 가져다 쓰기 위해서는 html 파일에서 apikey.js 파일도 불러와야 한다.

apikey.js 파일과 weather.js 파일은 js라는 폴더 안에 저장했기 때문에 경로를 js/apikey.js 와 같이 작성했다.

html 파일에 불러오기

4. .gitignore 파일에 apikey.js 파일의 경로를 적어준다.

.gitignore 파일에 추가하기

5. 이제 push 해주면, apikey.js 파일을 제외한 파일들만 업로드된다. 만약 API key가 노출된 파일을 이미 커밋한 기록이 있다면, 그 커밋을 삭제해주거나 lock conversation 하여 다른 사용자들이 해당 커밋을 볼 수 없게 해줘야 한다. 

 

 

 

참고) https://parkjye.tistory.com/28

728x90
반응형