본문 바로가기
AWS

AWS KMS

by PudgeKim 2022. 6. 29.

데이터는 현대에서 중요한 자산중 하나 입니다. 특히 대기업들의 데이터들은 머신러닝, 고객 분석 등에 활용하기 때문에 유출되지 않는게 중요합니다.

AWS 서비스를 이용할 때도 이런 데이터들을 지키기 위해 데이터를 암호화하는 서비스가 있습니다. 
(AWS가 기본적으로 서버사이드쪽에서 암호화를 하지만 Client쪽에서 원할 경우 추가적으로 이용가능한 서비스라고 보시면 됩니다.)

바로 KMS(Key Management Service)입니다.

KMS는 encryption key를 관리해주는 서비스라고 생각하시면 됩니다. 

 

KMS를 이해하기 위해서는 CMK(Customer Master Key)에 대해 알아야합니다. CMK의 특성은 다음과 같습니다.

1. CMK는 region에 의존하므로 다른 region에서도 사용하고싶다면 CMK를 생성할 때 다른 region으로 복제를 허용시켜야합니다.

2. 최대 4KB의 데이터를 암호화할 수 있다. (4KB보다 큰 데이터를 암호화하려면 data key를 사용해야합니다.)

3. KMS는 CMK를 관리하고 data key는 관리하지 않습니다.

4. CMK를 통해서 여러 개의 data key를 생성할 수 있습니다.

 

data key를 통해 데이터를 암호화시키는 과정은 아래와 같습니다.

CMK를 통해 data key를 생성할 수 있다고 하였는데 data key를 생성하는 경우, plaintext data key와 encrypted data key 이렇게 2개의 data key를 생성하게 됩니다.

2개의 data key를 생성했다면 plaintext data key로 4kb보다 큰 데이터를 암호화시킵니다. 그리고는 plaintext data key를 삭제합니다.

plaintext data key를 삭제해버렸다면 어떻게 다시 데이터를 decrypt시킬까요? 

바로 CMK와 encrypted data key를 통해 plaintext data key를 생성하여 이 생서된 plaintext data key로 복호화시켜주면 됩니다.
(복호화가 완료됬다면 plaintext data key는 다시 삭제합니다.)

 

위 과정처럼 안한다면 해킹을 당한 경우 plaintext data key도 데이터와 함께 도난당하기 때문에 데이터가 암호화된 것은 의미가 없을 것입니다.

 

 

'AWS' 카테고리의 다른 글

AWS Lambda 개념  (0) 2022.07.03
AWS Fargate을 활용한 배포 흐름#1  (0) 2022.06.27
AWS CloudFront  (0) 2022.06.27
AWS 로드밸런서  (0) 2022.06.26
[AWS VPC] Private Subnet에서 외부 접속을 하는 원리  (0) 2022.06.21