本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在資料表儲存貯體中使用 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 SDKs 和 AWS Command Line Interface (),指定使用 SSE-KMS 做為預設加密設定AWS CLI。
注意
當您將 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 SDKs,您可以將 SSE-KMS 加密套用至新資料表AWS CLI。 AWS Command Line Interface 您在建立資料表時指定的加密設定優先於資料表儲存貯體的預設加密設定。
注意
當您對資料表使用 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 } ] } } }'