在表存储桶中指定具有 Amazon KMS 密钥的服务器端加密(SSE-KMS) - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在表存储桶中指定具有 Amazon KMS 密钥的服务器端加密(SSE-KMS)

默认情况下,所有 Amazon S3 表存储桶都配置了加密,所有在表存储桶中创建的新表都会自动静态加密。具有 Amazon S3 托管式密钥的服务器端加密(SSE-S3)是每个表存储桶的默认加密配置。如果您要指定不同的加密类型,可以使用具有 Amazon Key Management Service(Amazon KMS)密钥的服务器端加密(SSE-KMS)。

可以在 CreateTableBucketCreateTable 请求中指定 SSE-KMS 加密,也可以在 PutTableBucketEncryption 请求中设置表存储桶中的默认加密配置。

重要

要支持对通过 SSE-KMS 加密的表和表存储桶进行自动维护,您必须向 maintenance.s3tables.amazonaws.com 服务主体授予使用 KMS 密钥的权限。有关更多信息,请参阅 S3 表类数据存储服务 SSE-KMS 加密的权限要求

为表存储桶指定加密

在创建新的表存储桶时,您可以指定 SSE-KMS 作为默认加密类型,有关示例,请参阅创建表存储桶。创建表存储桶后,您可以使用 REST API 操作、Amazon SDK 和 Amazon Command Line Interface(Amazon CLI)来指定将 SSE-KMS 用作默认加密设置。

注意

当您将 SSE-KMS 指定为默认加密类型时,用于加密的密钥必须支持访问 S3 表类数据存储服务维护服务主体。如果维护服务主体没有访问权限,您将无法在该表存储桶中创建表。有关更多信息,请参阅 向 S3 表类数据存储服务维护服务主体授予对 KMS 密钥的权限

要使用以下示例 Amazon 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 操作、Amazon SDK 和 Amazon Command Line Interface(Amazon CLI)创建新表时,可以对该表应用 SSE-KMS 加密。您在创建表时指定的加密设置优先于表存储桶的默认加密设置。

注意

对表使用 SSE-KMS 加密时,用于加密的密钥必须支持 S3 表类数据存储服务维护服务主体访问该表。如果维护服务主体没有访问权限,您将无法创建表。有关更多信息,请参阅 向 S3 表类数据存储服务维护服务主体授予对 KMS 密钥的权限

所需权限

创建加密表需要以下权限

  • s3tables:CreateTable

  • s3tables:PutTableEncryption

以下 Amazon CLI 示例使用基本架构创建一个新表,并使用客户自主管理型 Amazon 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 } ] } } }'