종류
<aside>
🌁
- Server-Side Encryption(SSE)
-
SSE-3

- S3 default 값
- Amazon S3-Managed Keys를 이용하는 서버측 암호화
- 사용자는 이 키에 접근할 수 없기 때문에, header를 “x-amz-server-side-encryption”:”AES256”로 설정해서 SSE-S3를 메커니즘으로 객체를 암호화하도록 요청 해야함
-
SSE-KMS

- AWS KMS에 저장된 KMS Key를 이용하는 서버 암호화
-
SSE-C

- 고객 제공 키를 사용한 서버측 암호화(SSE-C)
- 키가 AWS 외부에서 관리되지만 AWS로 키를 보내기 때문
- 키는 서버에 저장되지 않고 사용 후 폐기
- HTTP 헤더에 암호화 키가 항상 포함되어야 함
-
Client-Side Encryption

- 데이터를 S3로 보내기 전에 데이터를 암호화하고 데이터를 다운로드 후 해독
- 데이터를 S3에 보내기 전에 클라이언트가 직접 암호화 해야함
- 암호화된 데이터는 S3에서 가져올 수도 있고 데이터 복호화는 S3 외부의 클라이언트에서 수행
- 이 방식으로 클라이언트 라이브러리를 더 쉽게 구현 가능
</aside>