실수로 API 키를 Git에 커밋해버렸습니다. 이미 push한 상태인데 어떻게 해야 하나요?
즉시 해야 할 것:
# 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 .envbfg --replace-text passwords.txt# 강제 푸시git push --force --all
예방:
.gitignore
GitHub은 push된 내용을 캐시하므로, 히스토리를 지워도 일정 기간 접근 가능합니다. 키 재발급이 최우선입니다.
git-secrets 설정:
# 설치brew install git-secrets # macOS# 또는git clone https://github.com/awslabs/git-secretscd git-secrets && make install# 프로젝트에 적용cd your-repogit secrets --install# AWS 키 패턴 추가git secrets --register-aws# 커스텀 패턴 추가git secrets --add 'password\s*=\s*.+'git secrets --add 'PRIVATE.KEY'# 기존 히스토리 스캔git secrets --scan-history
설치 후에는 커밋할 때 자동으로 검사됩니다. AWS 패턴은 기본 제공되고, 커스텀 패턴을 추가할 수 있습니다.
댓글 4
즉시 해야 할 것:
예방:
.gitignore에 .env, *.key, credentials.* 추가GitHub은 push된 내용을 캐시하므로, 히스토리를 지워도 일정 기간 접근 가능합니다. 키 재발급이 최우선입니다.
git-secrets 설정:
설치 후에는 커밋할 때 자동으로 검사됩니다. AWS 패턴은 기본 제공되고, 커스텀 패턴을 추가할 수 있습니다.