Classic/VPC 환경에서 이용 가능합니다 .
Key Management Service의 원활한 이용을 위해 암호화 및 암호화 키와 관련된 다양한 기본 개념을 설명합니다.
데이터 암호화
암호화란 임의의 키를 사용하여 평문 데이터를 해석이 불가능한 암호문으로 변환함으로써 데이터에 기밀성을 부여하는 기술을 의미합니다. 암호화된 데이터는 해당 키를 사용한 복호화 과정을 통해서만 원래의 평문 데이터로 복원할 수 있습니다. 이 과정에서 가장 중요한 요소는 '암호 키(Key)' 입니다. 암호 키가 안전하게 보호된다면, 평문 데이터가 노출될 가능성은 매우 낮아집니다. 데이터를 주고받는 송·수신 측이 동일한 키를 안전하게 공유하고 있다면, 해당 키를 이용한 암·복호화 통신을 통해 데이터의 기밀성을 확보할 수 있습니다.
송·수신 간에 키를 안전하게 공유하여 데이터를 암·복호화하는 방법에는 여러 방식이 있으며, 일반적으로 널리 사용되는 방식은 SSL/TLS 프로토콜을 이용한 통신 암호화입니다. 암호화는 데이터 전송 과정뿐만 아니라 데이터를 안전하게 저장하기 위한 목적으로도 활용됩니다. 예를 들어, 데이터베이스와 같은 저장소에 데이터를 암호화하여 저장하는 경우, 암호화 키가 외부로 노출되지 않도록 안전하게 관리하는 것이 무엇보다 중요합니다.
키 생명 주기
데이터 암호화에 사용되는 암호화 키는 생성부터 소멸까지의 일련의 생명 주기를 가집니다. 생명 주기에 따라 키는 사용 가능, 사용 중지, 삭제 요청, 삭제 상태로 구분됩니다. 각 상태에 따른 키의 기능 및 상태 전이 관계는 아래의 키 기능별 상태 전이도를 참고하시기 바랍니다.

