본문으로 건너뛰기

주요 개념

카카오클라우드 Key Management Service(KMS) 서비스를 구성하는 핵심 요소와 정책에 대한 설명입니다. 각 개념을 이해하면 KMS를 더욱 효과적으로 활용할 수 있습니다.

사용자 키

사용자가 직접 생성하고 관리하는 암호화 키입니다. 키의 이름, 설명, 순환 설정을 사용자가 직접 제어할 수 있습니다.
애플리케이션의 특정 데이터나 데이터베이스를 암호화하는 등, 사용자가 능동적으로 키를 관리해야 하는 모든 시나리오에서 사용됩니다.

서비스 키

특정 카카오클라우드 서비스가 사용자를 대신하여 생성하고 관리하며, 대칭 유형의 AES256-CGM96 알고리즘을 사용한 키를 제공합니다.
예를 들어, 특정 스토리지 서비스의 암호화 기능을 활성화하면, 해당 서비스가 백그라운드에서 서비스 키를 사용하여 데이터를 보호합니다. 사용자가 이 키를 직접 수정하거나 관리할 수는 없으며, 연동된 서비스의 데이터를 암호화하는 데 자동으로 사용됩니다.

키 버전

하나의 키 내에서 고유한 암호화 정보를 가지는 각 개체를 버전이라고 합니다. 키 순환이 발상할 때마다 새로운 키 버전이 생성되며, 이는 시간이 지나도 과거에 암호화된 데이터를 안전하게 복호화할 수 있도록 보장하면서, 동시에 새로운 데이터는 새로운 키로 보호할 수 있게 하는 핵심적인 기능입니다.
키를 처음 생성하면 버전 1이 만들어지며, 키를 순환하면 기존 버전 1은 그대로 보존된 채 새로운 암호화 정보를 가진 버전 2가 생성되어 운영 상태가 됩니다. 이후 모든 신규 암호화 요청은 버전 2를 사용하게 되지만, 버전 1로 암호화되었던 데이터를 복호화할 때는 시스템이 이를 자동으로 인식하여 버전 1을 사용합니다. 사용자는 버전을 직접 관리할 필요 없이 키 이름이나 ID만으로 암호화 작업을 수행할 수 있습니다.

키 순환

보안 강화를 위해 기존 키를 대체하는 새로운 키 버전을 주기적으로 생성하는 기능입니다. 키 순환을 통해 키 노출 위험을 줄이고 보안 표준을 준수할 수 있습니다.

자동 순환

사용자가 미리 설정한 순환 주기(콘솔 기본 값 : 365일)에 따라 시스템이 자동으로 새 키 버전을 생성하고 활성화합니다. 정기적인 키 관리를 자동화하여 보안을 편리하게 유지할 수 있습니다.

수동 순환

암호키 노출, 비밀 유지 의심 등 위험 상태 발생 시, 관리자가 필요에 따라 즉시 새 키 버전을 생성할 수 있습니다. 긴급한 키 교체가 필요할 때 유용합니다.

키 상태

하나의 키는 여러 개의 버전을 가질 수 있으며, 각 버전은 고유한 상태 값을 통해 관리됩니다. 키의 실제 사용 가능 여부는 이 버전의 상태에 따라 결정됩니다.

상태설명
준비(Pre-activation)키가 생성되었지만 아직 운영 상태의 버전이 생성되지 않은 상태입니다.
- 이 상태에서는 암호화 및 복호화 작업이 불가능합니다.
운영(Active)버전이 활성화되어 암호화 및 복호화 작업을 수행할 수 있는 유일한 상태입니다.
- 새 버전이 생성되면 운영 상태가 되며, 이전 버전은 정지 상태로 전환됩니다.
정지(Deactivated)버전이 비활성화되어 암호화 작업은 불가능하지만, 기존에 암호화된 데이터에 대한 복호화 작업만 가능한 상태입니다.
- 모든 버전이 정지, 폐기 상태이면 해당 키는 자동으로 정지 상태가 됩니다.
폐기(Destroyed)버전이 영구적으로 삭제되어 복구가 불가능한 상태가 됩니다.
- 키의 모든 버전이 폐기되면 키를 영구 삭제할 수 있습니다.

역할

KMS는 역할 기반 접근 제어(RBAC) 모델을 사용하여 키 리소스에 대한 접근 권한을 안전하고 체계적으로 관리합니다. IAM 서비스에서 사용자에게 역할을 할당하여 허용된 작업만 수행하도록 제어할 수 있습니다.

KMS 프로젝트 뷰어(Viewer)

프로젝트 내에 생성된 키의 목록, 상태, 버전 정보 등 모든 리소스를 조회할 수 있는 권한을 가집니다. 단, 키를 생성하거나 상태를 변경하는 등의 관리 작업은 수행할 수 없습니다.

KMS 프로젝트 매니저(Manager)

키 조회 권한을 포함하여, 프로젝트 내에서 키를 생성, 수정, 삭제하고 키 순환을 관리하는 등 KMS의 모든 관리 기능을 수행할 수 있는 권한을 가집니다.