: 데이터를 암호화할 때, 사용되는 암호화 KEY를 안전하게 관리하는 데 목적을 둔 서비스

필요한 이유
- 중요한 데이터를 저장하거나 전송 시, 잠금장치(암호화)를 걸어야 함 → 이 때, 필요한 게 열쇠(암호화 키)
- 이 때, 이 열쇠를 아무 데나 보관하면 도난당하거나 유출될 위험이 있음 !
- → KMS는 이 열쇠를 안전하게 관리하고 필요할 때만 사용할 수 있도록 도와준다!
서비스 종류
- AWS managed key : AWS 서비스들이 자동으로 생성하고 관리해주는 암호화 키.
- 내부적으로 자동으로 발생, 사용자의 직접적인 제어 불가능
- 키를 직접 관리할 필요 없이 간편하게 AWS 서비스의 암호화를 사용하고 싶을 때 사용 (기본 제공하는 암호화 기능)
- 세부적인 키 관리 필요 X
- 무료거나 한도내 비용이 저렴
- CMK (Customer managed key) : 사용자가 직접 키를 생성하고 관리하는 서비스
| AWS managed key | CMK |
|---|
| 키 생성 | AWS가 자동으로 생성 | 사용자 직접 생성 |
| 키 관리 | AWS가 관리 | 사용자가 직접 관리 |
| 권한 설정 | 기본적인 AWS 서비스에서 사용가능 | 세부적인 권한 설정 가능 |
| 키 로테이션 | AWS가 자동으로 관리 | 사용자가 직접 설정 가능 |
| 사용 사례 | 기본적인 데이터 암호화(S3, RDS,EBS 등) | 보안 요구사항이 높은 경우 |
- Custom key stores AWS에서 제공하는 또 다른 키 관리형 서비스인 CloudHSM을 활용한 key 관리 서비스
ClousHSM (Hardware Security Module)

: 하드웨어 기반 보안 모듈
→ 물리적인 보안 장치를 AWS에서 제공해주는 것!
- 보안이 중요한 금융, 의료, 정부기관에서 암호화 키를 하드웨어 장비에서 직접 관리하고 싶을 때 사용
- 전 세계적인 암호화 하드웨어 표준인 FIPS 140-2 Level 3 인증
| KMS | CloudHSM |
|---|
| 키 관리 방식 | AWS가 키를 관리하고 보호 | 사용자가 직접 키를 관리 |
| 보안강도 | 소프트웨어 기반 | 하드웨어 기반 |
| 제어권 | AWS가 키를 관리하므로 편리 | 사용자가 직접 제어 |
| 사용사례 | 일반적인 데이터 암호화 | 금융. 정보 등 강력한 보안 요구사항이 있는 경우 |
| 비유 | 은행 금고 | 개인금고 |
| 비용 | 다소 저렴 | 비쌈! |
| | |
💡
즉, AWS managed key → CMK → CloudHSM 순으로 보안이 강화됨
KMS 동작 방식
❗CMK 기준으로 설명

1. KMS에 CMK를 생성
- 이 때, Master Key는 데이터를 암호화하기 위해서 사용되는 데이터 키를 생성하는데 사용
2. 데이터 키 생성

- CMK로부터 GenerateDataKey 라는 작업을 통해 생성.
- PainText Key, Encrypted Key 생성
- Encrypted key, PlainText Key 용어 정리
- PlainText Key : 평문 키 (암호화되지 않은 키)
- Encrypted key : 암호화 된 키
- 데이터를 복호화할 때, 사용
- 복호화(Decrryption): Eccrypted Data → Plaintext Data로 되돌리는 과정
3. 암호화 과정

- PlainText data Key를 이용해 데이터 암호화
- 데이터를 암호화한 이후에는 해당 Plaintext data key는 더 필요가 없으므로 메모리에서 제거
- 암호화된 Data, 암호화된 데이터 키 같이 안전하게 보관 → Envelpe Encryption 방식 (봉투 암호화)
- Envelpe Encryption 방식 프로세스 : 데이터 키 생성 → 데이터 암호화→ 데이터 키 자체도 암호화→ 암호화된 데이터 & 암호화된 데이터 키 저장
4. 복호화 과정

- 복호화하기 위해서 PlainText data Key 필요. 하지만 위에서 PlainText data key를 폐기한 상태이므로 남은거는 Encrypted Data Key.
- Encrypted Data Key → PlainText data Key 과정 필요.
- 복호화하는 과정에서 CMK가 다시 필요하게 됨.
🚫주의!
KMS에서 제공되는 Key를 삭제할 경우, 해당 KEY를 활용해 암호화된 데이터가 있다면 그 데이터는 영원히 복호화 불가능!
그래서 AWS에서는 key의 즉시 삭제를 지원하지 않고, 삭제시 7-30일간의 유예기간을 줌
이번 동아리에서 내가 세션 발표이기 때문에 보안 서비스중 뭘로 발표를 할까...고민하다가 수학과에서의 들어야할 수업인 암호론을 예습도 해볼겸~ KMS 서비스를 골랐다!!! 처음엔 어려웠지만 주제가 나름 재밌어서 재미나게 해보았다...그리고 참고했던 여러 사이트들이 도움이 되었다!! 발표 홧팅!
레퍼런스 출처: https://bluese05.tistory.com/71