서버 측 암호화로 데이터 보호하기

서버 측 암호화로 데이터 보호하기 (Protecting data with server-side encryption)

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를 참고하세요.

중요 Amazon S3는 이제 Amazon S3 관리 키(SSE-S3)를 사용한 서버 측 암호화를 모든 버킷의 기본 암호화 수준으로 적용해요. 2023년 1월 5일부터 Amazon S3에 업로드되는 모든 새 객체는 추가 비용 없이 성능 영향 없이 자동으로 암호화돼요. S3 버킷 기본 암호화 구성과 새 객체 업로드에 대한 자동 암호화 상태는 CloudTrail 로그, S3 Inventory, S3 Storage Lens, Amazon S3 콘솔, 그리고 AWS CLI 및 AWS SDK의 추가 Amazon S3 API 응답 헤더에서 확인할 수 있어요. 자세한 내용은 기본 암호화 FAQ를 참고하세요.

서버 측 암호화는 데이터를 수신하는 애플리케이션이나 서비스가 대상 지점에서 데이터를 암호화하는 것을 말해요. Amazon S3는 데이터를 AWS 데이터 센터의 디스크에 쓸 때 객체 수준에서 데이터를 암호화하고, 사용자가 접근할 때 복호화해 줘요. 요청을 인증하고 접근 권한을 가졌다면 암호화된 객체와 암호화되지 않은 객체에 접근하는 방식에는 차이가 없어요. 예를 들어 사전 서명된 URL로 객체를 공유한다면 그 URL은 암호화된 객체와 암호화되지 않은 객체 모두에서 동일하게 동작해요. 또한 버킷의 객체를 나열할 때 목록 API 작업은 객체가 암호화되었는지와 관계없이 모든 객체 목록을 반환해요.

모든 Amazon S3 버킷에는 기본적으로 암호화가 구성되어 있고, S3 버킷에 업로드되는 모든 새 객체는 저장 시 자동으로 암호화돼요. Amazon S3 관리 키(SSE-S3)를 사용한 서버 측 암호화는 Amazon S3의 모든 버킷에 대한 기본 암호화 구성이에요. 다른 유형의 암호화를 사용하려면 S3 PUT 요청에서 사용할 서버 측 암호화 유형을 지정하거나 대상 버킷의 기본 암호화 구성을 업데이트할 수 있어요.

PUT 요청에서 다른 암호화 유형을 지정하려면 AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS), AWS KMS 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS), 또는 고객 제공 키를 사용한 서버 측 암호화(SSE-C)를 사용할 수 있어요. 대상 버킷에 다른 기본 암호화 구성을 설정하려면 SSE-KMS 또는 DSSE-KMS를 사용할 수 있어요.

범용 버킷의 기본 암호화 구성을 변경하는 방법에 대한 자세한 내용은 기본 암호화 구성을 참고하세요.

버킷의 기본 암호화 구성을 SSE-KMS로 변경해도 버킷에 있는 기존 Amazon S3 객체의 암호화 유형은 변경되지 않아요. 기본 암호화 구성을 SSE-KMS로 업데이트한 후 기존 객체의 암호화 유형을 변경하려면 Amazon S3 Batch Operations를 사용할 수 있어요. S3 Batch Operations에 객체 목록을 제공하면 Batch Operations가 해당 API 작업을 호출해요. 객체 복사(Copy objects) 작업을 사용해 기존 객체를 복사하면 같은 버킷에 SSE-KMS로 암호화된 객체로 다시 써요. 단일 Batch Operations 작업은 수십억 개의 객체에 지정된 작업을 수행할 수 있어요. 자세한 내용은 Batch Operations로 객체 작업을 일괄 수행하기와 AWS Storage Blog 게시물 S3 Inventory, Amazon Athena, S3 Batch Operations를 사용해 Amazon S3의 기존 객체를 소급해서 암호화하는 방법을 참고하세요.

참고 같은 객체에 서로 다른 유형의 서버 측 암호화를 동시에 적용할 수는 없어요.

