Amazon S3 버킷의 기본 서버 측 암호화 동작 설정

Amazon S3 버킷의 기본 서버 측 암호화 동작 설정 (Setting default server-side encryption behavior for Amazon S3 buckets)

모든 Amazon S3 버킷에는 기본적으로 암호화가 구성되며, 객체는 Amazon S3 관리 키(SSE-S3)를 사용한 서버 측 암호화로 자동 암호화돼요. 더 세밀한 키 제어가 필요하다면 SSE-KMS나 DSSE-KMS를 사용할 수 있어요.

출처: 문서

본문

중요 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 버킷에는 기본적으로 암호화가 구성되어 있고, 객체는 Amazon S3 관리 키(SSE-S3)를 사용한 서버 측 암호화로 자동 암호화돼요. 이 암호화 설정은 Amazon S3 버킷의 모든 객체에 적용돼요.

키 회전과 접근 정책 권한 부여를 더 세밀하게 관리해야 한다면 AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS)나 AWS KMS 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS)를 선택할 수 있어요. KMS 키 편집에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 키 편집을 참고하세요.

참고 버킷이 새 객체 업로드를 자동으로 암호화하도록 변경되었어요. 이전에 기본 암호화 없이 버킷을 만들었다면 Amazon S3가 SSE-S3를 사용해 해당 버킷의 암호화를 기본으로 활성화해요. 이미 SSE-S3 또는 SSE-KMS가 구성된 기존 버킷의 기본 암호화 구성에는 변경이 없어요. 객체를 SSE-KMS로 암호화하려면 버킷 설정에서 암호화 유형을 변경해야 해요. 자세한 내용은 AWS KMS 키를 사용한 서버 측 암호화(SSE-KMS)를 참고하세요.

버킷을 SSE-KMS를 사용한 기본 암호화로 구성할 때 S3 Bucket Keys를 활성화하면 Amazon S3에서 AWS KMS로 가는 요청 트래픽을 줄이고 암호화 비용을 낮출 수 있어요. 자세한 내용은 Amazon S3 Bucket Keys로 SSE-KMS 비용 절감하기를 참고하세요.

기본 암호화에 SSE-KMS가 활성화된 버킷을 식별하려면 Amazon S3 Storage Lens 지표를 사용할 수 있어요. S3 Storage Lens는 객체 스토리지 사용량과 활동에 대한 조직 전반의 가시성을 확보하는 데 사용할 수 있는 클라우드 스토리지 분석 기능이에요. 자세한 내용은 S3 Storage Lens를 사용해 데이터 보호하기를 참고하세요.

서버 측 암호화를 사용하면 Amazon S3는 객체를 디스크에 저장하기 전에 암호화하고 객체를 다운로드할 때 복호화해요. 서버 측 암호화와 암호화 키 관리로 데이터를 보호하는 방법에 대한 자세한 내용은 서버 측 암호화로 데이터 보호하기를 참고하세요.

기본 암호화에 필요한 권한에 대한 자세한 내용은 Amazon Simple Storage Service API 참조의 PutBucketEncryption을 참고하세요.

Amazon S3 콘솔, AWS SDK, Amazon S3 REST API, AWS Command Line Interface(AWS CLI)를 사용해 S3 버킷의 Amazon S3 기본 암호화 동작을 구성할 수 있어요.

기존 객체 암호화

기존의 암호화되지 않은 Amazon S3 객체를 암호화하려면 Amazon S3 Batch Operations를 사용할 수 있어요. S3 Batch Operations에 작업할 객체 목록을 제공하면 Batch Operations가 지정된 작업을 수행하기 위해 해당 API를 호출해요. Batch Operations의 복사(Copy) 작업을 사용해 기존의 암호화되지 않은 객체를 복사하고 같은 버킷에 암호화된 객체로 다시 쓸 수 있어요. 단일 Batch Operations 작업은 수십억 개의 객체에 지정된 작업을 수행할 수 있어요. 자세한 내용은 Batch Operations로 객체 작업을 일괄 수행하기와 AWS Storage Blog 게시물 Amazon S3 Batch Operations로 객체 암호화하기를 참고하세요.

CopyObject API 작업이나 copy-object AWS CLI 명령을 사용해 기존 객체를 암호화할 수도 있어요. 자세한 내용은 AWS Storage Blog 게시물 AWS CLI로 기존 Amazon S3 객체 암호화하기를 참고하세요.

