

# 고객 제공 키(SSE-C)로 서버 측 암호화 사용
<a name="ServerSideEncryptionCustomerKeys"></a>

서버 측 암호화는 저장된 데이터를 보호하기 위한 것입니다. 서버 측 암호화는 객체 메타데이터가 아닌 객체 데이터만 암호화합니다. 범용 버킷에서 고객 제공 키를 사용한 서버 측 암호화(SSE-C)를 사용하여 자체 암호화 키로 데이터를 암호화할 수 있습니다. 요청의 일부로 제공한 암호화 키를 사용하여 Amazon S3는 디스크에 쓸 때 데이터 암호화를 관리하고 객체에 액세스할 때 데이터 암호 해독을 관리합니다. 따라서 데이터 암호화 및 암호 해독을 수행하기 위해 어떠한 코드도 사용할 필요가 없으며, 사용자는 자신이 제공한 암호화 키를 관리하기만 하면 됩니다.

Amazon S3의 최신 사용 사례에서는 더 이상 SSE-C를 사용하지 않습니다. SSE-C는 Amazon S3 관리형 키(SSE-S3) 또는 AWS KMS 키를 사용한 서버 측 암호화(SSE-KMS)에 비해 유연성이 부족하기 때문입니다. SSE-C는 SSE-C 암호화 데이터와 상호 작용할 때마다 암호화 키를 제공해야 하므로 SSE-C 키를 S3 버킷에서 데이터를 읽는 다른 사용자, 역할 또는 AWS 서비스와 공유하여 데이터를 운영할 수 없습니다. AWS에서 SSE-KMS에 대한 광범위한 지원으로 인해 대부분의 최신 워크로드는 SSE-KMS의 유연성이 부족하기 때문에 SSE-C 암호화를 사용하지 않습니다. SSE-KMS에 대한 자세한 내용은 [AWS KMS 키를 사용한 서버 측 암호화(SSE-KMS) 사용](UsingKMSEncryption.md) 섹션을 참조하세요.

버킷에 기록되는 객체에 SSE-C 암호화가 사용되지 않도록 하려면 버킷의 기본 암호화 구성을 변경할 때 SSE-C 암호화를 차단합니다. 범용 버킷에 대해 SSE-C가 차단되면 SSE-C 암호화를 지정하는 모든 `PutObject`, `CopyObject`, `PostObject`, 멀티파트 업로드 또는 복제 요청이 `HTTP 403 AccessDenied` 오류와 함께 거부됩니다. SSE-C 차단에 대한 자세한 내용은 [범용 버킷에 대한 SSE-C 차단 또는 차단 해제](blocking-unblocking-s3-c-encryption-gpb.md) 섹션을 참조하세요.

SSE-C 사용에 따르는 추가 비용은 없습니다. 그러나 SSE-C 구성 및 사용 요청에는 표준 Amazon S3 요청 요금이 발생합니다. 요금에 대한 자세한 내용은 [Amazon S3 요금](https://aws.amazon.com/s3/pricing/)을 참조하십시오.

**중요**  
[2025년 11월 19일에 발표](https://aws.amazon.com/blogs/storage/advanced-notice-amazon-s3-to-disable-the-use-of-sse-c-encryption-by-default-for-all-new-buckets-and-select-existing-buckets-in-april-2026/)된 대로 Amazon Simple Storage Service는 모든 새로운 범용 버킷에 대해 고객 제공 키(SSE-C)를 사용한 서버 측 암호화를 자동으로 비활성화하는 새로운 기본 버킷 보안 설정을 배포합니다. SSE-C 암호화 객체가 없는 AWS 계정의 기존 버킷의 경우 Amazon S3는 모든 새 쓰기 요청에 대해 SSE-C도 비활성화합니다. SSE-C를 사용하는 AWS 계정의 경우 Amazon S3는 해당 계정의 기존 버킷에 대한 버킷 암호화 구성을 변경하지 않습니다. 이 배포는 2026년 4월 6일에 시작되었으며 AWS 중국 및 AWS GovCloud(미국) AWS 리전을 포함한 37개 리전에서 향후 몇 주 동안 완료됩니다.  
이러한 변경 사항에 따라 SSE-C 암호화가 필요한 애플리케이션은 새 버킷을 생성한 후 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) API 작업을 사용하여 SSE-C를 의도적으로 활성화해야 합니다. 이 변경에 대한 자세한 내용은 [새 버킷의 기본 SSE-C 설정 FAQ](default-s3-c-encryption-setting-faq.md) 섹션을 참조하세요.

## SSE-C 사용 전 고려 사항
<a name="considerations-before-using-sse-c"></a>
+ SSE-C를 사용할 때 S3는 암호화 키를 저장하지 않습니다. 누구나 S3에서 SSE-C 암호화 데이터를 다운로드하도록 하려면 암호화 키를 제공해야 합니다.
  + 암호화 키가 사용되는 매핑을 관리하여 객체를 암호화합니다. 객체에 대해 제공한 암호화 키는 직접 추적해야 합니다. 즉, 암호화 키를 분실하면 객체도 분실합니다.
  + 암호화 키는 클라이언트 측에서 관리하기 때문에 클라이언트 측에서 키 교체와 같은 추가적인 보안 조치를 관리합니다.
  + 이 설계로 인해 데이터에서 작업할 다른 사용자, 역할 또는 AWS 서비스와 SSE-C 키를 공유하기 어려울 수 있습니다. AWS에서 SSE-KMS에 대한 광범위한 지원으로 인해 대부분의 최신 워크로드는 SSE-KMS의 유연성이 부족하기 때문에 SSE-C를 사용하지 않습니다. SSE-KMS에 대한 자세한 내용은 [AWS KMS 키를 사용한 서버 측 암호화(SSE-KMS) 사용](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)을 참조하세요.
  + 즉, SSE-C로 암호화된 객체는 AWS 관리형 서비스에서 기본적으로 해독할 수 없습니다.
+ 요청에 SSE-C 헤더를 지정할 때는 HTTPS를 사용해야 합니다.
  + Amazon S3는 SSE-C를 사용할 때 HTTP를 통해 전송된 모든 요청을 거부합니다. 보안상의 이유로 인해, 보안에 취약할 수 있는 HTTP를 통해 키를 보내면 오류가 발생할 수 있음을 유의하십시오. 키를 취소하고 적절하게 교체합니다.
+ 버전 관리가 활성화된 버킷의 경우 업로드하는 각 객체 버전에는 자체 암호화 키가 있습니다. 어떤 객체 버전에 어떤 암호화 키가 사용되었는지는 직접 추적해야 합니다.
+ SSE-C는 Amazon S3 콘솔에서 지원되지 않습니다. Amazon S3 콘솔을 사용하여 객체를 업로드하거나 SSE-C 암호화를 지정할 수 없습니다. 또한 SSE-C를 사용하여 저장된 기존 객체를 업데이트할 수 도 없습니다(예: 스토리지 클래스 변경 또는 메타데이터 추가).

**Topics**
+ [SSE-C 사용 전 고려 사항](#considerations-before-using-sse-c)
+ [고객 제공 키를 사용한 서버 측 암호화 지정(SSE-C).](specifying-s3-c-encryption.md)
+ [범용 버킷에 대한 SSE-C 차단 또는 차단 해제](blocking-unblocking-s3-c-encryption-gpb.md)
+ [새 버킷의 기본 SSE-C 설정 FAQ](default-s3-c-encryption-setting-faq.md)