본문 바로가기

Security&Identity/KMS

AWS Key Management Service(KMS)

KMS는 말그대로 키 관리 시스템이다.

전반은 이해가 안 가나, 간략히 주요 기능을 추려보면 아래와 같다.

1. 양방향 암호화 지원(대칭키)

2. 별도의 물리적인 공간에 ecryption/decryption을 위한 key를 저장

3. AWS SDK 등을 사용하여, 겁나 쉽게 데이터 ecryption/decryption이 가능함

암호화 방식은 아래 링크에 잘 설명되어 있음.

(https://medium.com/chequer/sqlgate-teams-%EA%B0%9C%EB%B0%9C%EA%B8%B0-1%ED%8E%B8-%EB%B6%80%EC%A0%9C-%EC%95%88%EC%A0%84%ED%95%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%95%94%ED%98%B8%ED%99%94-aws-kms-aes-d2583826ed90)

 

간단한 샘플

import boto3
import base64

kms = boto3.client('kms')
key_id = 'arn:aws:kms:ap-southeast-1:557652101750:key/742a59fe'
date = '{phoneNumber:112}'

enc = kms.encrypt(KeyId = key_id, Plaintext = data)['CiphertextBlob']
enc = base64.b64encode(enc).decode('utf-8')
print('enc: ' + enc)

enc = base64.b64decode(enc)
dec = kms.decrypt(CiphertextBlob = enc)['Plaintext'].decode('utf-8')
print('dec: '+ dec)

 

근데 문제는 KMS를 사용한 데이터들은 모두 AWS에 lock-in 된다. 데이터 옮기려면 decryption 하고 다 뜯어 고쳐야함.

언제까지 AWS만 쓸까... (대안으로 CloudHSM가 있음)

'Security&Identity > KMS' 카테고리의 다른 글

AWS Key Management Service(KMS)  (0) 2019.04.24