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를 설정할 수 있다.
![](https://velog.velcdn.com/images/jaehyeon23/post/618d15e4-1646-48a4-9475-512ac3b1b2f7/image.png)
![](https://velog.velcdn.com/images/jaehyeon23/post/f72816df-f61b-4329-9b12-9b313fa15d16/image.png)
- S3 버킷 생성 후 파일 업로드
- 암호화 지정
![](https://velog.velcdn.com/images/jaehyeon23/post/d8a593b7-81f2-4062-8594-e0d5bf4c3044/image.png)
- 버킷 접근
3.1) 암호화 (다른 AWS 유저 접근 및 다운로드 불가)
![](https://velog.velcdn.com/images/jaehyeon23/post/931f72b6-ea67-4728-b8d0-df970ccf52ca/image.png)
3.2) 비암호화
![](https://velog.velcdn.com/images/jaehyeon23/post/5d48be62-cb74-4f4d-a181-5347618e46dd/image.png)
- 스케줄링을 통해 해당 키의 삭제시간 설정 가능
![](https://velog.velcdn.com/images/jaehyeon23/post/685ffdb8-b24f-47c3-a6c2-c0e522e49019/image.png)