View a markdown version of this page

고객 제공 키(SSE-C)로 서버 측 암호화 사용 - Amazon Simple Storage Service

고객 제공 키(SSE-C)로 서버 측 암호화 사용

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

2026년 4월부터 모든 새 범용 버킷과 SSE-C 암호화 객체가 없는 계정의 기존 버킷에 대해 SSE-C가 기본적으로 비활성화됩니다. 대부분의 최신 워크로드는 Amazon S3 관리형 키(SSE-S3) 또는 AWS KMS 키(SSE-KMS)를 사용한 서버 측 암호화를 대신 사용합니다. SSE-C는 모든 요청에 ​​암호화 키를 제공해야 하므로 데이터로 작업하는 다른 사용자, 역할 또는 AWS 서비스와 액세스 권한을 공유하는 것이 비실용적이기 때문입니다. SSE-KMS에 대한 자세한 내용은 AWS KMS 키를 사용한 서버 측 암호화(SSE-KMS) 사용 섹션을 참조하세요.

워크로드에 SSE-C가 필요한 경우 PutBucketEncryption API를 사용하여 버킷의 기본 암호화 구성에서 BlockedEncryptionTypesNONE으로 설정하여 명시적으로 활성화해야 합니다. SSE-C가 차단되면 SSE-C 암호화를 지정하는 모든 PutObject, CopyObject, PostObject 또는 멀티파트 업로드 또는 복제 요청이 HTTP 403 AccessDenied 오류와 함께 거부됩니다. 자세한 내용은 범용 버킷에 대한 SSE-C 차단 또는 차단 해제를 참조하세요.

SSE-C 사용에 따르는 추가 비용은 없습니다. 그러나 SSE-C 구성 및 사용 요청에는 표준 Amazon S3 요청 요금이 발생합니다. 요금에 대한 자세한 내용은 Amazon S3 요금을 참조하십시오.

중요

Amazon Simple Storage Service는 이제 모든 새로운 범용 버킷에 대해 고객 제공 키(SSE-C)를 사용한 서버 측 암호화를 자동으로 비활성화하는 새로운 기본 버킷 보안 설정을 적용합니다. 2026년 4월에 Amazon S3는 모든 새로운 범용 버킷에서 모든 새 쓰기 요청에 대해 SSE-C 암호화를 비활성화하는 업데이트를 배포했습니다. SSE-C 암호화 객체가 없는 AWS 계정의 기존 버킷인 경우 Amazon S3는 모든 새 쓰기 요청에 대해 SSE-C도 비활성화합니다. 이 변경 사항에 따라 SSE-C 암호화가 필요한 애플리케이션은 새 버킷을 생성한 후 PutBucketEncryption API 작업을 사용하여 SSE-C를 의도적으로 활성화해야 합니다. 이 변경에 대한 자세한 내용은 새 버킷의 기본 SSE-C 설정 FAQ 섹션을 참조하세요.

SSE-C 사용 전 고려 사항

  • SSE-C를 사용할 때 S3는 암호화 키를 저장하지 않습니다. 누구나 S3에서 SSE-C 암호화 데이터를 다운로드하도록 하려면 암호화 키를 제공해야 합니다.

    • 암호화 키가 사용되는 매핑을 관리하여 객체를 암호화합니다. 객체에 대해 제공한 암호화 키는 직접 추적해야 합니다. 즉, 암호화 키를 분실하면 객체도 분실합니다.

    • 암호화 키는 클라이언트 측에서 관리하기 때문에 클라이언트 측에서 키 교체와 같은 추가적인 보안 조치를 관리합니다.

    • 이 설계로 인해 데이터로 작업해야 하는 다른 사용자, 역할 또는 AWS 서비스와 SSE-C 키를 공유하기 어려울 수 있습니다. AWS에서 SSE-KMS에 대한 광범위한 지원으로 인해 대부분의 최신 워크로드는 SSE-KMS의 유연성이 부족하기 때문에 SSE-C를 사용하지 않습니다. SSE-KMS에 대한 자세한 내용은 AWS KMS 키를 사용한 서버 측 암호화(SSE-KMS) 사용을 참조하세요.

    • 즉, SSE-C로 암호화된 객체는 AWS 관리형 서비스에서 기본적으로 해독할 수 없습니다.

  • 요청에 SSE-C 헤더를 지정할 때는 HTTPS를 사용해야 합니다.

    • Amazon S3는 SSE-C를 사용할 때 HTTP를 통해 전송된 모든 요청을 거부합니다. 보안상의 이유로 인해, 보안에 취약할 수 있는 HTTP를 통해 키를 보내면 오류가 발생할 수 있음을 유의하십시오. 키를 취소하고 적절하게 교체합니다.

  • 버전 관리가 활성화된 버킷의 경우 업로드하는 각 객체 버전에는 자체 암호화 키가 있습니다. 어떤 객체 버전에 어떤 암호화 키가 사용되었는지는 직접 추적해야 합니다.

  • SSE-C는 Amazon S3 콘솔에서 지원되지 않습니다. Amazon S3 콘솔을 사용하여 객체를 업로드하거나 SSE-C 암호화를 지정할 수 없습니다. 또한 SSE-C를 사용하여 저장된 기존 객체를 업데이트할 수 도 없습니다(예: 스토리지 클래스 변경 또는 메타데이터 추가).

  • 새 버킷의 경우 SSE-C가 기본적으로 차단됩니다. SSE-C 암호화로 객체를 업로드하려면 먼저 PutBucketEncryption API를 사용하여 SSE-C를 명시적으로 활성화해야 합니다. 자세한 내용은 범용 버킷에 대한 SSE-C 차단 또는 차단 해제 섹션을 참조하세요.