Amazon S3 버킷에 대한 기본 서버 측 암호화 동작 설정 - Amazon Simple Storage Service

Amazon S3 버킷에 대한 기본 서버 측 암호화 동작 설정

Amazon S3 기본 암호화를 사용하면 S3 버킷에 대한 기본 암호화 동작을 설정하여 모든 새 객체가 버킷에 저장될 때 암호화되도록 할 수 있습니다. Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3) 또는 AWS Key Management Service(AWS KMS)에 저장된 AWS KMS keys를 사용한 서버 측 암호화(SSE-KMS)로 객체를 암호화합니다.

SSE-KMS의 기본 암호화를 사용하도록 버킷을 구성할 때 S3 버킷 키를 사용하면 Amazon S3에서 AWS Key Management Service(AWS KMS)로의 요청 트래픽을 줄이고 암호화 비용을 절감할 수 있습니다. 자세한 내용은 Amazon S3 버킷 키를 사용하여 SSE-KMS 비용 절감 섹션을 참조하세요.

서버 측 암호화를 사용하는 경우 Amazon S3에서는 객체를 디스크에 저장하기 전에 암호화하고 객체를 다운로드할 때 이를 해독합니다. 서버 측 암호화를 사용한 데이터 보호 및 암호화 키 관리에 대한 자세한 내용은 서버 측 암호화를 사용하여 데이터 보호 섹션을 참조하세요.

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

버킷에 기본 암호화를 설정하려면 Amazon S3 콘솔, AWS CLI, AWS SDK 또는 REST API를 사용할 수 있습니다. 자세한 내용은 Amazon S3 기본 버킷 암호화 사용 설정 섹션을 참조하세요.

기존 객체 암호화

기존 Amazon S3 객체를 암호화하기 위해 Amazon S3 배치 작업을 사용할 수 있습니다. 작업할 객체 목록을 S3 배치 작업에 제공하면 배치 작업은 각각의 API를 호출하여 지정된 작업을 수행합니다. 배치 작업 복사 작업을 사용하여 암호화되지 않은 기존 객체를 복사하고 암호화된 새로운 객체를 동일한 버킷에 작성할 수 있습니다. 단일 배치 작업 건으로 수십억 개의 객체에서 지정된 작업을 수행할 수 있습니다. 자세한 내용은 Amazon S3 객체에 대한 대규모 배치 작업 수행AWS 스토리지 블로그 게시물 Amazon S3 배치 작업에서 객체 암호화를 참조하세요.

객체 복사 API를 사용하여 기존 객체를 암호화할 수도 있습니다. 자세한 내용은 AWS 스토리지 블로그 게시물 AWS CLI를 사용하여 기존 Amazon S3 객체 암호화를 참조하세요.

참고

SSE-KMS를 사용하는 기본 버킷 암호화가 있는 Amazon S3 버킷은 서버 액세스 로깅을 사용한 요청 로깅의 대상 버킷으로 사용할 수 없습니다. 서버 액세스 로그 대상 버킷에는 SSE-S3 기본 암호화만 지원됩니다.

교차 계정 작업에 암호화 사용

교차 계정 작업에 암호화를 사용하는 경우 다음 사항에 유의하세요.

  • AWS 관리형 키(aws/s3)는 요청 시간에 AWS KMS key Amazon 리소스 이름(ARN) 또는 별칭이 제공되지도 않고 버킷의 기본 암호화 구성을 통해서도 제공되지 않는 경우에 사용됩니다.

  • 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 관리형 KMS 키 사용에 대한 자세한 내용은 Amazon S3에서 내 객체를 암호화하는 데 AWS 관리형 키 또는 고객 관리형 KMS 키를 사용해야 합니까?를 참조하세요.

복제에 기본 암호화 사용

복제 대상 버킷에 대한 기본 암호화를 사용 설정하면 다음 암호화 동작이 적용됩니다.

  • 원본 버킷의 객체가 암호화되지 않은 경우 대상 버킷의 복제본 객체는 대상 버킷의 기본 암호화 설정을 사용하여 암호화됩니다. 결과적으로 원본 객체의 ETag는 복제본 객체의 ETag와 다릅니다. 이러한 차이점을 수용하도록 ETag를 사용하는 애플리케이션을 업데이트해야 합니다.

  • 원본 버킷의 객체가 SSE-S3 또는 SSE-KMS를 사용하여 암호화되는 경우 대상 버킷의 복제본 객체는 원본 객체 암호화와 동일한 암호화를 사용합니다. 대상 버킷의 기본 암호화 설정은 사용되지 않습니다.

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

Amazon S3 버킷 키와 기본 암호화 사용

새 객체에서 SSE-KMS에 대한 기본 암호화를 사용하도록 버킷을 구성할 때 S3 버킷 키도 구성할 수 있습니다. S3 버킷 키는 Amazon S3에서 AWS KMS로의 트랜잭션 수를 줄여 AWS Key Management Service를 사용하는 서버측 암호화(SSE-KMS) 비용을 줄입니다.

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

S3 버킷 키 사용에 대한 자세한 내용은 Amazon S3 버킷 키 사용 섹션을 참조하세요.