Amazon Web Serivce 자격증 쉽게 공부하기/AWS Solutions Architect Associate 핵심
SAA-C03 핵심 #20, KMS
네트워크 엔지니어 환영
2023. 12. 16. 14:06
반응형
KMS(Key Management System)란?
- Key Management System는 말그대로 'key'를 관리하는 시스템으로 데이터를 암호화하고 복호화하는 기능을 담당함
- EBS, S3, RDS, EFS, SNS 등의 서비스에서 데이터 암/복호화 기능을 제공
- KMS를 사용하여 암호화를 관리할 경우 키가 외부로 유출되는 위험이 적으며, AWS가 직접 키의 안전을 책임짐
- 다음 3가지 유형의 키로 나뉨
- AWS 관리형 키
- 고객 관리형 키
- 사용자 키 스토어
AWS KMS Keys(예전 이름 Customer Master Key)
- - 데이터를 암호화하는데 사용하는 데이터 키의 생성에 관여하는 키
- AWS 서비스가 암호화를 시작할 때 KMS Key의 생성을 요청한 후 데이터 암호화를 시작
- KMS Key를 생성한 후에 데이터 키를 생성하고 데이터 암호화를 시작함
- 위의 3가지 유형 키는 KMS Key를 누가 관리하느냐에 따라 달라짐
데이터 키
- 데이터를 암호화하는데 사용되는 대칭키
- 데이터 키만을 활용해 암호화할 수는 없고 OpenSSL 또는 AWS Encryption SDK 같은 암호화 라이브러리를 사용해 암호화 가능
데이터 암호화 과정(봉투 암호화)
- 먼저 암호화를 시작하고자 하는 서비스가 KMS Key의 생성을 요청함
- KMS Key가 생성되고 KMS 키를 통해 데이터를 암호화할 데이터 키를 생성
- KMS는 "평문 데이터 키"와 "암호화한 데이터 키" 두 개를 서비스에 전달함
- 두 개의 키를 전달받은 서비스는 "평문 데이터 키"를 통해 데이터를 암호화하고 "평문 데이터 키"를 폐기함
- 암호화된 데이터와 "암호화한 데이터 키"를 동봉하여 저장함(봉투 암호화)
- 서비스가 데이터를 복호화하고자 할 경우, "암호화된 데이터키"를 KMS에 전달하고 KMS는 KMS Key를 통해 복호화된 평문 데이터 키"를 서비스에 전달함
- 서비스는 "평문 데이터 키"를 이용해 데이터 복호화
AWS 관리형 키(AWS KMS Keys)
- AWS가 직접 KMS Key를 생성, 관리하는 서비스
- 사용자가 KMS Key에 대한 제어 권한이 없음
- AWS가 주기적으로 KMS Key를 변경하여 사용함(1년 주기)
- 대칭키가 사용됨
- 고객 관리형 키를 쓰고 있지 않는데, 암호화를 사용중이라면 AWS 관리형 키를 이용해 암호화하고 있는 것
고객 관리형 키(Customer Master Key)
- 고객이 직접 KMS Key를 생성하고 관리하는 서비스
- 키의 활성화, 비활성화, 삭제 등 제어 권한을 가짐
- IAM을 이용하여 KMS Key에 접근할 주체를 정할 수 있음
사용자 지정 키 스토어
- KMS Key를 KMS가 아닌 CloudHSM에 저장하여 사용하는 방식
- CloudHSM 클러스터가 생성되어 있어야 사용 가능