키 관리 시크릿 엔진

키 관리 시크릿 엔진

Enterprise 기능 — 적절한 Vault Enterprise 라이선스 또는 HCP Vault Dedicated 클러스터가 필요해요. 키 관리 시크릿 엔진은 Advanced Data Protection(ADP) 모듈이 포함된 Vault Enterprise가 필요해요.

키 관리 시크릿 엔진은 다양한 키 관리 서비스(KMS) 공급자에서 암호화 키의 배포와 수명주기 관리를 위한 일관된 워크플로를 제공해요. 조직이 KMS 공급자 고유의 암호화 기능을 활용하면서도 Vault에서 키를 중앙 집중식으로 제어할 수 있게 해요.

이 시크릿 엔진은 키 자료의 원본 사본을 생성하고 소유해요. 운영자가 지원되는 KMS 공급자 중 하나에서 키의 수명주기를 배포·관리하기로 결정하면, 키 자료의 사본이 배포돼요. 이렇게 하면 KMS 공급자에서 키의 전체 수명주기에 대한 추가적인 내구성과 재해 복구 수단이 제공돼요.

키 자료는 항상 지원되는 KMS 공급자의 키 가져오기 사양에 따라 안전하게 전송돼요.

참고: Key Management 시크릿 엔진은 외부 플러그인으로 실행할 수 있어요. Vault Enterprise 호환 버전과 Enterprise 플러그인 등록 방법은 Plugin management 페이지의 Enterprise 플러그인 섹션을 참고하세요.

출처: 문서

본문

설정(Setup)

대부분의 시크릿 엔진은 기능을 수행하기 전에 미리 구성해야 해요. 이 단계는 보통 운영자 또는 구성 관리 도구가 수행해요.

키 관리 시크릿 엔진을 활성화해요.

$ vault secrets enable keymgmt
Success! Enabled the keymgmt secrets engine at: keymgmt/

기본적으로 시크릿 엔진은 엔진 이름 그대로의 경로에 마운트돼요. 다른 경로에 두고 싶다면 -path 인자를 사용하면 됩니다.

사용법(Usage)

시크릿 엔진이 마운트되고 사용자/머신이 적절한 권한을 가진 Vault 토큰을 갖고 있으면, 이 시크릿 엔진으로 지원되는 KMS 공급자에서 암호화 키를 생성·배포·수명주기 관리할 수 있어요.

  1. 지정된 유형의 명명된 암호화 키를 만들어요.

    $ vault write -f keymgmt/key/example-key type="rsa-2048"
    Success! Data written to: keymgmt/key/example-key
    

    시크릿 엔진이 만든 키는 KMS 공급자에 배포되기 전까지 범용(general-purpose)으로 간주돼요.

  2. KMS 공급자를 구성해요.

    $ vault write keymgmt/kms/example-kms \
        provider="azurekeyvault" \
        key_collection="keyvault-name" \
        credentials=client_id="a0454cd1-e28e-405e-bc50-7477fa8a00b7" \
        credentials=client_secret="eR%HizuCVEpAKgeaUEx" \
        credentials=tenant_id="cd4bf224-d114-4f96-9bbc-b8f45751c43f"
    

    개념적으로 KMS 공급자 리소스는 키가 배포되고 이후 관리될 대상을 나타내요. 일반적인 파라미터 집합으로 구성되며, 일반 파라미터에 제공되는 값은 지정된 provider에 따라 달라져요. 이 작업은 명명된 Azure Key Vault 인스턴스를 나타내는 KMS 공급자를 만들어요. azurekeyvault 공급자와 다른 공급자별 파라미터 값을 지정해서 이뤄져요. 각 지원 KMS 공급자 구성 방법은 KMS Providers 섹션을 참고하세요.

  3. 키를 KMS 공급자에 배포해요.

    $ vault write keymgmt/kms/example-kms/key/example-key \
        purpose="encrypt,decrypt" \
        protection="hsm"
    

    이 작업은 명명된 키의 사본을 특정 목적(purpose)과 보호 수준(protection)으로 KMS 공급자에 배포해요. purpose는 키가 KMS 공급자에서 가질 암호화 기능의 집합을 정의해요. protection은 키로 암호화 작업이 수행되는 위치를 정의해요. 지원되는 purpose와 protection 값 목록은 API 문서를 참고하세요.

    참고: 키를 KMS 공급자에 배포하는 데 걸리는 시간은 키가 가진 버전 수에 비례해요. 배포 중 타임아웃이 발생하면 VAULT_CLIENT_TIMEOUT을 늘려야 할 수 있어요.

  4. 키를 회전시켜요.

    $ vault write -f keymgmt/key/example-key/rotate
    

    키를 회전하면 새 키 자료를 담은 새 키 버전이 생성돼요. 키는 Vault와 키가 배포된 KMS 공급자 양쪽에서 회전돼요. 새 키 버전은 활성화되고 KMS 공급자의 암호화 작업을 위한 현재 버전으로 설정돼요.

  5. 키 버전을 활성화하거나 비활성화해요.

    $ vault write keymgmt/key/example-key min_enabled_version=2
    

    키의 min_enabled_version을 업데이트해 키 버전 시퀀스를 활성화/비활성화할 수 있어요. min_enabled_version보다 작은 키 버전은 모두 키가 배포된 KMS 공급자에서 암호화 작업이 비활성화돼요. min_enabled_version을 0으로 설정하면 모든 키 버전이 활성화돼요.

  6. 키를 KMS 공급자에서 제거해요.

    $ vault delete keymgmt/kms/example-kms/key/example-key
    

    이 작업은 KMS 공급자에서 키를 삭제해요. 키는 시크릿 엔진에 여전히 존재하며 나중에 KMS 공급자에 재배포할 수 있어요. 시크릿 엔진에서 키를 영구 삭제하려면 delete key API를 호출하면 돼요.

