본문 바로가기

Security

[이론] AWS KMS (Key Management Service) 기본 개념

반응형

안녕하세요 서후아빠입니다. ^_^

이번 세션은 AWS KMS에 대해서 업무적으로 필요한 최소한의 개념에 대해서 간단히 정리해 보았습니다.


개요

KMS를 이용하여 AWS 내에 존재하는 데이터를 암복호화하는 서비스

구분 AWS 관리형 key 고객 관리형 key AWS 소유 key
정의 AWS 서비스가 고객의 계정에서 고객 대신 생성, 관리 및 사용하는 KMS key 사용자가 생성, 소유 및 관리하는 AWS 계정의 KMS key AWS 서비스가 여러 AWS 계정에서 사용하기 위해 소유하고 관리하는 KMS 키 모음
권한 AWS 고객 AWS
비용 무료 (프리티어 초과 시 요금 부과) 유료 무료

고객 관리형 key 삭제

  - key와 연결된 구성 요소(모든 메타데이터 포함) 삭제되어 복구 불가능하고, 해당 key로 암호화된 data는 복호화 불가능

  - 즉시 삭제에 따른 문제점 해결을 위한 대책으로 필수적으로 대기기간 (7~30일) 설정 

AWS 관리형 key와 고객 관리형 key 용도에 대해서 예시(AWS Backup 백업 볼트 생성 시 “암호화 키” 사용) 비교

  - AWS 관리형 key로 선택하는 경우 : aws/backup를 사용하여 data 암호화 하는 것

  - 고객 관리형 key로 선택하는 경우 : 고객이 수동 생성한(ex : cmk01) key를 사용하여 data 암호화 하는 것

즉, 사용자가 어떤 key를 가지고 암호화 할 것인지 선택의 문제입니다. 

대칭(Symmetric), 비대칭(Asymmetric)

구분 대칭 비대칭
암복호화 key 비교 암호화 key = 복호화 key 암호화 key ≠ 복호화 key

- 공개키 암호화 : 복호화하는 주체가 가진 key로 암호화하는 방식
- 개인키 암호화 : 암호화하는 주체가 가진 key로 암호화하는 방식
대칭/비대칭 관련 자료는 아래 링크에 정리가 잘되어 있습니다. 참고하시기 바랍니다.
https://velog.io/@gs0351/%EB%8C%80%EC%B9%AD%ED%82%A4-vs-%EA%B3%B5%EA%B0%9C%ED%82%A4%EB%B9%84%EB%8C%80%EC%B9%AD%ED%82%A4

AWS 관리형 key 생성

AWS 서비스 사용 중 자동 생성된 키 목록 예시 : KMS > AWS managed keys

  - aws/backup : AWS Backup 백업 볼트 생성 시 “암호화 키” 사용 시 자동 생성

  - aws/rds : RDS 생성 옵션 중에서 “데이터베이스 인증"사용 시 자동 생성

각 AWS 서비스 생성 시 자동으로 생성되는 key로써 사용자가 임의로 삭제 및 수정이 불가능

고객 관리형 key 생성

KMS > Customer managed keys > Create key (예를 들어 user01이 관리자고, 단일 리전에서만 사용하는 경우)

Configure key Add labels Define key administrative permissions Define key usage permissions
Key type: Symmetric (or Asymmetric)
Key usage : Encrypt and decrypt (or Generate and verify MAC)
Key material origin : KMS (or External or Custom key store)
Regionality : Single-Region key (or Multi-Region key )
Alias : cmk01 Key administrators : user01
Key deletion : unckeck
사용자나 서비스 선택
Custom key store : HSM 연계
Single-Region key : 다른 리전 복제 차단
Multi-Region key : 다른 리전 복제 허용
Alias : 별칭으로 name으로 인식하시면 됩니다.
Key deletion : key 삭제되면 해당 key로 암호화된 데이터 복호화 불가능하기 때문에 가급적 허용하지 않습니다.
Define key usage permissions : 현재 계정뿐만 아니라 다른 계정에도 권한 부여 가능합니다.

CloudTrail에서 KMS로 logging 이력 확인 (예시)

encryptionContext": {"aws:s3:arn": "arn:aws:s3:::test-bucket/test-object"}

ARN": "arn:aws:kms:ap-northeast-2:239243157363:key/cmk01

암호화 여부 암호 대상 암호화 시 사용한 KMS key 위치
encryptionContext s3:::test-bucket/test-object ap-northeast-2:239243157363:key/cmk01
(Region:aws-account-id:key/key-alias)
반응형