

# 테이블 버킷에서 AWS KMS 키(SSE-KMS)를 사용한 서버 측 암호화 사용
<a name="s3-tables-kms-encryption"></a>

**Topics**
+ [테이블 및 테이블 버킷에서 SSE-KMS의 작동 방식](#kms-tables-how)
+ [테이블 및 테이블 버킷에 대한 SSE-KMS 사용 적용 및 범위 지정](tables-require-kms.md)
+ [테이블 및 테이블 버킷에 대한 SSE-KMS 암호화 모니터링 및 감사](#kms-tables-audit)
+ [S3 Tables SSE-KMS 암호화에 대한 권한 요구 사항](s3-tables-kms-permissions.md)
+ [테이블 버킷에서 AWS KMS 키(SSE-KMS)를 사용한 서버 측 암호화 지정](s3-tables-kms-specify.md)

테이블 버킷에는 Amazon S3 관리형 키(SSE-S3)를 통한 서버 측 암호화를 사용하여 테이블을 자동으로 암호화하는 기본 암호화 구성이 있습니다. 이 암호화는 S3 테이블 버킷의 모든 객체에 적용되며 무료로 제공됩니다.

키 교체 및 액세스 정책 권한 부여 관리와 같이 암호화 키를 더 세밀하게 제어해야 하는 경우 AWS Key Management Service(AWS KMS) 키(SSE-KMS)를 통한 서버 측 암호화를 사용하도록 테이블 버킷을 구성할 수 있습니다. AWS KMS 내 보안 관리가 암호화 관련 규정 준수 요구 사항을 충족하는 데 도움이 될 수 있습니다. SSE-KMS에 대한 자세한 내용은 [AWS KMS 키를 사용한 서버 측 암호화(SSE-KMS) 사용](UsingKMSEncryption.md) 단원을 참조하십시오.

## 테이블 및 테이블 버킷에서 SSE-KMS의 작동 방식
<a name="kms-tables-how"></a>

테이블 버킷의 SSE-KMS는 다음과 같은 측면에서 범용 버킷의 SSE-KMS와 다릅니다.
+ 테이블 버킷 및 개별 테이블에 대해 암호화 설정을 지정할 수 있습니다.
+ SSE-KMS에서는 고객 관리형 키만 사용할 수 있습니다. AWS 관리형 키는 지원되지 않습니다.
+ 특정 역할 및 AWS 서비스 위탁자에게 AWS KMS 키에 액세스할 수 있는 권한을 부여해야 합니다. 자세한 내용은 [S3 Tables SSE-KMS 암호화에 대한 권한 요구 사항](s3-tables-kms-permissions.md) 섹션을 참조하세요. 여기에는 다음과 같은 권한 부여가 포함됩니다.
  + S3 유지 관리 위탁자 - 암호화된 테이블 유지 관리
  + S3 Tables 통합 역할 - AWS 분석 서비스에서 암호화된 테이블에 대한 작업 수행
  + 클라이언트 액세스 역할 - Apache Iceberg 클라이언트에서 암호화된 테이블에 직접 액세스
  + S3 메타데이터 위탁자 - 암호화된 S3 메타데이터 테이블 업데이트
+ 암호화된 테이블은 SSE-KMS로 암호화된 테이블을 더 비용 효율적으로 사용하기 위해 AWS KMS에 대한 요청 수를 최소화하는 테이블 수준 키를 사용합니다.

**테이블 버킷에 대한 SSE-KMS 암호화**  
테이블 버킷을 생성할 때 SSE-KMS를 기본 암호화 유형으로 선택하고 암호화에 사용할 특정 KMS 키를 선택할 수 있습니다. 해당 버킷 내에 생성된 모든 테이블은 테이블 버킷에서 이러한 암호화 설정을 자동으로 상속합니다. AWS CLI, S3 API 또는 AWS SDK를 사용하여 언제든지 테이블 버킷의 기본 암호화 설정을 수정하거나 제거할 수 있습니다. 테이블 버킷의 암호화 설정을 수정할 때 그러한 설정은 해당 버킷에서 생성된 새 테이블에만 적용됩니다. 기존 테이블에 대한 암호화 설정은 변경되지 않습니다. 자세한 내용은 [테이블 버킷에 대한 암호화 지정](s3-tables-kms-specify.md#specify-kms-table-bucket) 섹션을 참조하세요.

**테이블에 대한 SSE-KMS 암호화**  
버킷의 기본 암호화 구성에 관계없이 다른 KMS 키로 개별 테이블을 암호화하는 옵션도 있습니다. 개별 테이블에 대한 암호화를 설정하려면 테이블 생성 시 원하는 암호화 키를 지정해야 합니다. 기존 테이블의 암호화를 변경하려면 원하는 키로 테이블을 생성하고 이전 테이블에서 새 테이블로 데이터를 복사해야 합니다. 자세한 내용은 [테이블에 대한 암호화 지정](s3-tables-kms-specify.md#specify-kms-table) 섹션을 참조하세요.

AWS KMS 암호화를 사용하는 경우 S3 Tables는 각 테이블과 연결된 새 객체를 암호화하는 고유한 테이블 수준 데이터 키를 자동으로 생성합니다. 이러한 키는 제한된 기간 동안 사용되므로 암호화 작업 중 추가 AWS KMS 요청의 필요성이 최소화되고 암호화 비용이 절감됩니다. 이는 [SSE-KMS용 S3 버킷 키](bucket-key.md#bucket-key-overview)와 비슷합니다.

## 테이블 및 테이블 버킷에 대한 SSE-KMS 암호화 모니터링 및 감사
<a name="kms-tables-audit"></a>

AWS CloudTrail 로그를 사용하여 SSE-KMS 암호화 데이터의 AWS KMS 키 사용을 감사할 수 있습니다. `GenerateDataKey` 및 `Decrypt`와 같은 [암호화 작업](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations)에 대한 인사이트를 얻을 수 있습니다. CloudTrail은 이벤트 이름, 사용자 이름, 이벤트 소스 등 검색 필터링을 위한 다양한 [속성 값](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_LookupEvents.html)을 지원합니다.

CloudTrail 이벤트를 사용하여 Amazon S3 테이블 및 테이블 버킷에 대한 기본 암호화 구성 요청을 추적할 수 있습니다. CloudTrail 로그에 사용되는 API 이벤트 이름은 다음과 같습니다.
+ `s3tables:PutTableBucketEncryption`
+ `s3tables:GetTableBucketEncryption`
+ `s3tables:DeleteTableBucketEncryption`
+ `s3tables:GetTableEncryption`
+ `s3tables:CreateTable`
+ `s3tables:CreateTableBucket`

**참고**  
테이블 버킷에는 EventBridge가 지원되지 않습니다.