Prise en charge de Transparent Data Encryption dans SQL Server - Amazon Relational Database Service

Prise en charge de Transparent Data Encryption dans SQL Server

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 2019 Standard Edition et Enterprise Edition

  • SQL Server 2017 Enterprise Edition

  • SQL Server 2016 Enterprise Edition

  • SQL Server 2014 Enterprise Edition

  • SQL Server 2012 Enterprise Edition

La fonction TDE pour SQL Server assure la gestion des clés de chiffrement à l'aide d'une architecture de clés à 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..

Note

RDS ne prend pas en charge l'importation ou l'exportation de certificats TDE.

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.

Note

Vous pouvez créer des sauvegardes natives de bases de données compatibles TDE, mais vous ne pouvez pas restaurer ces sauvegardes sur des bases de données locales. Vous ne pouvez pas restaurer les sauvegardes natives de bases de données sur site compatibles TDE.

Ce guide n'a pas vocation à offrir une présentation détaillée du chiffrement TDE, mais vous devez bien comprendre les points forts et les points faibles de chaque algorithme et de chaque clé. Pour plus d'informations sur la technologie Transparent Data Encryption pour SQL Server, consultez Transparent Data Encryption (TDE) dans la documentation Microsoft.

Activation de la fonction TDE

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

  1. Déterminez si votre instance de base de données est déjà associée à un groupe d'options disposant de 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.

  2. 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.

    Note

    Dans la console RDS, l'option est nommée TRANSPARENT_DATA_ENCRYPTION. Dans l'AWS CLI et l'API RDS, elle est nommée TDE.

    Pour plus d'informations sur la création ou la modification d'un groupe d'options, consultez Utilisation de groupes d'options. Pour de plus amples informations sur l'ajout d'une option à un groupe d'options, veuillez consulter Ajout d'une option à un groupe d'options.

  3. Associez l'instance de base de données au groupe d'options qui dispose de 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 Amazon RDS.

Chiffrement de données

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.

Considérations relatives au groupe d'options

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.

Considérations relatives aux performances de SQL Server

Les performances d'une instance de base de données SQL Server peuvent être impactées par la fonction TDE.

Les performances des bases de données non chiffrées peuvent aussi être dégradées si les bases de données se trouvent sur une instance de base de données qui possède au moins une base de données chiffrée. En conséquence, il est recommandé de garder les bases de données chiffrées et les bases de données non chiffrées sur des instances de base de données distinctes.

Désactivation de la fonction TDE

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

Lorsque tous les objets sont déchiffrés, vous disposez de deux options. Vous pouvez modifier l'instance de base de données pour l'associer à un groupe d'options sans l'option TDE. Vous pouvez également supprimer l'option TDE du groupe d'options.