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

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

중요

이제 Amazon S3가 Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3)를 Amazon S3 내 모든 버킷 암호화의 기본 수준으로 적용합니다. 2023년 1월 5일부터 Amazon S3로의 모든 새 객체 업로드는 추가 비용 없이 성능에 영향을 미치지 않고 자동으로 암호화됩니다. S3 버킷 기본 암호화 구성에 및 신규 객체 업로드에 대한 자동 암호화 상태는 AWS CloudTrail 로그, S3 인벤토리, S3 스토리지 렌즈, Amazon S3 콘솔에서 사용할 수 있으며, AWS Command Line Interface 및 AWS SDK에서 추가 Amazon S3 API 응답 헤더로도 사용할 수 있습니다. 자세한 내용은 기본 암호화 관련 FAQ를 참조하십시오.

Amazon S3 버킷에 대한 모든 신규 객체 업로드는 기본적으로 Amazon S3 관리형 키(SSE-S3)를 통한 서버 측 암호화로 암호화됩니다.

서버 측 암호화를 사용하여 저장된 데이터를 보호합니다. Amazon S3는 각 객체를 고유한 키로 암호화합니다. 또한 추가 보안 조치로 주기적으로 바뀌는 키를 사용하여 키 자체를 암호화합니다. Amazon S3 서버 측 암호화는 256비트 고급 암호화 표준 갈루아/카운터 모드(AES-GCM)를 사용하여 업로드된 모든 객체를 암호화합니다.

Amazon S3 관리형 키(SSE-S3)를 통한 서버 측 암호화를 사용하는 경우 추가 요금이 부과되지 않습니다. 그러나 기본 암호화 기능을 구성하도록 요청할 경우 표준 Amazon S3 요청 요금이 발생합니다. 요금에 대한 자세한 내용은 Amazon S3 요금을 참조하십시오.

Amazon S3 관리형 키만 사용하여 데이터 업로드를 암호화하도록 요구하는 경우 다음 버킷 정책을 사용할 수 있습니다. 예를 들어 다음 버킷 정책은 요청에 서버 측 암호화를 요청하는 x-amz-server-side-encryption 헤더가 포함되지 않을 경우 객체 업로드 권한을 거부합니다.

{ "Version": "2012-10-17", "Id": "PutObjectPolicy", "Statement": [ { "Sid": "DenyObjectsThatAreNotSSES3", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringNotEquals": { "s3:x-amz-server-side-encryption": "AES256" } } } ] }
참고

서버 측 암호화는 객체 메타데이터가 아닌 객체 데이터만 암호화합니다.

서버 측 암호화를 위한 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를 사용할 수 있습니다.

객체 생성 REST API를 사용하여 서버 측 암호화를 구성하려면 x-amz-server-side-encryption 요청 헤더를 제공해야 합니다. REST API에 대한 정보는 REST API 사용 단원을 참조하십시오.

다음 Amazon S3 API는 이러한 헤더를 지원합니다.

  • PUT 작업 - PUT API를 사용하여 데이터를 업로드할 때 요청 헤더를 지정합니다. 자세한 내용은 PUT Object 단원을 참조하십시오.

  • 멀티파트 업로드 시작 – 멀티파트 업로드 API 작업을 사용하여 대용량 객체를 업로드할 때 시작 요청에 헤더를 지정합니다. 자세한 내용은 멀티파트 업로드 시작을 참조하십시오.

  • COPY 작업 - 객체를 복사할 때 소스 객체 및 대상 객체가 둘 다 있습니다. 자세한 내용은 PUT Object - Copy를 참조하십시오.

참고

POST 작업을 사용하여 객체를 업로드할 경우에는 요청 헤더를 제공하는 대신 양식 필드에 동일한 정보를 제공합니다. 자세한 내용은 POST Object 단원을 참조하십시오.

AWS SDK 또한 서버 측 암호화를 요청하는 데 사용할 수 있는 래퍼 API를 제공하며, AWS Management Console을 사용하여 객체를 업로드하고 서버 측 암호화를 요청할 수도 있습니다.

더 일반적인 내용은 AWS Key Management Service 개발자 안내서의 AWS KMS 개념을 참조하십시오.