

# 데이터 보호 및 암호화
<a name="s3-express-data-protection"></a>

 디렉터리 버킷에 대한 암호화를 구성하는 방법은 다음 주제를 참조하세요.

**Topics**
+ [서버 측 암호화](#s3-express-ecnryption)
+ [디렉터리 버킷의 기본 암호화 설정 및 모니터링](s3-express-bucket-encryption.md)
+ [디렉터리 버킷에서 AWS KMS 키(SSE-KMS)를 사용한 서버 측 암호화 사용](s3-express-UsingKMSEncryption.md)
+ [전송 중 암호화](#s3-express-ecnryption-transit)
+ [데이터 삭제](#s3-express-data-deletion)

## 서버 측 암호화
<a name="s3-express-ecnryption"></a>

모든 디렉터리 버킷에는 기본적으로 암호화가 구성되어 있으며 디렉터리 버킷에 업로드되는 신규 객체는 모두 저장 시 자동으로 암호화됩니다. Amazon S3 관리형 키(SSE-S3)를 사용한 서버 측 암호화가 모든 디렉터리 버킷의 기본 암호화 구성입니다. 다른 암호화 유형을 지정하려는 경우 버킷의 기본 암호화 구성을 설정하여 AWS Key Management Service(AWS KMS) 키 (SSE-KMS)를 사용한 서버 측 암호화를 사용할 수 있습니다. 디렉터리 버킷의 SSE-KMS에 대한 자세한 내용은 [디렉터리 버킷에서 AWS KMS 키(SSE-KMS)를 사용한 서버 측 암호화 사용](s3-express-UsingKMSEncryption.md) 섹션을 참조하세요.

버킷의 기본 암호화는 원하는 암호화 구성을 사용하고 `CreateSession` 요청 또는 `PUT` 객체 요청에서 버킷 기본 암호화를 재정의하지 않는 것이 좋습니다. 그러면 새 객체가 원하는 암호화 설정으로 자동 암호화됩니다. 디렉터리 버킷의 암호화 재정의 동작에 대한 자세한 내용은 [Specifying server-side encryption with AWS KMS for new object uploads](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html)를 참조하세요.

디렉터리 버킷이 포함된 SSE-KMS는 다음과 같은 측면에서 범용 버킷의 SSE-KMS와 다릅니다.
+ SSE-KMS 구성은 버킷 수명 기간 동안 디렉터리 버킷당 [고객 관리형 키](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) 1개만 지원할 수 있습니다. [https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk)(`aws/s3`)는 지원되지 않습니다. 또한, SSE-KMS에 고객 관리형 키를 지정한 후에는 버킷의 SSE-KMS 구성을 위한 고객 관리형 키를 재정의할 수 없습니다.

  다음과 같은 방법으로 버킷의 SSE-KMS 구성에 대해 지정한 고객 관리형 키를 식별할 수 있습니다.
  + 응답에서 `x-amz-server-side-encryption-aws-kms-key-id`의 값을 찾기 위해 `HeadObject` API 작업을 요청합니다.

  데이터에 새 고객 관리형 키를 사용하려면 최신 고객 관리형 키가 있는 새 디렉터리 버킷에 기존 객체를 복사하는 것이 좋습니다.
+ [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) 및 [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)를 제외한 [영역 엔드포인트(객체 수준) API 작업](s3-express-differences.md#s3-express-differences-api-operations)의 경우, 지연 시간이 짧도록 [CreateSession](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html)을 통해 요청을 인증하고 권한을 부여합니다. 버킷의 기본 암호화는 원하는 암호화 구성을 사용하고 `CreateSession` 요청 또는 `PUT` 객체 요청에서 버킷 기본 암호화를 재정의하지 않는 것이 좋습니다. 그러면 새 객체가 원하는 암호화 설정으로 자동 암호화됩니다. SSE-KMS로 디렉터리 버킷의 새 객체를 암호화하려면 KMS 키(특히 [고객 관리형 키](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk))를 사용하여 디렉터리 버킷의 기본 암호화 구성으로 SSE-KMS를 지정해야 합니다. 그런 다음 영역 엔드포인트 API 작업을 위한 세션이 생성되면 세션 중에 SSE-KMS 및 S3 버킷 키를 사용하여 새 객체가 자동으로 암호화되고 해독됩니다. 디렉터리 버킷의 암호화 재정의 동작에 대한 자세한 내용은 [Specifying server-side encryption with AWS KMS for new object uploads](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html)를 참조하세요.

  영역 엔드포인트 API 직접 호출([CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) 및 [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) 제외)에서는 `CreateSession` 요청에서 암호화 설정(`x-amz-server-side-encryption`, `x-amz-server-side-encryption-aws-kms-key-id`, `x-amz-server-side-encryption-context`, `x-amz-server-side-encryption-bucket-key-enabled`)의 값을 재정의할 수 없습니다. 영역 엔드포인트 API 직접 호출에서 이러한 암호화 설정 값을 명시적으로 지정할 필요는 없으며, Amazon S3는 `CreateSession` 요청의 암호화 설정 값을 사용하여 디렉터리 버킷의 새 객체를 보호합니다.
**참고**  
`CreateSession`의 경우 AWS CLI 또는 AWS SDK를 사용하면 세션 토큰이 자동으로 새로 고쳐져 세션이 만료될 때 서비스가 중단되지 않도록 합니다. AWS CLI 또는 AWS SDK는 `CreateSession` 요청에 버킷의 기본 암호화 구성을 사용합니다. `CreateSession` 요청의 암호화 설정 값을 재정의하는 것은 지원되지 않습니다. 또한, 영역 엔드포인트 API 직접 호출([CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) 및 [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) 제외)에서는 `CreateSession` 요청의 암호화 설정 값을 재정의할 수 없습니다.
+ [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)의 경우 SSE-KMS로 디렉터리 버킷의 새 객체 사본을 암호화하려면 KMS 키(특히 [고객 관리형 키](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk))를 사용하여 디렉터리 버킷의 기본 암호화 구성으로 SSE-KMS를 지정해야 합니다. 그런 다음 SSE-KMS를 사용하여 새 객체 사본의 서버 측 암호화 설정을 지정할 때는 암호화 키가 디렉터리 버킷의 기본 암호화 구성에 지정한 것과 동일한 고객 관리형 키인지 확인해야 합니다. [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)의 경우 SSE-KMS로 디렉터리 버킷의 새 객체 부분 사본을 암호화하려면 KMS 키(특히 [고객 관리형 키](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk))를 사용하여 디렉터리 버킷의 기본 암호화 구성으로 SSE-KMS를 지정해야 합니다. [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) 요청 헤더에서 SSE-KMS를 사용하여 새 객체 부분 사본에 대한 서버 측 암호화 설정을 지정할 수 없습니다. 또한, [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) 요청에서 제공하는 암호화 설정은 대상 버킷의 기본 암호화 구성과 일치해야 합니다.
+ S3 버킷 키는 디렉터리 버킷의 `GET` 및 `PUT` 작업에 대해 항상 활성화되며 비활성화할 수 없습니다. [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html), [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html), [배치 운영의 Copy 작업](directory-buckets-objects-Batch-Ops.md) 또는 [import 작업](create-import-job.md)을 통해 SSE-KMS로 암호화된 객체를 범용 버킷에서 디렉터리 버킷으로, 디렉터리 버킷에서 범용 버킷으로 또는 디렉터리 버킷 간에 복사하는 경우 S3 버킷 키는 지원되지 않습니다. 이 경우 Amazon S3는 KMS 암호화 개체에 대한 사본 요청이 있을 때마다 AWS KMS를 직접적으로 호출합니다.
+ 디렉터리 버킷에서 암호화를 위한 [AWS KMS 고객 관리형 키](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)를 지정할 때는 키 ID 또는 키 ARN만 사용하세요. KMS 키의 키 별칭 형식은 지원되지 않습니다.

디렉터리 버킷은 AWS Key Management Service(AWS KMS) 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS) 또는 고객 제공 암호화 키를 사용한 서버 측 암호화(SSE-C)를 지원하지 않습니다.

## 전송 중 암호화
<a name="s3-express-ecnryption-transit"></a>

디렉터리 버킷은 리전 및 영역 API 엔드포인트를 사용합니다. 사용하는 Amazon S3 API 작업에 따라 리전 엔드포인트 또는 영역 엔드포인트가 필요합니다. 게이트웨이 가상 프라이빗 클라우드(VPC) 엔드포인트를 통해 영역 및 리전 엔드포인트에 액세스할 수 있습니다. 게이트웨이 엔드포인트 사용에 따르는 추가 요금은 없습니다. 리전 및 영역 API 엔드포인트에 대한 자세한 내용은 [디렉터리 버킷에 대한 네트워킹](s3-express-networking.md) 섹션을 참조하세요.

## 데이터 삭제
<a name="s3-express-data-deletion"></a>

Amazon S3 콘솔, AWS SDK, AWS Command Line Interface(AWS CLI) 또는 Amazon S3 REST API를 사용하여 디렉터리 버킷에서 직접 하나 이상의 객체를 삭제할 수 있습니다. 디렉터리 버킷에 있는 모든 객체로 인해 스토리지 비용이 발생하기 때문에 더 이상 필요하지 않은 객체를 삭제하는 것이 좋습니다.

디렉터리 버킷에 저장된 객체를 삭제하면 상위 디렉터리에 삭제되는 객체 외에 다른 객체가 없는 경우 상위 디렉터리도 재귀적으로 삭제됩니다.

**참고**  
다중 인증(MFA) 삭제 및 S3 버전 관리는 S3 Express One Zone에서 지원되지 않습니다.