Amazon S3가 관리하는 암호화 키(SSE-S3)를 사용하는 서버 측 암호화로 데이터 보호 - Amazon Simple Storage Service

Amazon S3가 관리하는 암호화 키(SSE-S3)를 사용하는 서버 측 암호화로 데이터 보호

서버 측 암호화를 사용하여 저장된 데이터를 보호합니다. Amazon S3는 각 객체를 고유한 키로 암호화합니다. 또한 추가 보안 조치로 주기적으로 바뀌는 키를 사용하여 키 자체를 암호화합니다. Amazon S3 서버 측 암호화는 가장 강력한 블록 암호 중 하나인 256비트 Advanced Encryption Standard(AES-256)를 사용하여 데이터를 암호화합니다.

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

버킷에 저장된 모든 객체에 대해 서버 측 암호화가 필요할 경우 버킷 정책을 사용합니다. 예를 들어 다음 버킷 정책은 요청에 서버 측 암호화를 요청하는 x-amz-server-side-encryption 헤더가 포함되지 않을 경우 객체 업로드 권한을 거부합니다.

{ "Version": "2012-10-17", "Id": "PutObjectPolicy", "Statement": [ { "Sid": "DenyIncorrectEncryptionHeader", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::awsexamplebucket1/*", "Condition": { "StringNotEquals": { "s3:x-amz-server-side-encryption": "AES256" } } }, { "Sid": "DenyUnencryptedObjectUploads", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::awsexamplebucket1/*", "Condition": { "Null": { "s3:x-amz-server-side-encryption": "true" } } } ] }
참고
  • 서버 측 암호화는 객체 메타데이터가 아니라 객체 데이터만 암호화합니다.

서버 측 암호화를 위한 API 지원

객체 생성 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을 사용하여 객체를 업로드하고 서버 측 암호화를 요청할 수도 있습니다.