Rotation 은 응급 아니고 discipline
한 번도 rotation 안 한 secret 은 rotation 할 수 없는 secret 이야. 처음 시도할 때 까먹은 통합 셋, 옛 값 쓰는 예약 job 둘, 5 개월 전 같은 키 박힌 Vercel environment 발견할 거야. 불 안 났을 때 연습.
유형별 rotation 주기
- OIDC token — 자동, ~1 시간. 생각 안 해도 됨.
- 장기 API key (OpenAI, Anthropic, Stripe) — 분기, 또는 접근 있는 계약자/직원 떠날 때.
- SSH deploy key — 연간, 또는 노트북 분실 시.
- DB 비밀번호 — 사건 시 또는 분기.
- GitHub PAT — fine-grained token / GitHub App 으로 단계적 폐지; fine-grained 는 분기 rotation.
Rotation 절차
- Provider UI 에서 새 값 생성.
- 새 secret 이름으로 저장 (예:
API_KEY_V2) — 기존 거 옆에. - Workflow / 앱 설정을 V2 사용으로 업데이트.
- V2 가 production 에서 최소 한 full traffic cycle 동안 사용되는지 확인.
- Provider 에서 옛 값 무효화.
- GitHub 에서 옛 secret 이름 삭제.
이 패턴 (overlap rotation) 이 새 키에 typo 있고 prod 깜깜해지는 위험한 단일 컷오버 회피.