Key Management Service에서는 키별로 최대 100개의 버전을 생성하여 관리할 수 있으며, 키의 상태는 해당 키에 포함된 모든 버전에 동일하게 적용(상속)됩니다. 예를 들어, 여러 버전을 보유한 키의 상태가 사용 중지로 전환되면, 해당 키에 포함된 모든 버전 또한 사용 중지 상태가 됩니다. 이후 키가 다시 활성화되어 사용 가능 상태로 변경될 경우, 각 키 버전은 비활성화 이전에 유지하고 있던 상태로 자동 복원됩니다. 암호 키는 키 단위의 상태뿐만 아니라, 버전 단위의 상태도 있습니다. 버전 상태에 대한 자세한 내용은 키 버전 관리를 참고해 주시기 바랍니다.
키 생명 주기의 각 상태에 대한 설명은 다음과 같습니다.
-
생성
키 생성이 요청되면, 키 관리 권고 기준에 따른 절차에 따라 안전하게 키가 생성되며 '고유 식별자(Key Tag)' 가 부여됩니다. 생성된 키는 암호화된 저장소에 안전하게 저장되며, 장애나 재해 상황에 대비한 백업 지점이 함께 생성됩니다. -
사용 가능
암·복호화 요청에 사용할 수 있는 활성 상태의 키입니다. 생성된 키는 기본적으로 자동 활성화되어 사용 가능 상태가 되며, 필요에 따라 언제든지 비활성화할 수 있습니다. 사용 가능 상태의 키는 관리 비용이 부과됩니다. -
사용 중지
비활성화된 키로, 암·복호화 요청에는 사용할 수 없습니다. 필요 시 언제든지 다시 활성화하여 사용 가능 상태로 전환할 수 있습니다. 사용 중지 상태의 키도 키 회전 주기를 따르며, 다음 회전 시점에 맞춰 새로운 버전으로 갱신됩니다. 또한, 사용 중지 상태의 키 역시 관리 비용이 부과됩니다. -
삭제 요청
더 이상 사용되지 않는 키에 대해, 오·사용 방지 및 불필요한 유지·관리를 줄이기 위해 사용자가 삭제를 요청한 상태입니다. 삭제 요청 상태의 키는 삭제 요청 시점으로부터 72시간 후에 영구 삭제됩니다. 삭제 요청된 키는 최종 삭제 전까지 요청을 취소할 수 있으며, 삭제 요청이 취소된 키는 즉시 사용 중지 상태로 전환됩니다. 삭제 요청 상태의 키 또한 키 회전 주기를 따르며 관리 과금 대상입니다. 만약 해당 키를 사용하는 서비스나 사용자가 없는 것이 명확한 경우, 즉시 삭제 기능을 통해 대기 시간 없이 바로 삭제할 수 있습니다. -
삭제
키가 영구적으로 최종 삭제된 상태입니다. 삭제가 실행되면 실제 암호 키 비트 데이터인 '원시 키(Raw Key)' 가 즉시 삭제 처리됩니다.
원시 키 이외의 관리 메타데이터는 해당 월의 정산 처리가 완료된 이후 모두 삭제됩니다.
최종 삭제된 키는 어떠한 경우에도 복구할 수 없습니다. 키 삭제는 되돌릴 수 없는 작업이므로, 항상 신중하게 수행해야 합니다. 특히 최종 삭제를 실행하기 전에는 해당 키가 더 이상 사용되지 않는지 반드시 확인하시기 바랍니다.
봉투 암호화
키를 사용하여 데이터를 암호화하는 방식에는 여러 가지가 있습니다. 그중 '봉투 암호화(Envelope Encryption)' 는 키를 계층적으로 관리함으로써 데이터의 기밀성과 통제권을 함께 확보할 수 있는 방식으로, 널리 권장됩니다. 이 문서에서는 봉투 암호화의 기본 개념을 소개하고, Key Management Service를 이용하여 봉투 암호화를 적용할 때 이해해야 할 키의 계층 구조와 관리 정책에 대해 설명합니다.
키의 계층적 관리
데이터 보호를 위해 암호화를 적용하는 것은 필수적이지만, 암호화만으로 데이터가 완전히 보호되는 것은 아닙니다. 데이터 보호 수준은 단순히 암호화 여부가 아니라, 암호화 키를 어떻게 관리하는지에 의해 크게 좌우됩니다. 키 관리는 다양한 복잡한 요소를 포함하고 있으므로, 안전하고 신뢰할 수 있는 키 관리 솔루션을 사용하는 것이 바람직합니다. 이 과정에서 핵심이 되는 개념은 데이터 통제권입니다. 데이터 통제권이란, 필요한 시점에만 데이터에 접근할 수 있도록 허용하고, 허가되지 않은 접근을 차단하는 접근 제어 원칙이 일관되게 유지되는 상태를 의미합니다. 암호화 키를 외부에 위탁하여 보관할 경우, 데이터 복호화가 가능한 외부 접점이 증가하여 데이터 통제권에 대한 위협이 커질 수 있습니다.
이러한 위험을 완화하기 위해 널리 사용되는 방법 중 하나가 키를 계층적으로 관리하는 방식입니다. 이는 데이터를 암호화하는 키를 또 다른 상위 키로 암호화하여 보호하는 구조로, '키 봉인(Sealing) 또는 키 랩핑(Wrapping)' 이라고도 불립니다. 이 방식에서는 데이터를 암호화하는 키를 보호하는 상위 키를 일반적으로 '마스터 키(Master Key) 또는 키 암호화 키(Key Encryption Key)' 라고 하며, 마스터 키를 내부 또는 외부의 키 관리 솔루션을 통해 안전하게 관리함으로써 데이터 통제권에 대한 위협을 효과적으로 줄일 수 있습니다. 이와 같이, 데이터를 직접 암호화하는 대신 데이터를 암호화하는 키를 보호하는 구조적 접근 방식을 '봉투 암호화(Envelope Encryption)' 라고 합니다. 봉투 암호화는 데이터의 기밀성과 통제권을 동시에 만족시키는 효율적이고 안전한 암호화 방식입니다.

