

# Amazon S3 버킷에 대한 기본 서버 측 암호화 동작 설정
<a name="bucket-encryption"></a>

**중요**  
이제 Amazon S3가 Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3)를 Amazon S3 내 모든 버킷 암호화의 기본 수준으로 적용합니다. 2023년 1월 5일부터 Amazon S3로의 모든 새 객체 업로드는 추가 비용 없이 성능에 영향을 미치지 않고 자동으로 암호화됩니다. S3 버킷 기본 암호화 구성에 및 신규 객체 업로드에 대한 자동 암호화 상태는 CloudTrail 로그, S3 인벤토리, S3 Storage Lens, Amazon S3 콘솔에서 사용할 수 있으며, AWS CLI 및 AWS SDK에서 추가 Amazon S3 API 응답 헤더로도 사용할 수 있습니다. 자세한 내용은 [기본 암호화 관련 FAQ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html)를 참조하십시오.

모든 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 개발자 안내서**의 [키 편집](https://docs.aws.amazon.com/kms/latest/developerguide/editing-keys.html)을 참조하세요.

**참고**  
새 객체 업로드를 자동으로 암호화하도록 버킷을 변경했습니다. 이전에 기본 암호화 없이 버킷을 생성한 경우 Amazon S3는 SSE-S3를 사용하여 버킷에 대해 기본적으로 암호화를 활성화합니다. 이미 SSE-S3 또는 SSE-KMS가 구성된 기존 버킷은 기본 암호화 구성이 변경되지 않습니다. SSE-KMS로 객체를 암호화하려면 버킷 설정에서 암호화 유형을 변경해야 합니다. 자세한 내용은 [AWS KMS 키를 사용한 서버 측 암호화(SSE-KMS) 사용](UsingKMSEncryption.md) 섹션을 참조하세요.

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

SSE-KMS가 기본 암호화로 사용 설정된 버킷을 식별하려면 Amazon S3 스토리지 렌즈 지표를 사용하면 됩니다. S3 스토리지 렌즈는 조직 전반에서 객체 스토리지 사용 및 활동에 대한 가시성을 확보하는 데 사용할 수 있는 클라우드 스토리지 분석 기능입니다. 자세한 내용은 [Using S3 Storage Lens to protect your data(S3 스토리지 렌즈를 사용한 데이터 보호)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-data-protection.html?icmpid=docs_s3_user_guide_bucket-encryption.html)를 참조하세요.

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

기본 암호화에 필요한 권한에 대한 자세한 내용은 **Amazon Simple Storage Service API 참조의 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) 섹션을 참조하세요.

Amazon S3 콘솔, AWS SDK, Amazon S3 REST API 및 AWS Command Line Interface(AWS CLI CLI)를 사용하여 S3 버킷에 대한 Amazon S3 기본 암호화 동작을 구성할 수 있습니다.

**기존 객체 암호화**  
기존에 암호화되지 않은 Amazon S3 객체를 암호화하기 위해 Amazon S3 배치 작업을 사용할 수 있습니다. 작업할 객체 목록을 S3 배치 작업에 제공하면 배치 작업은 각각의 API를 호출하여 지정된 작업을 수행합니다. [배치 작업 복사 작업](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-copy-object.html)을 사용하여 암호화되지 않은 기존 객체를 복사하고 암호화된 새로운 객체를 동일한 버킷에 작성할 수 있습니다. 단일 배치 작업 건으로 수십억 개의 객체에서 지정된 작업을 수행할 수 있습니다. 자세한 내용은 [Batch Operations를 사용하여 대량으로 객체 작업 수행](batch-ops.md) 및 *AWS 스토리지 블로그* 게시물 [Amazon S3 배치 작업에서 객체 암호화](https://aws.amazon.com/blogs/storage/encrypting-objects-with-amazon-s3-batch-operations/)를 참조하세요.

`CopyObject` API 작업이나 `copy-object` AWS CLI 명령을 사용하여 기존 객체를 암호화할 수도 있습니다. 자세한 내용은 *AWS 스토리지 블로그* 게시물 [AWS CLI를 사용하여 기존 Amazon S3 객체 암호화](https://aws.amazon.com/blogs/storage/encrypting-existing-amazon-s3-objects-with-the-aws-cli/)를 참조하세요.

**참고**  
기본 버킷 암호화가 SSE-KMS로 설정된 Amazon S3 버킷은 [서버 액세스 로깅을 사용한 요청 로깅](ServerLogs.md)의 대상 버킷으로 사용할 수 없습니다. 서버 액세스 로그 대상 버킷에는 SSE-S3 기본 암호화만 지원됩니다.

## 크로스 계정 작업에 SSE-KMS 암호화 사용
<a name="bucket-encryption-update-bucket-policy"></a>

크로스 계정 작업에 암호화를 사용하는 경우 다음 사항에 유의하세요.
+ 요청 시 또는 버킷의 기본 암호화 구성을 통해 AWS KMS key Amazon 리소스 이름(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를 사용하도록 허용](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-users-crypto)을 참조하세요.

고객 관리형 키와 AWS 관리형 KMS 키를 사용해야 하는 상황에 대한 자세한 내용은 [Amazon S3의 객체를 암호화하기 위해 AWS 관리형 키와 고객 관리형 KMS 키 중 무엇을 사용해야 합니까?](https://aws.amazon.com/premiumsupport/knowledge-center/s3-object-encryption-keys/)를 참조하세요.

## 복제에 기본 암호화 사용
<a name="bucket-encryption-replication"></a>

복제 대상 버킷에 대한 기본 암호화를 사용 설정하면 다음 암호화 동작이 적용됩니다.
+ 소스 버킷의 객체가 암호화되지 않은 경우 대상 버킷의 복제본 객체는 대상 버킷의 기본 암호화 설정을 사용하여 암호화됩니다. 결과적으로 소스 객체의 엔터티 태그(ETag)는 복제본 객체의 ETag와 다릅니다. ETag를 사용하는 애플리케이션이 있는 경우 이 차이를 고려하도록 해당 애플리케이션을 업데이트해야 합니다.
+ 소스 버킷의 객체가 Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3), AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS) 또는 AWS KMS 키를 사용한 이중 계층 서브 측 암호화(DSSE-KMS)를 사용하여 암호화되는 경우, 대상 버킷의 복제본 객체는 소스 객체와 동일한 유형의 암호화를 사용합니다. 대상 버킷의 기본 암호화 설정은 사용되지 않습니다.

SSE-KMS와 함께 기본 암호화를 사용하는 방법에 대한 자세한 내용은 [암호화된 객체 복제](replication-config-for-kms-objects.md) 섹션을 참조하세요.

## Amazon S3 버킷 키와 기본 암호화 사용
<a name="bucket-key-default-encryption"></a>

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

새 객체에서 SSE-KMS용 S3 버킷 키를 사용하도록 버킷을 구성하면 AWS KMS는 버킷의 객체에 대해 고유한 [데이터 키](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys)를 만드는 데 사용되는 버킷 수준 키를 생성합니다. 이 S3 버킷 키는 Amazon S3 내에서 제한된 기간 동안 사용되므로 Amazon S3가 암호화 작업을 완료하기 위해 AWS KMS에 요청할 필요성이 줄어듭니다.

S3 버킷 키 사용에 대한 자세한 내용은 [Amazon S3 버킷 키 사용](bucket-key.md) 단원을 참조하십시오.