안녕하세요 서후아빠입니다. ^_^
이번 세션은 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) |
'Security' 카테고리의 다른 글
[실습] AWS Network Firewall 구성하기 (0) | 2022.08.01 |
---|---|
[이론] AWS Network Firewall 기본 개념 (1) | 2022.07.27 |
[실습] AWS Certificate Manager (ACM)을 이용하여 인증서(Public, Private) 발급하여 Route 53과 ELB 연동하기-2편 (2) | 2022.07.26 |
[실습] AWS Certificate Manager (ACM)을 이용하여 인증서(Public, Private) 발급하여 Route 53과 ELB 연동하기-1편 (0) | 2022.07.26 |
[실습] AWS IAM의 Permissions boundary(권한 경계)를 이용하여 미흡한 운영자로부터 서비스 인프라 보호하기 (0) | 2022.07.25 |