KMS 공급자 마이그레이션

KMS 공급자 마이그레이션

Boundary 컨트롤러를 구성할 때 KMS 공급자를 선택해야 해요. Boundary는 AWS KMS, Azure Key Vault, GCP Cloud KMS, IBM Vault를 포함한 다양한 KMS 공급자를 지원해요. KMS 공급자는 Boundary 내부의 다양한 암호화 작업에 사용되는 키의 신뢰의 뿌리(root of trust)예요. 예를 들어 Boundary 데이터베이스에 저장된 민감/비밀 데이터를 암호화하거나, KMS 워커를 컨트롤러에 인증하는 데 사용되는 데이터를 암호화하는 데 쓰이죠.

출처: HashiCorp Boundary docs

본문

한 KMS 공급자에서 다른 공급자로 마이그레이션하는 데는 여러 이유가 있을 수 있어요. 예를 들어 더 이상 사용하고 싶지 않은 계정에 현재 KMS 구성을 설정했거나, IBM Vault 같은 새 KMS 공급자로 마이그레이션하려는 경우가 있죠.

다음 단계를 완료해서 KMS 공급자를 마이그레이션해요.

  1. Boundary 구성 파일의 기존 KMS 스탠자에서 purpose를 previous-root로 업데이트해요.

현재 예시 구성:

kms "aead" {
  purpose   = "root"
  aead_type = "aes-gcm"
  key       = "sP1fnF5Xz85RrXyELHFeZg9Ad2qt4Z4bgNHVGtD6ung="
  key_id    = "global_root"
}

업데이트된 예시 구성:

kms "aead" {
  purpose   = "previous-root"
  aead_type = "aes-gcm"
  key       = "sP1fnF5Xz85RrXyELHFeZg9Ad2qt4Z4bgNHVGtD6ung="
  key_id    = "global_root"
}
  1. 새 KMS 공급자 구성으로 Boundary 구성 파일에 새 KMS 스탠자를 추가해요.

예시 구성:

kms "aead" {
  purpose   = "root"
  aead_type = "aes-gcm"
  key       = "sP1fnF5Xz85RrXyELHFeZg9Ad2qt4Z4bgNHVGtD6ung="
  key_id    = "new_global_root"
}
  1. 업데이트된 구성 파일로 Boundary 컨트롤러를 다시 시작해요.
$ sudo systemctl restart boundary
  1. 새 KMS 공급자를 사용해서 키를 회전하고 다시 래핑해요.
$ boundary scopes rotate-keys -scope-id global -rewrap \
    boundary scopes rotate-keys -scope-id o_B4jfDjZ9jf -rewrap \
    boundary scopes rotate-keys -scope-id p_A4jfDjZ9jf -rewrap
  1. Boundary 컨트롤러 로그에 복호화 오류가 없는지 확인해요.
  2. Boundary 구성 파일에서 previous-root KMS 스탠자를 제거하고 Boundary를 다시 시작해요.

추가 자료 (Additional resources)

더 알아보기 (Learn more)