값보다 흐름을 먼저 본다

비밀값 관리가 어려운 이유는 값 자체보다 복사본이 늘어나기 때문이다. 어디가 원본인지, 누가 전달하는지, 애플리케이션은 어떤 계약으로 값을 받는지가 흐려지면 교체와 감사가 모두 어려워진다.

원본을 관리하는 책임과 값을 소비하는 책임을 나누면 애플리케이션은 저장 방식의 세부 구현을 몰라도 된다. 운영자는 전달 결과와 교체 이력을 확인하고, 개발자는 필요한 값의 존재와 형식만 계약으로 다룬다.

수명주기의 네 단계

  • 생성 시 소유자와 사용 목적을 정한다
  • 전달 과정에 불필요한 복사본을 만들지 않는다
  • 소비자는 값의 위치가 아니라 계약에 의존한다
  • 교체와 폐기까지 같은 변경으로 추적한다

보안 글의 공개 원칙

공개 문서에는 비밀값의 이름, 저장 위치, 동기화 경로, 권한 주체를 적지 않는다. 대신 단일 원본, 최소 권한, 교체 가능성, 감사 가능성처럼 다른 환경에서도 검토할 수 있는 기준을 설명한다.