비밀번호 하나를 코드에 박아두는 일은 쉽다. DB_PASSWORD = "supersecret" 한 줄이면 동작한다. 그런데 그 한 줄이 Git 히스토리에 남고, 수십 명의 개발자가 클론하고, CI 로그에 찍히고, 백업 디스크에 복제되는 순간 그 비밀번호는 더 이상 비밀이 아니다. 게다가 비밀번호는 한 번 정하면 영원히 같다. 누군가 그것을 한 번이라도 봤다면, 그 사람이 회사를 떠난 뒤에도 그 비밀번호는 살아 있다. 시크릿 관리라는 분야 전체는 이 두 가지 문제 — "어디에 안전하게 저장할 것인가"와 "어떻게 주기적으로 바꿀 것인가" — 를 다루기 위해 존재한다.
오늘은 AWS의 두 시크릿 저장소 — Parameter Store와 Secrets Manager — 를 본다. 단순히 "둘 중 뭘 쓰나"가 아니라, 왜 시크릿을 회전(rotation)해야 하는지, 회전 중에 어떻게 다운타임 없이 비밀번호를 바꾸는지, AWSCURRENT/AWSPENDING이라는 라벨 두 개가 어떻게 원자적 교체를 보장하는지, 그리고 봉투 암호화(envelope encryption)라는 KMS의 근본 설계가 왜 Cross-Account 공유의 핵심이 되는지를 파고든다. DOP 시험에서 시크릿 관리는 거의 매 회 나오고, "zero-downtime 회전", "Cross-Account 시크릿", "비용 최적화 선택", "회전이 실패했다" 같은 시나리오는 단골이다.