기존 객체를 암호화해야 한다면 S3 Batch Operations와 S3 Inventory를 사용하세요. 자세한 내용은 Amazon S3 Batch Operations로 객체 암호화하기와 Batch Operations로 객체 작업을 일괄 수행하기를 참고하세요.

Amazon S3에 데이터를 저장할 때 암호화 키를 관리하는 방법과 적용하려는 암호화 계층 수에 따라 서버 측 암호화에는 네 가지 상호 배타적인 옵션이 있어요.

Amazon S3 관리 키를 사용한 서버 측 암호화 (SSE-S3)

모든 Amazon S3 버킷에는 기본적으로 암호화가 구성되어 있어요. 서버 측 암호화의 기본 옵션은 Amazon S3 관리 키(SSE-S3)를 사용하는 것이에요. 각 객체는 고유한 키로 암호화돼요. 추가 안전 장치로 SSE-S3는 키 자체를 정기적으로 교체하는 루트 키로 암호화해요. SSE-S3는 사용 가능한 가장 강력한 블록 암호 중 하나인 256비트 고급 암호화 표준(AES-256)을 사용해 데이터를 암호화해요. 자세한 내용은 Amazon S3 관리 키를 사용한 서버 측 암호화(SSE-S3)를 참고하세요.

AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화 (SSE-KMS)

AWS KMS 키를 사용한 서버 측 암호화(SSE-KMS)는 AWS KMS 서비스와 Amazon S3의 통합을 통해 제공돼요. AWS KMS를 사용하면 키를 더 세밀하게 제어할 수 있어요. 예를 들어 개별 키를 보고, 제어 정책을 편집하고, AWS CloudTrail에서 키를 추적할 수 있어요. 또한 직접 관리하는 고객 관리 키를 만들고 관리하거나 사용자, 서비스, 리전에 고유한 AWS 관리 키를 사용할 수 있어요. 자세한 내용은 AWS KMS 키를 사용한 서버 측 암호화(SSE-KMS)를 참고하세요.

AWS Key Management Service(AWS KMS) 키를 사용한 이중 계층 서버 측 암호화 (DSSE-KMS)

AWS KMS 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS)는 SSE-KMS와 유사하지만, DSSE-KMS는 단일 계층 대신 두 개의 독립적인 AES-256 암호화 계층을 적용해요. 먼저 AWS KMS 데이터 암호화 키를 사용하고, 그런 다음 별도의 Amazon S3 관리 암호화 키를 사용해요. 두 암호화 계층 모두 객체에 서버 측에서 적용되므로 다중 계층 암호화에 대한 규정 준수 요구 사항을 충족하는 암호화 방법을 사용하면서도 다양한 AWS 서비스와 도구로 S3의 데이터를 분석할 수 있어요. 자세한 내용은 AWS KMS 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS)를 참고하세요.

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

고객 제공 키를 사용한 서버 측 암호화(SSE-C)에서는 사용자가 암호화 키를 관리하고, Amazon S3는 디스크에 쓸 때 암호화, 객체에 접근할 때 복호화를 관리해요. 자세한 내용은 고객 제공 키를 사용한 서버 측 암호화(SSE-C)를 참고하세요.

참고 SSE-C로 암호화된 객체는 주석을 지원하지 않아요. SSE-C로 암호화된 객체에 주석을 추가하려고 하면 오류가 반환돼요. 다른 모든 암호화 유형에서는 주석이 상위 객체의 암호화 구성을 상속해요. S3 Bucket Keys는 SSE-KMS로 암호화된 객체의 주석에 대해 지원돼요.

참고 S3 액세스 포인트를 사용하는 Amazon FSx 파일 시스템용 액세스 포인트를 사용할 때는 서버 측 암호화 옵션이 하나뿐이에요.

Amazon FSx를 사용한 서버 측 암호화 (SSE-FSX)

모든 Amazon FSx 파일 시스템에는 기본적으로 암호화가 구성되어 있으며 AWS Key Management Service로 관리되는 키를 사용해 저장 시 암호화돼요. 데이터를 파일 시스템에 쓰고 읽을 때 데이터가 자동으로 암호화되고 복호화돼요. 이러한 프로세스는 Amazon FSx가 투명하게 처리해요.

더 알아보기 (Learn more)