- 인쇄
- PDF
Key Management Service 개념
- 인쇄
- PDF
Classic/VPC 환경에서 이용 가능합니다 .
데이터 암호화
암호화란 임의의 키를 사용해 평문 데이터를 해석이 불가능한 암호문으로 변환하여 데이터에 기밀성을 부여하는 것을 말합니다. 사용자는 암호문에 적합한 키를 사용해 복호화 과정을 거쳐 원래의 평문 데이터를 얻을 수 있습니다. 이때 가장 중요한 요소는 '키'입니다. 키를 안전하게 보호하면 평문이 노출되는 일은 거의 없습니다. 데이터를 주고받는 송·수신측이 안전하게 공유된 키를 알고 있다면, 키를 사용해 암/복호화 통신을 함으로써 데이터의 기밀성을 보장할 수 있습니다. 송·수신 간에 키를 안전하게 공유하여 데이터를 암/복호화하는 방법에는 여러 가지가 있지만, 일반적으로 널리 알려진 방법은 SSL/TLS 프로토콜을 사용하는 것입니다. 암호화는 데이터를 주고받는 사례 뿐만 아니라, 안전하게 저장할 때도 사용될 수 있습니다. 만약 데이터를 데이터베이스 등의 저장소에 암호화 저장해야 하는 경우에는 암호화 키가 외부에 노출되지 않도록 안전하게 관리하는 것이 중요합니다.
키 생명 주기
데이터 암호화에 사용되는 암호화 키는 생성부터 소멸까지 일련의 생명 주기를 가집니다. 생명 주기에 따라 키는 사용 가능, 사용 중지, 삭제 요청, 삭제 상태로 구분됩니다. 키 상태는 해당 키의 모든 버전에 상속됩니다. 예를 들어, 3개의 버전을 가진 키가 사용 중지 상태로 전환되면, 해당 키의 모든 버전도 사용 중지 상태가 됩니다. 만약 키가 다시 활성화되어 사용 가능 상태로 변경되면, 각 버전은 이전에 가지고 있던 상태로 자동 복원됩니다.
Key Management Service에서는 키별로 최대 100개의 버전을 생성하여 관리할 수 있으며, 키의 상태는 해당 키의 모든 버전에 상속됩니다. 예를 들어, 3개의 버전을 가진 키의 상태가 사용 중지로 전환되면, 3개의 버전 모두 사용 중지 상태가 됩니다. 키가 다시 활성화되어 사용 가능 상태로 변경되면, 각 버전은 자동으로 이전 상태로 복원됩니다. 생명 주기의 각 상태별 설명은 다음과 같습니다.
생성
키의 생성이 요청되면, 키 관리 권고에 따른 절차에 따라 안전하게 생성되고 고유 식별자가 부여됩니다. 생성된 키는 암호화된 저장소에 안전하게 저장되며, 유사시에 대비한 백업 지점도 함께 생성됩니다.사용 가능
모든 암/복호화 요청에 사용될 수 있는 키입니다. 생성된 키는 자동으로 활성화되어 사용 가능 상태가 되며, 언제든지 비활성화할 수 있습니다. 사용 가능 상태의 키는 관리 비용이 부과됩니다.사용 중지
비활성화된 키로, 필요시 언제든지 다시 활성화하여 사용 가능 상태로 전환할 수 있습니다. 사용 중지 상태의 키도 회전 주기를 따르며, 다음 회전일에 맞춰 새로운 버전으로 갱신됩니다. 사용 중지 상태의 키는 암/복호화 요청에 사용될 수 없으며, 관리 비용이 부과됩니다.삭제 요청
더 이상 사용되지 않아, 오·사용 방지 및 불필요한 유지/관리를 줄이기 위해 사용자가 삭제를 요청한 키입니다. 삭제 요청 상태의 키는 삭제 요청 후 72시간 뒤에 영구적으로 삭제됩니다. 사용자의 요청에 의해 삭제된 키는 복구할 수 없으므로, 삭제 요청 시 사용 중인 키가 없는지 신중히 확인해야 합니다. 최종 삭제 전까지 삭제 요청은 취소할 수 있으며, 취소된 키는 즉시 사용 중지 상태로 전환됩니다. 삭제 요청 상태의 키 역시 회전 주기를 따르며, 관리 과금 대상입니다. 사용자가 없다면 즉시 삭제 버튼을 클릭해 바로 삭제 처리할 수도 있습니다.삭제
영구적으로 최종 삭제된 키이며, 실제 암호 키 비트 데이터인 원시 키(Raw key)는 즉시 삭제 처리됩니다. 키 값 이외 관리 정보는 해당 월 정산 처리 이후 모두 삭제 처리됩니다. 최종 삭제된 키는 어떠한 경우에도 복구가 불가능 합니다.
봉투 암호화
키를 사용해 데이터를 암호화하는 방식은 여러 가지가 있습니다. 그중 봉투 암호화(Envelope Encryption)는 키의 계층적 관리를 통해 데이터의 기밀성과 통제권을 모두 만족시키기 때문에 권장됩니다. 이 문서에서는 봉투 암호화의 개념을 소개하고, Key Management Service를 이용해 봉투 암호화를 사용할 때 알아두어야 할 키의 계층 구조와 정책에 대해 설명합니다.
키의 계층적 관리
일반적으로 데이터를 보호하기 위해 암호화를 사용하지만, 암호화만으로 데이터가 완벽하게 보호되는 것은 아닙니다. 데이터 보호 수준은 단순히 암호화 여부가 아니라, 암호화 키를 어떻게 관리하는지에 달려 있습니다. 키 관리에는 복잡한 요소들이 많기 때문에, 안전한 키 관리 솔루션을 사용하는 것이 가장 바람직합니다. 이때 중요한 요소는 데이터 통제권의 보장입니다. 데이터 통제권이란, 필요한 시점에 데이터에 접근할 수 있을 뿐만 아니라 허가되지 않은 접근을 차단하는 접근 제어 원칙을 준수하는 것을 의미합니다. 키를 외부에 위탁하여 보관하면 데이터 복호화가 가능한 외부 접점이 늘어나 통제권에 대한 위협이 증가할 수 있습니다.
가장 잘 알려진 안전한 키 관리 방법 중 하나는 키를 계층적으로 관리하는 방식입니다. 즉, 데이터를 암호화하는 키를 또 다른 상위 키로 암호화해 보호하는 방식입니다. 키 봉인(Sealing) 또는 키 랩핑(Wrapping)으로 알려진 이 방식은 원격 암호 키 관리 솔루션을 사용할 때 데이터 통제권을 어느 정도 보장할 수 있습니다. 데이터를 암호화하는 키를 보호하는 상위 키를 일반적으로 마스터 키라고 합니다. 마스터 키를 내부 또는 외부의 키 관리 솔루션으로 관리하면 데이터 통제권에 대한 위협을 줄일 수 있습니다. 이러한 키의 계층적 관리 방식을 봉투 암호화(Envelope Encryption) 라고 부르며, 데이터를 직접 암호화하는 것이 아니라 데이터를 암호화하는 키를 보호해 데이터의 기밀성과 통제권을 동시에 만족시키는 방식입니다.
봉투 암호화에서 실제 데이터를 암/복호화하는 키는 데이터 키입니다. Key Management Service를 이용해 봉투 암호화 방식을 적용하면, 데이터 키를 봉인하여 안전하게 관리할 수 있습니다. 단, 실제로 데이터를 암/복호화할 때는 봉인 해제된 데이터 키를 사용하게 됩니다. Key Management Service를 통해 봉인이 해제된 키를 전달받은 이후부터는 해당 키의 관리 책임이 사용자에게 있습니다. 따라서 데이터를 암/복호화한 후에는 해당 키를 즉시 삭제하고, 봉인된 형태의 데이터 키만 보관하는 것을 권장합니다.
네이버 클라우드 플랫폼과 사용자의 클라우드 책임 공유 모델에 대한 설명은 네이버 클라우드 플랫폼 포털의 보안 센터를 참조해 주십시오.
키 관리 정책
Key Management Service에서는 키를 계층적인 구조로 관리하기 때문에 계층별 주요 키에 대한 개념과 역할에 대한 이해가 필요합니다.
데이터 암호화 키(Data Encryption Key)
데이터 암/복호화에 사용되는 키는 사용자 관리 영역에서 안전하게 보관되어야 합니다. Key Management Service를 이용해 데이터 암호화 키를 보호하면 관리적인 부담을 줄일 수 있습니다. 데이터 암호화 키를 보호하는 방법에는 사용자가 직접 키를 생성하고, 사용자 관리 키로 암호화하여 '봉인'하는 방법과 Key Management Service의 커스텀 키 생성 API인 Create User Custom Key
를 이용하는 방법이 있습니다. API를 사용하면 안전하게 생성된 임의의 키와 이를 사용자 관리 키로 암호화한 형태를 한 번에 얻을 수 있어 매우 유용합니다.
사용자 관리 키(User Managed Key)
사용자가 Key Management Service에서 생성한 키는 생성, 회전, 삭제 등 모든 과정이 사용자의 관리 하에 운영됩니다. Key Management Service 관리자나 특정 키에 대한 권한을 가진 키 매니저는 네이버 클라우드 플랫폼 콘솔을 통해 편리하게 키를 관리할 수 있습니다. 사용자 관리 키가 데이터 암호화 키를 보호하는 데 사용될 경우, 이를 키 암호화 키(Key Encryption Key, KEK) 또는 마스터 키라고 부릅니다. 사용자 관리 키는 KMS 시스템 최상위 키인 루트 키로 암호화되어 Key Management Service의 가장 핵심부에 구성된 보안 스토리지에 저장됩니다.
루트 키(Root Key)
루트 키는 안전한 절차를 통해 생성되며, 이후 사용자 관리 키와 동일한 관리 정책에 따라 운영됩니다. 예를 들어, 루트 키도 1년 주기로 회전되어 갱신되며, 엄격한 키 접근 권한 관리가 이루어집니다. 사용자 관리 키와의 유일한 차이점은 키 저장과 관리가 HSM을 통해 이루어 진다는 점, 키 활성화 절차가 오프라인으로 이루어 진다는 부분입니다. 루트키는 분실이나 관리자의 악의적인 행위에 대비해, HSM(Hardware Security Module)에 저장되며, FIPS 140-3 Level 3 보호 수준이 보장되니다. 또한, HSM의 접근 이력은 모두 기록됩니다.