KEK 회전

KEK 회전 (Rotate KEK)

vault-kube-kms가 사용하는 KEK를 재시작 없이 회전하는 방법을 설명합니다.

출처: 문서

본문

베타 기능이에요. 베타 기능은 안정적이지만 아직 불완전할 수 있고 변경될 수 있어요. 프로덕션 Vault 배포에 베타 기능을 쓰는 것은 권장하지 않습니다.

vault-kube-kms 프로세스나 쿠버네티스 API 서버를 재시작하지 않고 Vault에서 KEK(키 암호화 키)를 회전할 수 있어요. 회전 과정에서 vault-kube-kms 프로세스는 새 Transit 키 버전을 감지했다는 로그 항목과 함께, 그 새 키 버전으로 암호화한 결과를 남깁니다.

최소 버전 변경은 신중히 하세요. Transit 플러그인의 min_decryption_version을 바꾸면 쿠버네티스가 이전 키 버전으로 암호화된 데이터를 읽지 못할 수 있어요. 항상 min_decryption_version에 쿠버네티스 클러스터가 현재 사용 중인 가장 오래된 키 버전도 포함되도록 해 주세요.

KEK를 회전하려면 vault-kube-kms 프로세스에 설정된 키 이름으로 Transit rotate 엔드포인트를 호출해요.

$ vault write -f <MOUNT>/keys/<KEY_NAME>/rotate

예를 들어 다음과 같이 호출해요.

$ vault write -f k8s-transit/keys/kms-kek/rotate

Vault는 이전 버전을 복호화용으로 유지하면서 키의 새 버전을 만들어요. Vault에서 키를 회전하면:

  1. vault-kube-kms 프로세스가 새 Transit 키 버전을 자동으로 감지해요.
  2. 회전 후 몇 분 안에 vault-kube-kms 프로세스가 암호화에 쓰는 활성 키 버전을 갱신해요.
  3. 쿠버네티스 API 서버가 최신 키 버전으로 새 DEK(데이터 암호화 키)를 암호화해요. 타이밍에 대한 자세한 내용은 쿠버네티스 문서 Understanding key_id and Key Rotation을 참고하세요.
  4. 기존에 암호화된 DEK는 이전 키 버전으로 계속 복호화할 수 있어요.

더 알아보기 (Learn more)