본문 바로가기
CSP (Cloud Service Provider)/AWS

[AWS] KMS 개념, 동작방식 정리

by BTC_마루 2023. 5. 12.

베하 안녕하세요 팀 비티시보이즈입니다.

 

해당 포스팅에서는 AWS KMS의 개념과 동작방식을 살펴보는 시간을 가지겠습니다.

 

KMS의 특징에 대해서는 해당 링크 참고 해주세요.

 

AWS KMS란?

안녕하세요, BTC 베짱이 팀입니다. 이번 주는 'AWS KMS' 주제로 포스팅하겠습니다! KMS (Key Management Service) 개념 AWS Key Management Service(AWS KMS)를 사용하면 손쉽게 암호화 키를 생성 및 관리하고 다양한 AW

btcd.tistory.com


1. AWS KMS 개념

  • KMS는 Key management Service의 약자
  • 데이터를 암호화 할때 사용되는 암호화 Key를 안전하게 관리하는데 목적을 둔 서비스
  • AWS CloudTrail과 통합하면 누가 어느 리소스에서 언제 키를 사용했는지 확인 가능
  • 원할 때 언제든지 새로운 키를 생성할 수 있고 키를 관리하는 사람과 사용하는 사람을 개별적으로 제어

 

3가지 사용 방식

  1. AWS managed key
    • AWS 서비스들이 KMS를 통해 Key를 서비스 받는 것
    • 내부적으로 자동으로 일어나게 되며, 사용자가 직접적으로 제어가 불가능함

  2. Customer managed key(CMK)
    • 사용자가 직접 key를 생성하고 관리하는 것
    • CMK에 대한 제어는 IAM을 통해 권한을 부여받아 제어가 가능

  3. Custom key stores
    • AWS에서 제공하는 또 다른 key 관리형 서비스인 CloudHSM을 활용한 Key 관리 형태를 의미

2. 전체 동작 방식(CMK)

동작 방식

전체 동작 방식이로 세부적으로 하나씩 살펴보겠습니다.

 

 

1. KMS에서 Master Key생성

- Master Key는 데이터를 암호화하기 위해 사용되는 Data Key를 생성하는데 사용

- Master Key 내부는 볼 수 없고, Key id값만 제공

 

 

2. Data key 생성

- CMK만으로도 암호화 가능하지만 4kb제한 있음

- CMK로부터 GenerateDataKey라는 작업을 통해 생성

- Plaintext data key(평문키)와 Encrypted data key(암호화 키)생성

 

 

3. Plaintext data key(평문키)를 통해 data 암호화

- 데이터를 암호화한 이후 Plaintext data key는 필요없으므로 삭제(사용 즉시 null 처리)

- 암호화된 data와 Encrypted data key(암호화 키)는 함께 보관(이 방식을 Envelope Encryption 방식이라함)

 

 

4. Encrypted data key(암호화 키)를 KMS의 Master key로 Plaintext data key(평문키)로 변환

5. 변환된 Plaintext data key(평문 키)로 암호화된 data를 복호화 진행(평문키 null 처리)

 

3. 전체 동작 방식 정리

  • 암호 key = Plaintext data key = 평문 키
  • Recovery key = Encrypted data key = 암호화 키

 

다음에 암복호화 스크립트 파일을 활용한 실전으로 찾아 뵙겠습니다.

감사합니다.

댓글