본문으로 건너뛰기

주요 개념

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

KMS 키

  • KMS에서 생성하고 관리하는 모든 암호화 키를 KMS 키라고 합니다.
  • KMS 키는 사용자 키와 서비스 키로 제공됩니다.
  • 데이터를 직접 암호화하지 않고, 데이터 키를 암호화하는 용도로만 사용합니다.
  • KMS 외부로 반출되지 않으며, KMS 내부에서만 사용됩니다.
  • KMS 키의 버전 및 상태 관리에 대한 자세한 내용은 키 버전키 상태를 참고하십시오.

사용자 키

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

서비스 키

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

키 버전

키 순환(Rotation)이 발생할 때마다 생성되는 고유한 암호화 정보 단위입니다.
하나의 KMS 키는 여러 개의 버전을 가질 수 있으며, 각 버전은 과거 데이터의 복호화 호환성을 보장하면서 신규 데이터는 최신 버전의 키로 안전하게 보호합니다.
KMS 키에는 운영(Active) 상태인 키 버전이 단 하나만 존재하며, 새 버전이 생성되면 이전 버전은 자동으로 정지(Deactivated) 상태로 전환됩니다. KMS에서는 버전을 직접 관리하거나 선택할 필요 없이, 키 고유 ID만으로 아래와 같이 암호화적 연산 작업을 수행합니다.

  • 키 고유 ID 기반 동작: 사용자가 버전을 직접 선택할 필요 없이 키 고유 ID 하나만으로 아래와 같이 암호화 연산 작업이 수행됩니다.
    • 신규 암호화 (기본 버전 적용): 암호화 요청 시 현재 기본 버전(운영 상태)의 키가 적용됩니다.
    • 기존 데이터 복호화 (과거 버전 자동 인식): 복호화 요청 시 암호문에 포함된 버전 정보를 시스템이 자동으로 인식하여, 과거에 해당 암호화를 수행했던 키 버전으로 복호화합니다.

기본 버전

KMS 키로 암호화 요청 시 버전을 별도로 지정하지 않아도 자동으로 적용되는 운영 상태의 최신 키 버전입니다.

  • 자동 승격 및 전환: 키 순환(Rotation)으로 새 키 버전이 생성되면 해당 버전이 새로운 기본 버전으로 지정되며, 이전 버전은 자동으로 정지 상태로 전환됩니다.

데이터 키

실제 데이터를 암호화 및 복호화하는 키입니다. 사용 시 평문과 암호화된 형태, 두 가지로 반환되며, 암호화 작업이 완료된 후 평문 데이터 키는 즉시 삭제하고 암호화된 데이터 키만 보관합니다.

키 순환

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

자동 순환

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

수동 순환

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

키 상태

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

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

접근 제어

접근 제어를 사용해 키 보안을 강화할 수 있습니다.
키 생성자는 소유자로서 IAM 역할이 유지되는 동안, 생성한 키에 대한 접근 및 관리 권한을 가집니다.

  • 접근 제어 사용 : 허용 대상을 설정할 수 있습니다. 설정 가능한 대상은 동일 프로젝트 내 사용자, 그룹, 서비스 계정, 서비스 에이전트 계정이며, 실제 사용 권한은 해당 IAM 역할을 따릅니다.
  • 접근 제어 미사용 : 키 사용에 필요한 IAM 역할을 가진 대상은 해당 키를 사용할 수 있습니다.

역할

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

KMS 뷰어(Viewer)

프로젝트 내에 생성된 키의 목록, 상태, 버전 정보 등 리소스를 조회할 수 있는 권한을 가집니다.
단, 키를 사용한 암호화 작업(암호화, 복호화, 서명, 검증)과 키 생성, 삭제, 상태 변경 등의 관리 작업은 수행할 수 없습니다.

KMS 사용자(User)

키 조회 권한을 포함하여, 키를 사용한 암호화 작업을 수행할 수 있습니다.
단, 키 생성, 삭제, 상태 변경 등의 관리 작업은 수행할 수 없습니다.

KMS 매니저(Manager)

키 조회 및 키를 사용한 암호화 작업 권한을 포함하여, 키 생성, 삭제, 순환, 상태 변경 등 KMS 모든 관리 기능을 수행할 수 있는 권한을 가집니다.