KMS (Key Management Service)
- 암호키(Encryption Key) 생성 및 데이터 암호화
- AWS Resources들과 연동해서 사용 가능
✓ S3, EBS, RDS, EFS, DynamoDB, Lamda, CloudTrail 등등
- 고객 데이터, DB Password & Credentials 등등
CMK (Customer Master Key)
- Data key를 통해 4KB 데이터 Encrypt & Decrypt
- 대칭키(Symmetric): AWS 사용자만 Encrypt, Decrypt 가능
- 비대칭키(Asymmetric): 외부 사용자 또한 Encypt, Decrypt 가능
Envelope Encryption/Decrypt 프로세스
=> 데이터 Key를 통하는 이유는 암호화하거나 될 데이터가 CMK를 거치지 않도록 하기 위함
이를 통해 데이터가 직접적으로 KMS 네트워크 서비스로 이동되지 않아도 되기 때문에 부하가 생기지 않음
- 데이터 암호화 프로세싱 (~4KB)
✓ Encryption
-
KMS에 있는 CMK를 통해 GenerateDataKeyAPI 호출
-
해당 API가 Data Key(CMK)를 통해 암호화
✓ Description
-
암호화 된 데이터와 Data Key
-
암호화 된 Data Key가 CMK를 통해 DecryptAPI 호출
-
DecryptAPI가 Decrypted Data Key 반환
-
Decrypted Data Key를 통해 Data 해독
-
데이터 키 메모리에서 삭제
시나리오 - KMS 생성 후 S3 버킷에 업로드 파일에 대해 KMS 적용/미적용 접근
- KMS 생성
- 대칭키 사용시 키 관리자와 접근자 AWS IAM User를 설정할 수 있다.
- S3 버킷 생성 후 파일 업로드
- 암호화 지정
- 버킷 접근
3.1) 암호화 (다른 AWS 유저 접근 및 다운로드 불가)
3.2) 비암호화
- 스케줄링을 통해 해당 키의 삭제시간 설정 가능