Spécification du chiffrement côté serveur avec des clés AWS KMS (SSE-KMS) dans les compartiments de table
Le chiffrement est configuré par défaut pour tous les compartiments de table Amazon S3, et toutes les nouvelles tables créées dans un compartiment de table sont automatiquement chiffrés au repos. Le chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3) est la configuration de chiffrement par défaut pour chaque compartiment de table. Si vous souhaitez spécifier un type de chiffrement différent, vous pouvez utiliser le chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS).
Vous pouvez spécifier le chiffrement SSE-KMS dans vos demandes CreateTableBucket ou CreateTable, ou vous pouvez définir la configuration de chiffrement par défaut dans le compartiment de table d’une demande PutTableBucketEncryption.
Important
Pour autoriser la maintenance automatique de tables chiffrées SSE-KMS et des compartiments de table, vous devez accorder au principal du service maintenance.s3tables.amazonaws.com l’autorisation d’utiliser votre clé KMS. Pour plus d’informations, consultez Exigences d’autorisation pour le chiffrement SSE-KMS de S3 Tables.
Spécification du chiffrement pour les compartiments de table
Vous pouvez spécifier SSE-KMS comme type de chiffrement par défaut lorsque vous créez un nouveau compartiment de table. Pour des exemples, consultez Création d’un compartiment de tables. Après avoir créé un compartiment de table, vous pouvez spécifier l’utilisation de SSE-KMS comme paramètre de chiffrement par défaut à l’aide des opérations d’API REST, des kits AWS SDK et de l’AWS Command Line Interface (AWS CLI).
Note
Lorsque vous spécifiez SSE-KMS comme type de chiffrement par défaut, la clé que vous utilisez pour le chiffrement doit autoriser l’accès au principal du service de maintenance de S3 Tables. Si le principal du service de maintenance n’y a pas accès, vous ne pourrez pas créer de tables dans ce compartiment de table. Pour plus d’informations, consultez Octroi des autorisations de principal de service de maintenance de S3 Tables sur votre clé KMS .
Pour utiliser l’exemple de commande AWS CLI suivant, remplacez les espaces réservés à la saisie utilisateur par vos propres informations.
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
Vous pouvez supprimer le paramètre de chiffrement par défaut pour un compartiment de table à l’aide de l’opération d’API DeleteTableBucketEncryption. Lorsque vous supprimez les paramètres de chiffrement, les nouvelles tables créées dans le compartiment de table utilisent le chiffrement SSE-S3 par défaut.
Spécification du chiffrement pour les tables
Vous pouvez appliquer le chiffrement SSE-KMS à une nouvelle table lorsque vous le créez à l’aide de moteurs de requêtes, d’opérations d’API REST, de kits AWS SDK et de l’AWS Command Line Interface (AWS CLI). Les paramètres de chiffrement que vous spécifiez lors de la création d’une table ont priorité sur le paramètre de chiffrement par défaut du compartiment de table.
Note
Lorsque vous utilisez le chiffrement SSE-KMS pour une table, la clé que vous utilisez pour le chiffrement doit autoriser l’accès au principal du service de maintenance de S3 Tables. Si le principal du service de maintenance n’y a pas accès, vous ne pourrez pas créer la table. Pour plus d’informations, consultez Octroi des autorisations de principal de service de maintenance de S3 Tables sur votre clé KMS .
Autorisations nécessaires
Les autorisations suivantes sont requises pour créer des tables chiffrées
s3tables:CreateTables3tables:PutTableEncryption
L’exemple d’AWS CLI suivant crée une nouvelle table avec un schéma de base et la chiffre à l’aide d’une clé AWS KMS gérée par le client. Pour utiliser cette commande, remplacez les espaces réservés à la saisie utilisateur par vos propres informations.
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 } ] } } }'