Especificación del cifrado del servidor con claves de AWS KMS (SSE-KMS) en buckets de tablas
Todos los buckets de tablas de Amazon S3 tienen el cifrado configurado de forma predeterminada y todas las tablas nuevas creadas en un bucket de tablas se cifran automáticamente en reposo. El cifrado del servidor con claves administradas por Amazon S3 (SSE-S3) es la configuración de cifrado predeterminada para cada bucket de tabla. Si desea especificar un tipo de cifrado diferente, puede utilizar el cifrado del servidor con claves de AWS Key Management Service (AWS KMS) (SSE-KMS).
Puede especificar el cifrado SSE-KMS en las solicitudes CreateTableBucket
o CreateTable
, o puede establecer la configuración de cifrado predeterminada en el bucket de tabla en una solicitud PutTableBucketEncryption
.
importante
Para permitir el mantenimiento automático de las tablas y los buckets de tablas cifrados con SSE-KMS, debe conceder a la entidad principal de servicio maintenance.s3tables.amazonaws.com el permiso para usar la clave de KMS. Para obtener más información, consulte Requisitos de permiso para el cifrado SSE-KMS de tablas de S3.
Especificación del cifrado de los buckets de tablas
Puede especificar SSE-KMS como el tipo de cifrado predeterminado al crear un nuevo bucket de tabla; para ver ejemplos, consulte Crear un bucket de tablas. Tras crear un bucket de tabla, puede especificar el uso de SSE-KMS como configuración de cifrado predeterminada mediante las operaciones de la API de REST, los SDK de AWS y la AWS Command Line Interface (AWS CLI).
nota
Si especifica SSE-KMS como el tipo de cifrado predeterminado, la clave que utilice para el cifrado debe permitir el acceso a la entidad principal de servicio de mantenimiento de tablas de S3. Si la entidad principal del servicio de mantenimiento no tiene acceso, no podrá crear tablas en ese bucket de tablas. Para obtener más información, consulte Concesión de permisos de la entidad principal del servicio de mantenimiento de tablas de S3 a la clave de KMS .
Para utilizar el siguiente comando de la AWS CLI de ejemplo, sustituya marcadores de posición de entrada del usuario
por su propia información.
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
Puede eliminar la configuración de cifrado predeterminada de un bucket de tablas mediante la operación de la API DeleteTableBucketEncryption. Al eliminar la configuración de cifrado, las nuevas tablas que se creen en el bucket de tablas utilizarán el cifrado SSE-S3 predeterminado.
Especificación del cifrado para tablas
Puede aplicar el cifrado SSE-KMS a una tabla nueva al crearla mediante motores de consultas, operaciones de la API de REST, SDK de AWS y la AWS Command Line Interface (AWS CLI). La configuración de cifrado que especifique al crear una tabla tiene prioridad sobre la configuración de cifrado predeterminada del bucket de tablas.
nota
Cuando utiliza el cifrado SSE-KMS para una tabla, la clave que use para el cifrado debe permitir que la entidad principal de servicio de mantenimiento de tablas de S3 acceda a ella. Si la entidad principal del servicio de mantenimiento no tiene acceso, no podrá crear la tabla. Para obtener más información, consulte Concesión de permisos de la entidad principal del servicio de mantenimiento de tablas de S3 a la clave de KMS .
Permisos de necesarios
Se requieren los siguientes permisos para crear tablas cifradas
s3tables:CreateTable
s3tables:PutTableEncryption
El ejemplo de la AWS CLI siguiente crea una tabla nueva con un esquema básico y la cifra con una clave de AWS KMS administrada por el cliente. Para usar el comando, sustituya los marcadores de posición de entrada del usuario
con su propia información.
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 } ] } } }'