테이블 버킷에서 AWS KMS 키(SSE-KMS)를 사용한 서버 측 암호화 지정
모든 Amazon S3 테이블 버킷에는 기본적으로 암호화가 구성되어 있으며, 테이블 버킷에 생성된 새 테이블은 모두 저장 시 자동으로 암호화됩니다. Amazon S3 관리형 키(SSE-S3)를 사용한 서버 측 암호화가 모든 테이블 버킷의 기본 암호화 구성입니다. 다른 암호화 유형을 지정하려는 경우 AWS Key Management Service(AWS KMS) 키(SSE-KMS)를 통한 서버 측 암호화를 사용할 수 있습니다.
CreateTableBucket
또는 CreateTable
요청에서 SSE-KMS 암호화를 지정하거나 PutTableBucketEncryption
요청의 테이블 버킷에서 기본 암호화 구성을 설정할 수 있습니다.
중요
SSE-KMS로 암호화된 테이블 및 테이블 버킷에 대한 자동 유지 관리를 허용하려면 maintenance.s3tables.amazonaws.com 서비스 위탁자에게 KMS 키를 사용할 수 있는 권한을 부여해야 합니다. 자세한 내용은 S3 Tables SSE-KMS 암호화에 대한 권한 요구 사항 섹션을 참조하세요.
테이블 버킷에 대한 암호화 지정
새 테이블 버킷을 생성할 때 SSE-KMS를 기본 암호화 유형으로 지정할 수 있습니다. 관련 예제는 테이블 버킷 생성 섹션을 참조하세요. 테이블 버킷을 생성한 후 REST API 작업, AWS SDK 및 AWS Command Line Interface(AWS CLI)를 사용하여 SSE-KMS 사용을 기본 암호화 설정으로 지정할 수 있습니다.
참고
SSE-KMS를 기본 암호화 유형으로 지정하는 경우 암호화에 사용하는 키가 S3 Tables 유지 관리 서비스 위탁자에게 액세스를 허용해야 합니다. 유지 관리 서비스 위탁자에게 액세스 권한이 없는 경우 해당 테이블 버킷에 테이블을 생성할 수 없습니다. 자세한 내용은 S3 Tables 유지 관리 서비스 위탁자에게 KMS 키 권한 부여 섹션을 참조하세요.
다음 예제 AWS CLI 명령을 사용하려면 사용자 입력 자리 표시자
를 실제 정보로 바꿉니다.
aws s3tables put-table-bucket-encryption \ --table-bucket-arn arn:aws:s3tables:
us-east-1
:111122223333
:bucket/amzn-s3-demo-table-bucket
; \ --encryption-configuration '{ "sseAlgorithm": "aws:kms", "kmsKeyArn": "arn:aws:kms:us-east-1
:111122223333
:key/1234abcd-12ab-34cd-56ef-1234567890ab
" }' \ --region us-east-1
DeleteTableBucketEncryption API 작업을 사용하여 테이블 버킷의 기본 암호화 설정을 제거할 수 있습니다. 암호화 설정을 제거하면 테이블 버킷에 생성된 새 테이블이 기본 SSE-S3 암호화를 사용합니다.
테이블에 대한 암호화 지정
쿼리 엔진, REST API 작업, AWS SDK 및 AWS Command Line Interface(AWS CLI)를 사용하여 새 테이블을 생성할 때 새 테이블에 SSE-KMS 암호화를 적용할 수 있습니다. 테이블을 생성할 때 지정하는 암호화 설정이 테이블 버킷의 기본 암호화 설정보다 우선합니다.
참고
테이블에 SSE-KMS 암호화를 사용하는 경우 암호화에 사용하는 키가 S3 Tables 유지 관리 서비스 위탁자에게 키에 대한 액세스를 허용해야 합니다. 유지 관리 서비스 위탁자에게 액세스 권한이 없으면 테이블을 생성할 수 없습니다. 자세한 내용은 S3 Tables 유지 관리 서비스 위탁자에게 KMS 키 권한 부여 섹션을 참조하세요.
필요한 권한
암호화된 테이블을 생성하려면 다음 권한이 필요합니다.
s3tables:CreateTable
s3tables:PutTableEncryption
다음 AWS CLI 예제에서는 기본 스키마를 사용하여 새 테이블을 생성하고 고객 관리형 AWS KMS 키로 암호화합니다. 명령을 사용하려면 사용자 입력 자리 표시자
를 사용자의 정보로 대체합니다.
aws s3tables create-table \ --table-bucket-arn "arn:aws:s3tables:
Region
:ownerAccountId
:bucket/amzn-s3-demo-table-bucket
" \ --namespace "mydataset" \ --name "orders" \ --format "ICEBERG" \ --encryption-configuration '{ "sseAlgorithm": "aws:kms", "kmsKeyArn": "arn:aws:kms:Region
:111122223333
:key/1234abcd-12ab-34cd-56ef-1234567890ab
" }'\ --metadata '{ "iceberg": { "schema": { "fields": [ { "name": "order_id", "type": "string", "required": true }, { "name": "order_date", "type": "timestamp", "required": true }, { "name": "total_amount", "type": "decimal(10,2)", "required": true } ] } } }'