1. 암호화
Server-Side Encryption (SSE)
Amazon S3-Managed Keys (SSE-S3)
- AWS에 의해 관리되는 키를 사용하여 S3 객체 암호화
- 서버 측에서 객체 암호화
- 암호 알고리즘으로 AES-256 사용
- 요청 헤더에 “x-amz-server-side-encryption”: “AES256” 설정해야 함
- 새 버킷이나 새 객체에 기본적으로 활성화 가능
AWS KMS (SSE-KMS)
- AWS KMS에서 관리하는 키를 사용한 암호화
- KMS 이점
- AWS User 제어
- CloudTrail을 사용한 키 사용 감시
- 서버 측에서 객체 암호화
- 요청 헤더에 “x-amz-server-side-encryption”: “aws:kms” 설정해야 함
- 암호화 키 순환 정책에 관한 제어권은 이용자에게 있음
<aside>
⚠️ SSE-KMS 사용 시에는 제한 사항이 있다. 객체 업로드 시 KMS API 중 GenerateDataKey를 호출한다. 그리고 다운로드 시 KMS API 중 Decrypt를 호출한다. KMS는 리전에 따라 초당 5500, 10000, 30000개의 요청을 처리한다. 이는 콘솔에서 한도를 늘릴 수 있다. 이러한 API 호출은 초당 비용을 유발하므로 주의해야 한다. 또한 처리량이 매우 높은 S3 버킷을 KMS로 암호화한다면 쓰로틀링 오류 등을 발생시킬 수 있으므로 주의하자.
</aside>
SSE-C
- AWS 외부의 고객이 완전히 관리하는 키를 사용한 암호화
- 서버 측에서 암호화