Amazon S3 버킷 키를 사용하여 SSE-KMS 비용 절감 - Amazon Simple Storage Service

Amazon S3 버킷 키를 사용하여 SSE-KMS 비용 절감

Amazon S3 버킷 키는 AWS Key Management Service(SSE-KMS)을(를) 사용하여 Amazon S3 서버 측 암호화 비용을 절감합니다. 이 새로운 SSE용 버킷 수준 키는 Amazon S3에서 AWS KMS로 가는 요청 트래픽을 줄여 AWS KMS 요청 비용을 최대 99% 줄일 수 있습니다. AWS Management Console에서 몇 번만 클릭하면 클라이언트 애플리케이션을 변경하지 않고도 새 객체에 대한 AWS KMS 기반 암호화에 S3 버킷 키를 사용하도록 버킷을 구성할 수 있습니다.

SSE-KMS용 S3 버킷 키

SSE-KMS로 암호화된 수백만 또는 수십억 개의 객체에 액세스하는 워크로드는 AWS KMS에 대한 대규모 볼륨 요청을 생성할 수 있습니다. S3 버킷 키 없이 SSE-KMS를 사용하여 데이터를 보호하는 경우 Amazon S3는 모든 객체에 대해 개별 AWS KMS 데이터 키를 사용합니다. 그리고 KMS 암호화 객체에 대해 요청이 이루어질 때마다 AWS KMS를 호출합니다. SSE-KMS 작동 방식에 대한 자세한 내용은 AWS Key Management Service(SSE-KMS)를 사용하는 서버 측 암호화로 데이터 보호 단원을 참조하세요.

SSE-KMS용 S3 버킷 키를 사용하도록 버킷을 구성하면 AWS KMS는 버킷에 추가되는 객체에 대해 고유한 데이터 키를 생성하는 데 사용되는 버킷 수준 키를 생성합니다. 이 S3 버킷 키는 Amazon S3 내에서 제한된 기간 동안 사용되므로 Amazon S3가 암호화 작업을 완료하기 위해 AWS KMS에 요청할 필요성이 줄어듭니다. 이렇게 하면 S3에서 AWS KMS로 가는 트래픽이 줄어들어, 이전 비용의 일부만 부담하면 S3의 AWS KMS 암호화 객체에 액세스할 수 있습니다.

S3 버킷 키를 구성할 때 이미 버킷에 있는 객체에는 S3 버킷 키가 사용되지 않습니다. 기존 객체에 대해 S3 버킷 키를 구성하려면 COPY 작업을 사용하면 됩니다. 자세한 정보는 배치 작업, REST API, AWS SDK 또는 AWS CLI를 사용하여 객체 수준에서 S3 버킷 키 구성을 참조하세요.

Amazon S3는 동일한 AWS KMS key로 암호화된 객체에 대해서만 S3 버킷 키를 공유합니다.


        S3 버킷의 객체에 대한 데이터 키를 만드는 버킷 키를 생성하는 AWS KMS를 보여 주는 다이어그램입니다.

S3 버킷 키 구성

Amazon S3 콘솔, AWS SDK, AWS CLI 또는 REST API를 통해 새 객체에 SSE-KMS용 S3 버킷 키를 사용하도록 버킷을 구성할 수 있습니다. 또한, REST API, AWS SDK 또는 AWS CLI를 사용하여 개별 객체별 KMS 키를 이용해 버킷의 특정 객체에 대한 S3 버킷 키 구성을 재정의할 수도 있습니다. S3 버킷 키 설정을 볼 수도 있습니다.

S3 버킷 키를 사용하도록 버킷을 구성하기 전에 S3 버킷 키를 사용 설정하기 전에 유의할 변경 사항을(를) 검토하세요.

Amazon S3 콘솔을 사용하여 S3 버킷 키 구성

새 버킷을 생성할 때 새 객체에 SSE-KMS용 S3 버킷 키를 사용하도록 버킷을 구성할 수 있습니다. 버킷 속성을 업데이트하여 새 객체에 SSE-KMS용 S3 버킷 키를 사용하도록 기존 버킷을 구성할 수도 있습니다. 

자세한 정보는 새 객체에 SSE-KMS와 함께 S3 버킷 키를 사용하도록 버킷 구성을 참조하십시오.

S3 버킷 키에 대한 REST API, AWS CLI 및 AWS SDK 지원

