본문 바로가기
Q&A2021년 5월 20일1분 읽기

Git에서 민감 정보가 유출됐을 때 대처법

문
문성민
조회 925댓글 4

실수로 API 키를 Git에 커밋해버렸습니다. 이미 push한 상태인데 어떻게 해야 하나요?

댓글 4

김김영삼5년 전

즉시 해야 할 것:

  1. 키 무효화/재발급 — 가장 먼저! Git에서 지워도 이미 노출됨
  2. 히스토리에서 제거
# git filter-branch (레거시)
git filter-branch --force --index-filter \
"git rm --cached --ignore-unmatch path/to/secret" \
--prune-empty --tag-name-filter cat -- --all

# BFG Repo-Cleaner (더 빠르고 간편)
bfg --delete-files .env
bfg --replace-text passwords.txt

# 강제 푸시
git push --force --all

예방:

  • .gitignore에 .env, *.key, credentials.* 추가
  • git-secrets 도구로 커밋 전 자동 검사
  • pre-commit hook으로 비밀번호 패턴 차단

GitHub은 push된 내용을 캐시하므로, 히스토리를 지워도 일정 기간 접근 가능합니다. 키 재발급이 최우선입니다.

한한동욱(guest)5년 전
git-secrets 설치하고 사용하는 방법을 알려주세요.
양양수진(guest)5년 전
많이 배웠습니다. 감사해요.
김김영삼5년 전

git-secrets 설정:

# 설치
brew install git-secrets # macOS
# 또는
git clone https://github.com/awslabs/git-secrets
cd git-secrets && make install

# 프로젝트에 적용
cd your-repo
git secrets --install

# AWS 키 패턴 추가
git secrets --register-aws

# 커스텀 패턴 추가
git secrets --add 'password\s*=\s*.+'
git secrets --add 'PRIVATE.KEY'

# 기존 히스토리 스캔
git secrets --scan-history

설치 후에는 커밋할 때 자동으로 검사됩니다. AWS 패턴은 기본 제공되고, 커스텀 패턴을 추가할 수 있습니다.

Ctrl+Enter로 등록