본문으로 건너뛰기
Git · GitHub 기초집LESSON 21

보안: .env, API Key, 비밀 정보 유출 대응

난이도입문 → 초급
예상 시간30분
선수지식이전 강의

21강. 보안: .env, API Key, 비밀 정보 유출 대응

1. 이번 강의에서 해결할 문제

API 키를 삭제하는 새 커밋만 만들어도 과거 커밋과 원격 복제본에는 값이 남습니다. 예방 규칙과 실제 유출 시 대응 우선순위를 익힙니다.

2. 학습 목표

3. 핵심 개념

비밀은 저장소가 아니라 로컬 .env, OS 자격 증명 저장소, GitHub Actions Secrets 같은 전용 저장소에 둡니다. 공개 저장소에서 삭제 커밋은 유출 해결이 아닙니다. 가장 먼저 제공자 콘솔에서 키를 폐기·회전해 악용 가능성을 제거해야 합니다.

4. 단계별 명령어와 예시

파일 경로: C:\dev\git-learning-site\.env.example.gitignore

PowerShell
Set-Location C:\dev\git-learning-site
Add-Content .gitignore ".env"
"API_BASE_URL=https://api.example.com`nAPI_KEY=replace-me" | Set-Content -Encoding utf8 .env.example
git check-ignore -v .env
git status --short
git add .gitignore .env.example
git diff --staged
git commit -m "security: document environment variables safely"

유출을 발견했을 때 순서:

  1. 해당 API 제공자에서 키를 즉시 폐기하고 새 키를 발급합니다.
  2. 노출 범위, 시간, 사용 로그를 확인하고 관계자에게 알립니다.
  3. .gitignore와 비밀 저장 방식을 고칩니다.
  4. 과거 이력 정리가 필요한지 GitHub 공식 “Removing sensitive data” 절차와 저장소 관리자 정책을 확인합니다.
  5. 이력 재작성은 모든 커밋 ID와 복제본에 영향을 주므로 백업·협업자 공지 후 진행합니다.

5. 명령어가 동작하는 이유

.env.example은 변수 이름과 형식만 공유합니다. staged diff 검토는 push 전에 비밀이 커밋 스냅샷으로 들어가는 것을 막습니다. 키 폐기는 이미 복제되거나 캐시된 값도 더 이상 인증에 쓰이지 못하게 하는 유일한 즉시 조치입니다.

6. 자주 하는 실수와 안전한 해결법

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

보안: .env, API Key, 비밀 정보 유출 대응 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“보안: .env, API Key, 비밀 정보 유출 대응”에서 오류나 데이터 손실을 줄이는 선택은 무엇인가요?
  2. 문제 2“보안: .env, API Key, 비밀 정보 유출 대응”에서 ‘성급한 force push로 이력 정리’ 문제가 생겼습니다. 가장 알맞은 진단 또는 대응은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

21강. 보안: .env, API Key, 비밀 정보 유출 대응 미완료 상태