REST API, AWS CLI 또는 AWS SDK를 사용하여 새 객체에서 SSE-KMS용 S3 버킷 키를 사용하도록 버킷을 구성할 수 있습니다. 객체 수준에서 S3 버킷 키를 사용 설정할 수도 있습니다.

자세한 내용은 다음 자료를 참조하세요. 

다음 API는 SSE-KMS에 대한 S3 버킷 키를 지원합니다.

AWS CloudFormation로 작업하기

AWS CloudFormation에서 AWS::S3::Bucket 리소스에는 S3 버킷 키를 사용하거나 사용 중지하는 데 사용할 수 있는 BucketKeyEnabled라는 암호화 속성이 포함되어 있습니다.

자세한 정보는 AWS CloudFormation 사용을 참조하십시오.

S3 버킷 키를 사용 설정하기 전에 유의할 변경 사항

S3 버킷 키를 사용 설정하기 전에 다음과 같은 관련 변경 사항에 유의하세요.

IAM 또는 KMS 주요 정책

기존 IAM 정책 또는 AWS KMS 키 정책이 객체 Amazon 리소스 이름(ARN)을 암호화 컨텍스트로 사용하여 KMS 키에 대한 액세스를 구체화하거나 제한하는 경우, 이러한 정책은 S3 버킷 키와 함께 작동하지 않습니다. S3 버킷 키는 버킷 ARN을 암호화 컨텍스트로 사용합니다. S3 버킷 키를 사용하기 전에 버킷 ARN을 암호화 컨텍스트로 사용하도록 IAM 정책 또는 AWS KMS 키 정책을 업데이트합니다.

암호화 컨텍스트 및 S3 버킷 키에 대한 자세한 내용은 암호화 컨텍스트 단원을 참조하세요.

AWS KMS CloudTrail 이벤트

S3 버킷 키를 사용하면 AWS KMS CloudTrail 이벤트가 객체 ARN 대신 버킷 ARN을 기록합니다. 또한, 로그에 SSE-KMS 객체에 대한 KMS CloudTrail 이벤트가 줄어든 것을 확인할 수 있습니다. Amazon S3에서 키 구성 요소의 시간은 제한되어 있으므로 AWS KMS에 대한 요청 수가 줄어듭니다. 

복제와 함께 S3 버킷 키 사용

S3 버킷 키를 동일 리전 복제(SRR) 및 교차 리전 복제(CRR)와 함께 사용할 수 있습니다.

Amazon S3는 암호화된 객체를 복제할 때 일반적으로 대상 버킷에 복제본 객체의 암호화 설정을 보존합니다. 그러나 원본 객체가 암호화되지 않고 대상 버킷에서 기본 암호화 또는 S3 버킷 키를 사용하는 경우, Amazon S3는 대상 버킷의 구성으로 객체를 암호화합니다.

다음 예에서는 S3 버킷 키가 복제와 함께 작동하는 방식을 보여 줍니다. 자세한 정보는 KMS 키를 사용하여 서버 측 암호화(SSE)로 생성된 객체 복제을 참조하십시오. 

예제 1 – 원본 객체가 S3 버킷 키를 사용하고 대상 버킷은 기본 암호화를 사용합니다.

원본 객체가 S3 버킷 키를 사용하지만 대상 버킷은 SSE-KMS와 함께 기본 암호화를 사용하는 경우, 복제본 객체는 대상 버킷에서 S3 버킷 키 암호화 설정을 유지합니다. 대상 버킷은 여전히 SSE-KMS와 함께 기본 암호화를 사용합니다.

예제 2 – 원본 객체가 암호화되지 않았고 대상 버킷은 SSE-KMS와 함께 S3 버킷 키를 사용합니다.

원본 객체가 암호화되지 않았고 대상 버킷은 SSE-KMS와 함께 S3 버킷 키를 사용하는 경우, 원본 객체는 대상 버킷에서 SSE-KMS를 사용하여 S3 버킷 키로 암호화됩니다. 결과적으로 원본 객체의 ETag는 복제본 객체의 ETag와 다릅니다. 이러한 차이점을 수용하도록 ETag를 사용하는 애플리케이션을 업데이트해야 합니다.

S3 버킷 키를 사용한 작업

S3 버킷 키 사용 설정 및 사용에 대한 자세한 내용은 다음 섹션을 참조하세요.