중요 버킷이 서버 액세스 로그 전달의 대상인 경우 해당 버킷은 Amazon S3 관리 키(SSE-S3)를 사용해야 해요. 대상 버킷이 SSE-KMS 기본 암호화를 사용한다면 로그 객체가 생성되기는 하지만 접근할 수 없는 키로 암호화될 수 있어요.

교차 계정 작업을 위한 SSE-KMS 암호화 사용

교차 계정 작업에서 암호화를 사용할 때는 다음 사항을 유의하세요.

  • 요청 시 또는 버킷의 기본 암호화 구성을 통해 AWS KMS 키 ARN 또는 별칭이 제공되지 않으면 AWS 관리 키(aws/s3)가 사용돼요.
  • KMS 키와 같은 AWS 계정에 있는 AWS Identity and Access Management(IAM) 보안 주체로 S3 객체를 업로드하거나 접근하는 경우 AWS 관리 키(aws/s3)를 사용할 수 있어요.
  • S3 객체에 교차 계정 접근을 부여하려면 고객 관리 키를 사용하세요. 고객 관리 키의 정책을 구성해 다른 계정의 접근을 허용할 수 있어요.
  • 고객 관리 KMS 키를 지정할 때는 전체 자격(KMS 키 ARN)을 사용하는 것이 좋아요. KMS 키 별칭을 사용하면 AWS KMS가 요청자의 계정 내에서 키를 해석해요. 이 동작으로 인해 데이터가 버킷 소유자가 아니라 요청자가 소유한 KMS 키로 암호화될 수 있어요.
  • 요청자가 암호화(Encrypt) 권한을 부여받은 키를 지정해야 해요. 자세한 내용은 AWS Key Management Service 개발자 안내서의 키 사용자가 암호화 작업에 KMS 키를 사용하도록 허용하기를 참고하세요.

AWS 관리 키와 고객 관리 키를 언제 사용해야 하는지에 대한 자세한 내용은 Amazon S3에서 객체를 암호화할 때 AWS 관리 키와 고객 관리 키 중 무엇을 사용해야 하나요?를 참고하세요.

복제와 함께 기본 암호화 사용

복제 대상 버킷에 대해 기본 암호화를 활성화하면 다음과 같은 암호화 동작이 적용돼요.

  • 원본 버킷의 객체가 암호화되지 않은 경우 대상 버킷의 복제본 객체는 대상 버킷의 기본 암호화 설정을 사용해 암호화돼요. 따라서 원본 객체의 엔터티 태그(ETag)와 복제본 객체의 ETag가 달라져요. ETag를 사용하는 애플리케이션이 있다면 이 차이를 반영하도록 해당 애플리케이션을 업데이트해야 해요.
  • 원본 버킷의 객체가 Amazon S3 관리 키(SSE-S3)를 사용한 서버 측 암호화, AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS), 또는 AWS KMS 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS)로 암호화된 경우 대상 버킷의 복제본 객체는 원본 객체와 같은 유형의 암호화를 사용해요. 대상 버킷의 기본 암호화 설정은 사용되지 않아요.

SSE-KMS와 함께 기본 암호화를 사용하는 방법에 대한 자세한 내용은 암호화된 객체 복제하기를 참고하세요.

기본 암호화와 함께 Amazon S3 Bucket Keys 사용

버킷을 새 객체에 대한 기본 암호화 동작으로 SSE-KMS를 사용하도록 구성할 때 S3 Bucket Keys도 구성할 수 있어요. S3 Bucket Keys는 Amazon S3에서 AWS KMS로 가는 트랜잭션 수를 줄여 SSE-KMS 비용을 절감해요.

버킷을 새 객체에 대해 SSE-KMS에 S3 Bucket Keys를 사용하도록 구성하면 AWS KMS가 버킷 수준 키를 생성하고, 이 키가 버킷의 객체에 대한 고유한 데이터 키를 만드는 데 사용돼요. 이 S3 Bucket Key는 Amazon S3 내에서 제한된 시간 동안 사용되어 Amazon S3가 암호화 작업을 완료하기 위해 AWS KMS에 요청을 보내는 필요를 줄여요.

S3 Bucket Keys 사용에 대한 자세한 내용은 Amazon S3 Bucket Keys 사용하기를 참고하세요.

더 알아보기 (Learn more)