일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 백엔드
- 컴퓨터공학
- 타입스크립트
- 리액트
- 가상화
- 백준
- es6
- 웹
- JavaScript
- next.js
- 이슈
- react
- 자바스크립트
- docker
- 프론트엔드
- VUE
- k8s
- 솔리디티
- 알고리즘
- 파이썬
- 블록체인
- 이더리움
- AWS
- 쿠버네티스
- kubernetes
- HTML
- CSS
- BFS
- 클라우드
- TypeScript
- Today
- Total
즐겁게, 코드
S3 버킷 데이터 암호화 방법 본문
S3 버킷에 담긴 데이터(객체)의 암호화는 크게 "서버에서 암호화하느냐, 클라이언트에서 암호화하느냐" 로 나뉩니다.
서버 사이드 암호화 (SSE)
서버 사이드 암호화 방식에는 크게 SSE-S3, SSE-KMS, SSE-C 의 3종류가 존재합니다.
SSE-S3
SSE-S3는 AWS에서 제공 / 관리되는 키를 통해 데이터를 암호화하는 방법입니다.
암호화 방법은 정말 간단한데요, 버킷에 객체를 업로드할 때 헤더에 "x-amz-server-side-encryption": "AES256"
키-값 쌍을 추가해 업로드하면 자동으로 S3에서 제공되는 키를 통해 암호화됩니다.
✅ 헤더에 추가하는 값을 보면 추측할 수 있듯, SSE-S3는 AES256 암호화 알고리즘을 사용합니다.
SSE-KMS
SSE-KMS는 AWS KMS(Key Management Service)를 통해 암호화용 키를 적용하는 방법입니다.
SSE-S3와 유사하게 헤더에 "x-amz-server-side-encryption": "aws:kms"
키-값 쌍을 추가해 적용할 수 있으며, KMS에서 관리하는 키는 사용자가 설정할 수 있고 누가 키를 사용했는지 등 기록 조회가 가능하다는 장점이 존재합니다.
SSE-C
SSE-C는 회사 또는 개인이 온프레미스 환경에서 자체적으로 관리하는 키를 통해 암호화하는 방법입니다.
특이한 점으로는 SSE-KMS나 SSE-S3와는 다르게 반드시 HTTPS 프로토콜을 통해 요청을 보내야 하며, 요청에는 사용자가 사용할 임의의 데이터 키를 포함해야 합니다.
클라이언트 사이드 암호화
위에서 다룬 내용들이 서버 사이드에서 암호화를 적용하는 방법이었다면, 클라이언트 사이드 암호화는 클라이언트에서 암호화한 데이터를 버킷에 업로드하는 방법입니다.
클라이언트 단에서 암호화를 위해 Amazon Encryption SDK 등 다양한 방법 을 적용할 수 있으며, 암호화한 데이터를 버킷에서 내려받을 때도 동일한 방법으로 복호화를 수행해야 합니다.
'☁️ 클라우드 > AWS' 카테고리의 다른 글
AWS Certified Developer Associate : IAM 기초 (0) | 2023.12.10 |
---|---|
예약 인스턴스와 스팟 인스턴스로 EC2 비용 절감하기 (0) | 2022.04.17 |
서비스의 유연성을 위한 Auto Scaling Group 알아보기 (0) | 2022.04.09 |
프라이빗 클라우드 구축하기 - VPC란 무엇인가 (0) | 2022.04.06 |
EC2 배치 그룹 알아보기 (0) | 2022.04.03 |