[AWS Official Document](https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html) - AWS S3에서 제공하는 **서버 측 암호화(Server-Side Encryption) 방식 중 하나** - 즉, 데이터를 S3에 저장할 때 **사용자가 직접 제공한 암호화 키로 S3가 암호화를 수행하는 방식** ### 특징 - **고객 제공 키 (Customer-Provided Key)** - 암호화 키를 AWS가 아닌 사용자가 직접 관리 - 요청 시마다 키를 함께 전달해야 함 - **서버 측 암호화** - 데이터는 S3 서버에서 암호화/복호화 수행 - 저장 시 암호화, 다운로드 시 자동 복호화 - **키 미저장** - S3는 암호화 키를 저장하지 않음 - 요청 처리 후 즉시 폐기 - **HTTPS 필수** - 키를 요청에 포함하므로 반드시 HTTPS로 전송해야 함 - **표준 암호화 알고리즘 사용** - AES-256 기반 암호화 적용 - **헤더 기반 전달** - 요청 시 헤더에 암호화 키 포함 - 예: `x-amz-server-side-encryption-customer-key` ### 사용 예시 - 조직에서 **암호화 키를 외부(AWS)에 맡기지 않고 직접 관리해야 하는 경우** - 내부 보안 정책상 **키 완전 통제권이 필요한 환경** - 특정 데이터에 대해 **커스텀 키 적용이 필요한 경우** ### 한계 - **키 관리 책임 전적으로 사용자에게 있음** - 키 분실 시 데이터 복구 불가 - **매 요청마다 키 필요** - 업로드/다운로드 시 항상 키를 포함해야 함 - **운영 복잡도 높음** - 키 관리, 보안, 전송까지 모두 직접 처리 필요 - **KMS 기능 사용 불가** - 감사 로그, 키 정책 등 KMS 기능 활용 불가능