Amazon Relational Database Service
Guide de l'utilisateur (Version de l'API 2014-10-31)

Prise en charge de Microsoft SQL Server Transparent Data Encryption

Amazon RDS prend en charge Transparent Data Encryption (TDE) pour le chiffrement des données stockées sur vos instances de base de données exécutant Microsoft SQL Server. La fonction TDE chiffre automatiquement les données avant qu'elles ne soient écrites sur le stockage et déchiffre automatiquement les données lorsqu'elles sont lues depuis le stockage.

Amazon RDS prend en charge TDE pour les versions et éditions suivantes de SQL Server :

  • SQL Server 2017 Enterprise Edition

  • SQL Server 2016 Enterprise Edition

  • SQL Server 2014 Enterprise Edition

  • SQL Server 2012 Enterprise Edition

Pour activer la fonction TDE pour une instance de base de données RDS SQL Server, spécifiez l'option TDE dans un groupe d'options RDS associé à cette instance de base de données.

La fonction TDE pour SQL Server fournit une gestion des clés de chiffrement à l'aide d'une architecture de clé à deux niveaux. Un certificat, qui est généré à partir de la clé principale de la base de données, permet de protéger les clés de chiffrement des données. La clé de chiffrement de la base de données exécute le chiffrement et le déchiffrement des données sur la base de données utilisateur. Amazon RDS sauvegarde et gère la clé principale de la base de données ainsi que le certificat TDE. Pour se conformer à plusieurs normes de sécurité, Amazon RDS travaille à implémenter une rotation automatique régulière de la clé principale.

La fonction TDE (Transparent Data Encryption) est utilisée dans les scénarios où vous devez chiffrer des données sensibles. Par exemple, vous pouvez souhaiter fournir des fichiers de données et des sauvegardes à un tiers, ou résoudre des problèmes de conformité réglementaire liés à la sécurité. Vous ne pouvez pas chiffrer les bases de données système pour SQL Server, telles que les bases de données Model ou Master.

Une présentation détaillée d'Oracle TDE dépasse le propos de ce guide, mais vous devez bien comprendre les points forts et les points faibles de chaque algorithme et de chaque clé. Pour plus d'informations sur le chiffrement TDE pour SQL Server, consultez Transparent Data Encryption (TDE) sur le site web de Microsoft.

Vous devez déterminer si votre instance de base de données est déjà associée à un groupe d'options ayant l'option TDE. Pour afficher le groupe d'options auquel une instance de base de données est associée, vous pouvez utiliser la console RDS, la commande describe-db-instance de l'AWS CLI ou l'opération d'API DescribeDBInstances.

Le processus d'activation d'Oracle TDE sur une instance de base de données SQL Server est le suivant :

  1. Si l'instance de base de données n'est pas associée à un groupe d'options pour lequel TDE est activé, vous avez deux possibilités. Vous pouvez créer un groupe d'options et ajouter l'option TDE, ou vous pouvez modifier le groupe d'options associé pour l'ajouter. Pour plus d'informations sur la création ou la modification d'un groupe d'options, consultez Utilisation de groupes d'options. Pour plus d'informations sur l'ajout d'une option à un groupe d'options, consultez Ajout d'une option à un groupe d'options.

  2. Associez l'instance de base de données au groupe d'options avec l'option TDE. Pour plus d'informations sur l'association d'une instance de base de données à un groupe d'options, consultez Modification d'une instance de base de données exécutant le moteur de base de données Microsoft SQL Server.

Lorsque l'option TDE est ajoutée à un groupe d'options, Amazon RDS génère un certificat qui est utilisé dans le processus de chiffrement. Vous pouvez alors utiliser le certificat pour exécuter les instructions SQL qui chiffrent les données d'une base de données sur l'instance de base de données. L'exemple suivant utilise le certificat créé par RDS et appelé RDSTDECertificateName pour chiffrer la base de données customerDatabase.

---------- Enabling TDE ------------- -- Find a RDSTDECertificate to use USE [master] GO SELECT name FROM sys.certificates WHERE name LIKE 'RDSTDECertificate%' GO USE [customerDatabase] GO -- Create DEK using one of the certificates from the previous step CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE [RDSTDECertificateName] GO -- Enable encryption on the database ALTER DATABASE [customerDatabase] SET ENCRYPTION ON GO -- Verify that the database is encrypted USE [master] GO SELECT name FROM sys.databases WHERE is_encrypted = 1 GO SELECT db_name(database_id) as DatabaseName, * FROM sys.dm_database_encryption_keys GO

La durée du chiffrement d'une base de données SQL Server à l'aide de TDE dépend de plusieurs facteurs. Elle dépend notamment de la taille de l'instance de base de données, de l'activation ou non de PIOPS pour l'instance, de la quantité de données, et d'autres facteurs.

L'option TDE est une option persistante que vous ne pouvez pas supprimer d'un groupe d'options tant que l'ensemble des instances de base de données et des sauvegardes n'a pas été dissocié du groupe d'options. Une fois que vous avez ajouté l'option TDE à un groupe d'options, le groupe d'options peut uniquement être associé aux instances de bases de données qui utilisent TDE. Pour plus d'informations sur les options persistantes dans un groupe d'options, consultez Présentation des groupes d'options.

Comme l'option TDE est une option persistante, un conflit peut se produire entre le groupe d'options et une instance de base de données associée. Vous pouvez avoir un conflit entre le groupe d'options et une instance de base de données associée dans les cas suivants :

  • Le groupe d'options actuel a l'option TDE et vous le remplacez par un groupe d'options qui n'a pas l'option TDE.

  • Vous restaurez à partir d'un instantané de base de données vers une nouvelle instance de base de données qui n'a pas de groupe d'options contenant l'option TDE. Pour plus d'informations sur ce scénario, consultez Considérations relatives au groupe d'options.

Pour désactiver TDE pour une instance de base de données, assurez-vous d'abord qu'il ne reste pas d'objets chiffrés sur l'instance de base de données en déchiffrant les objets ou en les supprimant. Si un objet chiffré existe sur l'instance de base de données, vous ne pouvez pas désactiver TDE pour celle-ci. Quand vous utilisez la console pour supprimer l'option TDE d'un groupe d'options, la console indique qu'elle est en cours de traitement. En outre, un événement d'erreur est créé si le groupe d'options est associé à une instance de base de données ou un instantané de bases de données chiffré.

L'exemple suivant supprime le chiffrement TDE d'une base de données appelée customerDatabase.

------------- Removing TDE ---------------- USE [customerDatabase] GO -- Disable encryption on the database ALTER DATABASE [customerDatabase] SET ENCRYPTION OFF GO -- Wait until the encryption state of the database becomes 1. The state is 5 (Decryption in progress) for a while SELECT db_name(database_id) as DatabaseName, * FROM sys.dm_database_encryption_keys GO -- Drop the DEK used for encryption DROP DATABASE ENCRYPTION KEY GO -- Alter to SIMPLE Recovery mode so that your encrypted log gets truncated USE [master] GO ALTER DATABASE [customerDatabase] SET RECOVERY SIMPLE GO

Une fois tous les objets déchiffrés, vous pouvez modifier l'instance de base de données à associer à un groupe d'options sans l'option TDE ou vous pouvez supprimer l'option TDE du groupe d'options.