키 유형(Key types)

키 관리 시크릿 엔진은 다음 키 유형의 생성을 지원해요.

  • aes256-gcm96 — 256비트 AES 키와 96비트 nonce를 사용하는 AES-GCM(대칭)
  • rsa-2048 — 비트 크기 2048의 RSA(비대칭)
  • rsa-3072 — 비트 크기 3072의 RSA(비대칭)
  • rsa-4096 — 비트 크기 4096의 RSA(비대칭)
  • ecdsa-p256 — P-256 타원 곡선을 사용하는 ECDSA(비대칭)
  • ecdsa-p384 — P-384 타원 곡선을 사용하는 ECDSA(비대칭)
  • ecdsa-p521 — P-521 타원 곡선을 사용하는 ECDSA(비대칭)

KMS 공급자(KMS providers)

키 관리 시크릿 엔진은 다음 KMS 공급자에서 키의 수명주기 관리를 지원해요.

  • Azure Key Vault
  • AWS KMS
  • GCP Cloud KMS

각 공급자를 제대로 구성하는 방법은 공급자별 문서를 참고하세요.

호환성(Compatibility)

다음 표는 각 KMS 공급자와 호환되는 키 유형을 정의해요.

키 유형 Azure Key Vault AWS KMS GCP Cloud KMS
aes256-gcm96 아니요
rsa-2048 아니요
rsa-3072 아니요
rsa-4096 아니요
ecdsa-p256 아니요 아니요
ecdsa-p384 아니요 아니요
ecdsa-p521 아니요 아니요 아니요

API

키 관리 시크릿 엔진은 완전한 HTTP API를 갖고 있어요. 자세한 내용은 Key Management Secrets Engine API를 참고해 주세요.

Terraform

Vault Terraform 공급자로 키 관리 시크릿 리소스를 프로그래밍 방식으로 관리할 수 있어요. 자세한 내용은 Terraform Registry 문서를 참고해 주세요.

  • Key management 시크릿 엔진 키 리소스
  • Key management AWS KMS 리소스
  • Key management Azure Key Vault 리소스
  • Key management Google Cloud KMS 리소스
  • Key management 키 회전 리소스
  • Key management 키 배포 리소스
  • Key management 키 복제 리소스

더 알아보기 (Learn more)

  • KMS Providers 섹션에서 Azure Key Vault·AWS KMS·GCP Cloud KMS 구성 방법을 확인해 보세요.
  • Key Management Secrets Engine API 문서에서 HTTP API를 확인해 보세요.