봉투 암호화에서 실제로 데이터를 암·복호화하는 키는 '데이터 키(Data Key) 또는 데이터 암호화 키(Data Encryption Key)' 입니다. Key Management Service를 이용하여 봉투 암호화 방식을 적용하면, 데이터 키를 봉인(Sealing)된 형태로 안전하게 관리할 수 있습니다. 다만, 실제 데이터를 암·복호화하는 시점에는 봉인이 해제된 데이터 키가 사용됩니다. Key Management Service를 통해 봉인이 해제된 데이터 키를 전달받은 이후부터는, 해당 키에 대한 관리 및 보호 책임이 사용자에게 귀속됩니다. 따라서 데이터를 암·복호화한 후에는 봉인이 해제된 데이터 키를 즉시 메모리에서 삭제하고, 봉인된 형태의 데이터 키만을 저장·보관하는 것을 권장합니다.
키 관리 정책
Key Management Service에서는 암호화 키를 계층적인 구조로 관리하므로, 각 계층에 속하는 주요 키의 개념과 역할에 대한 이해가 필요합니다.

데이터 암호화 키(Data Encryption Key)
데이터 암·복호화에 사용되는 키는 사용자 관리 영역에서 안전하게 보관되어야 합니다. Key Management Service를 이용하여 데이터 암호화 키를 보호하면, 키 생성·보관·보호와 관련된 관리 부담을 효과적으로 줄일 수 있습니다. 데이터 암호화 키를 보호하는 방법에는 다음과 같은 방식이 있습니다.
- 사용자가 직접 데이터 암호화 키를 생성한 후, 사용자 관리 키로 암호화하여 봉인(Sealing) 하는 방법
- Key Management Service의 커스텀 키 생성 API(Create User Custom Key) 를 이용하는 방법
Key Management Service의 Create User Custom Key API를 사용하면, 안전한 환경에서 생성된 임의의 데이터 암호화 키와 이를 사용자 관리 키로 암호화한 봉인된 형태의 키를 한 번에 전달받을 수 있어, 봉투 암호화 적용 시 유용합니다.
사용자 관리 키(User Managed Key)
사용자 관리 키는 사용자가 Key Management Service에서 직접 생성하며, 생성, 회전, 비활성화, 삭제 등 키 생명 주기의 모든 과정이 사용자 책임 하에 운영됩니다. Key Management Service 관리자 또는 해당 키에 대한 사용 권한이 부여된 사용자는 네이버 클라우드 플랫폼 콘솔을 통해 사용자 관리 키를 편리하게 관리할 수 있습니다.
사용자 관리 키가 데이터 암호화 키를 보호하는 용도로 사용되는 경우, 이를 키 암호화 키(Key Encryption Key, KEK) 또는 마스터 키(Master Key) 라고 부릅니다. 사용자 관리 키는 Key Management Service 시스템의 최상위 키인 '루트 키(Root Key)' 로 암호화되어, 물리적으로 격리된 보안 스토리지에 안전하게 저장됩니다.
루트 키(Root Key)
루트 키는 엄격하고 안전한 절차를 통해 생성되며, 생성 이후에는 사용자 관리 키와 동일한 관리 정책에 따라 운영됩니다. 예를 들어, 루트 키 역시 2년 주기의 키 회전 정책을 따르며, 엄격한 접근 권한 관리가 적용됩니다. 물리적 보호 요건을 갖춘 루트 키의 특징은 다음과 같습니다.
- 키의 저장 및 보호가 HSM(Hardware Security Module)을 통해 이루어짐
- 키 활성화/회전 절차가 오프라인 방식으로 수행됨
루트 키는 분실 또는 관리자의 악의적인 행위에 대비하여 HSM에 저장되며, FIPS 140-3 Level 3 수준의 보호가 보장됩니다. 또한, 루트 키에 대한 모든 접근 이력은 감사 로그로 기록됩니다.