

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Prise en charge de Transparent Data Encryption dans SQL Server
<a name="Appendix.SQLServer.Options.TDE"></a>

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 2022 Standard Edition et Enterprise Edition
+ SQL Server 2019 Standard Edition et Enterprise Edition
+ SQL Server 2017 Enterprise Edition
+ SQL Server 2016 Enterprise Edition

**Note**  
RDS for SQL Server ne prend pas en charge le TDE pour les bases de données en lecture seule.

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

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

Ce guide n'a pas vocation à offrir une présentation détaillée du chiffrement TDE, mais assurez-vous de 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)](http://msdn.microsoft.com/en-us/library/bb934049.aspx) dans la documentation Microsoft.

**Topics**
+ [Activation de TDE pour RDS for SQL Server](#TDE.Enabling)
+ [Chiffrement de données sur RDS for SQL Server](TDE.Encrypting.md)
+ [Sauvegarde et restauration de certificats TDE sur RDS for SQL Server](TDE.BackupRestoreRDS.md)
+ [Sauvegarde et restauration de certificats TDE pour les bases de données sur site](TDE.BackupRestoreOnPrem.md)
+ [Désactivation de TDE pour RDS for SQL Server](TDE.Disabling.md)

## Activation de TDE pour RDS for SQL Server
<a name="TDE.Enabling"></a>

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, utilisez la console RDS, la [describe-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) AWS CLI commande ou l'opération d'API [DBInstancesDescribe](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html).

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.
**Note**  
Dans la console RDS, l'option est nommée `TRANSPARENT_DATA_ENCRYPTION`. Dans l'API AWS CLI et RDS, il est nommé`TDE`.

   Pour plus d'informations sur la création ou la modification d'un groupe d'options, consultez [Utilisation de groupes d’options](USER_WorkingWithOptionGroups.md). 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](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

1.  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](Overview.DBInstance.Modifying.md).

### Considérations relatives au groupe d'options
<a name="TDE.Options"></a>

L'option TDE est persistante. Vous ne pouvez pas la supprimer d'un groupe d'options tant que toutes les instances de base de données et les sauvegardes sont associées au groupe d'options. Une fois que vous avez ajouté l'option TDE à un groupe d'options, le groupe d'options ne peut être associé qu'aux instances de base 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](USER_WorkingWithOptionGroups.md#Overview.OptionGroups). 

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. Un conflit peut se produire 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 aux groupes d’options](USER_CopySnapshot.md#USER_CopySnapshot.Options). 

### Considérations relatives aux performances de SQL Server
<a name="TDE.Perf"></a>

L'utilisation de Transparent Data Encryption peut impacter les performances d'une instance de base de données SQL Server.

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.

# Chiffrement de données sur RDS for SQL Server
<a name="TDE.Encrypting"></a>

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 `myDatabase`.

```
 1. ---------- Turning on TDE -------------
 2. 
 3. -- Find an RDS TDE certificate to use
 4. USE [master]
 5. GO
 6. SELECT name FROM sys.certificates WHERE name LIKE 'RDSTDECertificate%'
 7. GO
 8. 
 9. USE [myDatabase]
10. GO
11. -- Create a database encryption key (DEK) using one of the certificates from the previous step
12. CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256
13. ENCRYPTION BY SERVER CERTIFICATE [RDSTDECertificateName]
14. GO
15. 
16. -- Turn on encryption for the database
17. ALTER DATABASE [myDatabase] SET ENCRYPTION ON
18. GO
19. 
20. -- Verify that the database is encrypted
21. USE [master]
22. GO
23. SELECT name FROM sys.databases WHERE is_encrypted = 1
24. GO
25. SELECT db_name(database_id) as DatabaseName, * FROM sys.dm_database_encryption_keys
26. 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, du fait que l'instance utilise ou non le stockage d'IOPS provisionnés, de la quantité de données, et d'autres facteurs.

# Sauvegarde et restauration de certificats TDE sur RDS for SQL Server
<a name="TDE.BackupRestoreRDS"></a>

RDS for SQL Server fournit des procédures stockées pour la sauvegarde, la restauration et la suppression de certificats TDE. RDS for SQL Server fournit également une fonction permettant d'afficher les certificats TDE utilisateur restaurés.

Les certificats TDE utilisateur sont utilisés pour restaurer des bases de données sur site et pour lesquelles TDE est activé sur RDS for SQL Server. Ces certificats ont le préfixe `UserTDECertificate_`. Après avoir restauré les bases de données et avant de les mettre à disposition, RDS modifie les bases de données sur lesquelles TDE est activé pour utiliser les certificats TDE générés par RDS. Ces certificats ont le préfixe `RDSTDECertificate`.

Les certificats TDE utilisateur restent sur l'instance de base de données RDS for SQL Server, sauf si vous les supprimez en utilisant la procédure stockée `rds_drop_tde_certificate`. Pour de plus amples informations, veuillez consulter [Suppression de certificats TDE restaurés](#TDE.BackupRestoreRDS.Drop).

Vous pouvez utiliser un certificat TDE utilisateur pour restaurer d'autres bases de données à partir de l'instance de base de données source. Les bases de données à restaurer doivent utiliser le même certificat TDE et TDE doit être activé sur celles-ci. Il n'est pas nécessaire d'importer (restaurer) à nouveau le même certificat. 

**Topics**
+ [Conditions préalables](#TDE.BackupRestoreRDS.Prereqs)
+ [Limitations](#TDE.Limitations)
+ [Sauvegarde d'un certificat TDE](#TDE.BackupRestoreRDS.Backup)
+ [Restauration d'un certificat TDE](#TDE.BackupRestoreRDS.Restore)
+ [Affichage des certificats TDE restaurés](#TDE.BackupRestoreRDS.Show)
+ [Suppression de certificats TDE restaurés](#TDE.BackupRestoreRDS.Drop)

## Conditions préalables
<a name="TDE.BackupRestoreRDS.Prereqs"></a>

Avant de pouvoir sauvegarder ou restaurer des certificats TDE sur RDS for SQL Server, veillez à effectuer les tâches suivantes. Les trois premières tâches sont décrites dans [Configuration pour les sauvegarde et restauration natives](SQLServer.Procedural.Importing.Native.Enabling.md).

1. Créez des compartiments à usage général ou des compartiments de répertoire Amazon S3 pour stocker les fichiers à sauvegarder et à restaurer.

   Nous vous recommandons d'utiliser des compartiments distincts pour les sauvegardes de bases de données et pour les sauvegardes de certificats TDE.

1. Créez un rôle IAM pour la sauvegarde et la restauration de fichiers.

   Le rôle IAM doit être à la fois un utilisateur et un administrateur de la AWS KMS key.

   Lorsque vous utilisez des compartiments de répertoire, aucune autorisation supplémentaire n'est requise autre que celles requises pour les compartiments [Création manuelle d'un rôle IAM pour les sauvegarde et restauration natives](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM) de répertoire.

   Lors de l'utilisation des ressources S3, le rôle IAM nécessite également les autorisations suivantes, en plus des autorisations requises pour [Création manuelle d'un rôle IAM pour les sauvegarde et restauration natives](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM) :
   + `s3:GetBucketAcl`, `s3:GetBucketLocation` et `s3:ListBucket` sur la ressource du compartiment S3

1. Ajoutez l'option `SQLSERVER_BACKUP_RESTORE` à un groupe d'options sur votre instance de base de données.

   Elle vient s'ajouter à l'option `TRANSPARENT_DATA_ENCRYPTION` (`TDE`).

1. Vérifiez que vous disposez d'une clé KMS de chiffrement symétrique. Vous avez les options suivantes :
   + Si vous disposez déjà d'une clé KMS dans votre compte, vous pouvez l'utiliser. Aucune action supplémentaire n'est nécessaire.
   + Si votre compte ne contient pas encore de clés de chiffrement KMS symétriques, créez-en une en suivant les instructions de la section [Creating keys](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) (Création de clés) du *Guide du développeur AWS Key Management Service *.

1. Activez l'intégration Amazon S3 pour transférer des fichiers entre l'instance de base de données et Amazon S3.

   Pour plus d'informations sur l'activation de l'intégration d'Amazon S3, consultez [Intégration d'une instance de base de données Amazon RDS for SQL Server DB avec Amazon S3](User.SQLServer.Options.S3-integration.md).

   Notez que les compartiments de répertoire ne sont pas pris en charge pour l'intégration S3. Cette étape n'est requise que pour[Sauvegarde et restauration de certificats TDE pour les bases de données sur site](TDE.BackupRestoreOnPrem.md).

## Limitations
<a name="TDE.Limitations"></a>

L'utilisation de procédures stockées pour sauvegarder et restaurer des certificats TDE présente les limites suivantes :
+ Les options `SQLSERVER_BACKUP_RESTORE` et `TRANSPARENT_DATA_ENCRYPTION` (`TDE`) doivent être ajoutées au groupe d'options que vous avez associé à votre instance de base de données.
+ La sauvegarde et la restauration de certificats TDE ne sont pas prises en charge sur les instances de base de données multi-AZ.
+ L'annulation des tâches de sauvegarde et de restauration de certificats TDE n'est pas prise en charge.
+ Vous ne pouvez pas utiliser de certificat TDE utilisateur pour le chiffrement TDE d'une autre base de données sur votre instance de base de données RDS for SQL Server. Vous pouvez l'utiliser pour restaurer uniquement d'autres bases de données à partir de l'instance de base de données source sur laquelle TDE est activé et qui utilisent le même certificat TDE.
+ Vous ne pouvez supprimer que des certificats TDE utilisateur.
+ Le nombre maximal de certificats TDE utilisateur pris en charge sur RDS est de 10. Si le nombre dépasse 10, supprimez les certificats TDE inutilisés et réessayez.
+ Le nom de certificat ne peut pas être vide ou null.
+ Lors de la restauration d'un certificat, le nom du certificat ne peut pas inclure le mot-clé `RDSTDECERTIFICATE` et doit commencer par le préfixe `UserTDECertificate_`.
+ Le paramètre `@certificate_name` peut inclure uniquement les caractères suivants : a-z, 0-9, @, \$1, \$1 et trait de soulignement (\$1).
+ L'extension de fichier de `@certificate_file_s3_arn` doit être .cer (insensible à la casse).
+ L'extension de fichier de `@private_key_file_s3_arn` doit être .pvk (insensible à la casse).
+ Les métadonnées S3 du fichier de clé privée doivent inclure la balise `x-amz-meta-rds-tde-pwd`. Pour de plus amples informations, veuillez consulter [Sauvegarde et restauration de certificats TDE pour les bases de données sur site](TDE.BackupRestoreOnPrem.md).
+ RDS for SQL Server ne prend pas en charge l’utilisation de clés entre comptes pour TDE.

## Sauvegarde d'un certificat TDE
<a name="TDE.BackupRestoreRDS.Backup"></a>

Pour sauvegarder les certificats TDE, utilisez la procédure stockée `rds_backup_tde_certificate`. Elle possède la syntaxe suivante.

```
EXECUTE msdb.dbo.rds_backup_tde_certificate
    @certificate_name='UserTDECertificate_certificate_name | RDSTDECertificatetimestamp',
    @certificate_file_s3_arn='arn:aws:s3:::bucket_name/certificate_file_name.cer',
    @private_key_file_s3_arn='arn:aws:s3:::bucket_name/key_file_name.pvk',
    @kms_password_key_arn='arn:aws:kms:region:account-id:key/key-id',
    [@overwrite_s3_files=0|1];
```

Les paramètres suivants sont obligatoires :
+ `@certificate_name` : nom du certificat TDE à sauvegarder.
+ `@certificate_file_s3_arn` : Amazon Resource Name (ARN) de destination pour le fichier de sauvegarde de certificat dans Amazon S3.
+ `@private_key_file_s3_arn` : ARN S3 de destination du fichier de clé privée qui sécurise le certificat TDE.
+ `@kms_password_key_arn` : ARN de la clé KMS symétrique utilisée pour chiffrer le mot de passe de la clé privée.

Le paramètre suivant est facultatif :
+ `@overwrite_s3_files` : indique s'il convient de remplacer le certificat existant et les fichiers de clé privée dans S3 :
  + `0` : n'écrase pas les fichiers existants. Cette valeur est celle par défaut.

    Si `@overwrite_s3_files` est défini sur 0, une erreur est renvoyée si un fichier existe déjà.
  + `1` – Écrase le fichier existant qui possède déjà le nom spécifié, même s'il ne s'agit pas d'un fichier de sauvegarde.

**Example Exemple de sauvegarde d'un certificat TDE**  

```
EXECUTE msdb.dbo.rds_backup_tde_certificate
    @certificate_name='RDSTDECertificate20211115T185333',
    @certificate_file_s3_arn='arn:aws:s3:::TDE_certs/mycertfile.cer',
    @private_key_file_s3_arn='arn:aws:s3:::TDE_certs/mykeyfile.pvk',
    @kms_password_key_arn='arn:aws:kms:us-west-2:123456789012:key/AKIAIOSFODNN7EXAMPLE',
    @overwrite_s3_files=1;
```

## Restauration d'un certificat TDE
<a name="TDE.BackupRestoreRDS.Restore"></a>

Vous utilisez la procédure stockée `rds_restore_tde_certificate` pour restaurer (importer) des certificats TDE utilisateur. Elle possède la syntaxe suivante.

```
EXECUTE msdb.dbo.rds_restore_tde_certificate
    @certificate_name='UserTDECertificate_certificate_name',
    @certificate_file_s3_arn='arn:aws:s3:::bucket_name/certificate_file_name.cer',
    @private_key_file_s3_arn='arn:aws:s3:::bucket_name/key_file_name.pvk',
    @kms_password_key_arn='arn:aws:kms:region:account-id:key/key-id';
```

Les paramètres suivants sont obligatoires :
+ `@certificate_name` : nom du certificat TDE à restaurer. Le nom doit commencer par le préfixe `UserTDECertificate_`.
+ `@certificate_file_s3_arn` : ARN S3 du fichier de sauvegarde utilisé pour restaurer le certificat TDE.
+ `@private_key_file_s3_arn` : ARN S3 du fichier de sauvegarde de la clé privée du certificat TDE à restaurer.
+ `@kms_password_key_arn` : ARN de la clé KMS symétrique utilisée pour chiffrer le mot de passe de la clé privée.

**Example Exemple de restauration d'un certificat TDE**  

```
EXECUTE msdb.dbo.rds_restore_tde_certificate
    @certificate_name='UserTDECertificate_myTDEcertificate',
    @certificate_file_s3_arn='arn:aws:s3:::TDE_certs/mycertfile.cer',
    @private_key_file_s3_arn='arn:aws:s3:::TDE_certs/mykeyfile.pvk',
    @kms_password_key_arn='arn:aws:kms:us-west-2:123456789012:key/AKIAIOSFODNN7EXAMPLE';
```

## Affichage des certificats TDE restaurés
<a name="TDE.BackupRestoreRDS.Show"></a>

Vous utilisez la fonction `rds_fn_list_user_tde_certificates` pour afficher les certificats TDE utilisateur restaurés (importés). Elle possède la syntaxe suivante.

```
SELECT * FROM msdb.dbo.rds_fn_list_user_tde_certificates();
```

La sortie se présente comme suit : Les colonnes ne sont pas toutes affichées ici.


|  |  |  |  |  |  |  |  |  |  |  | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| name | certificate\$1id | principal\$1id | pvt\$1key\$1encryption\$1type\$1desc | issuer\$1name | cert\$1serial\$1number | thumbprint | subject | start\$1date | expiry\$1date | pvt\$1key\$1last\$1backup\$1date | 
| UserTDECertificate\$1tde\$1cert | 343 | 1 | ENCRYPTED\$1BY\$1MASTER\$1KEY | AnyCompany Shipping | 79 3e 57 a3 69 fd 1d 9e 47 2c 32 67 1d 9c ca af | 0x6BB218B34110388680B FE1BA2D86C695096485B5 | AnyCompany Shipping | 2022-04-05 19:49:45.0000000 | 2023-04-05 19:49:45.0000000 | NULL | 

## Suppression de certificats TDE restaurés
<a name="TDE.BackupRestoreRDS.Drop"></a>

Pour supprimer les certificats TDE utilisateur restaurés (importés) que vous n'utilisez pas, utilisez la procédure stockée `rds_drop_tde_certificate`. Elle possède la syntaxe suivante.

```
EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_certificate_name';
```

Les paramètres suivants sont obligatoires :
+ `@certificate_name` : nom du certificat TDE à supprimer.

Vous ne pouvez supprimer que les certificats TDE restaurés (importés). Vous ne pouvez pas supprimer les certificats créés par RDS.

**Example Exemple de suppression d'un certificat TDE**  

```
EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_myTDEcertificate';
```

# Sauvegarde et restauration de certificats TDE pour les bases de données sur site
<a name="TDE.BackupRestoreOnPrem"></a>

Vous pouvez sauvegarder des certificats TDE pour les bases de données sur site, puis les restaurer ultérieurement sur RDS for SQL Server. Vous pouvez également restaurer un certificat TDE RDS for SQL Server sur une instance de base de données sur site.

**Note**  
RDS for SQL Server ne prend pas en charge l’utilisation de clés entre comptes pour TDE.

La procédure suivante sauvegarde un certificat TDE et une clé privée. La clé privée est chiffrée à l'aide d'une clé de données générée à partir de votre clé KMS de chiffrement symétrique.

**Pour sauvegarder un certificat TDE sur site**

1. Générez la clé de données à l'aide de la AWS CLI [generate-data-key](https://docs.aws.amazon.com/cli/latest/reference/kms/generate-data-key.html)commande.

   ```
   aws kms generate-data-key \
       --key-id my_KMS_key_ID \
       --key-spec AES_256
   ```

   La sortie se présente comme suit :

   ```
   {
   "CiphertextBlob": "AQIDAHimL2NEoAlOY6Bn7LJfnxi/OZe9kTQo/XQXduug1rmerwGiL7g5ux4av9GfZLxYTDATAAAAfjB8BgkqhkiG9w0B
   BwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMyCxLMi7GRZgKqD65AgEQgDtjvZLJo2cQ31Vetngzm2ybHDc3d2vI74SRUzZ
   2RezQy3sAS6ZHrCjfnfn0c65bFdhsXxjSMnudIY7AKw==",
   "Plaintext": "U/fpGtmzGCYBi8A2+0/9qcRQRK2zmG/aOn939ZnKi/0=",
   "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-00ee-99ff-88dd-aa11bb22cc33"
   }
   ```

   Vous utilisez la sortie en texte brut à l'étape suivante comme mot de passe de clé privée.

1. Sauvegardez votre certificat TDE comme illustré dans l'exemple suivant.

   ```
   BACKUP CERTIFICATE myOnPremTDEcertificate TO FILE = 'D:\tde-cert-backup.cer'
   WITH PRIVATE KEY (
   FILE = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\cert-backup-key.pvk',
   ENCRYPTION BY PASSWORD = 'U/fpGtmzGCYBi8A2+0/9qcRQRK2zmG/aOn939ZnKi/0=');
   ```

1. Enregistrez le fichier de sauvegarde de certificat dans votre compartiment de certificat Amazon S3.

1. Enregistrez le fichier de sauvegarde de clé privée dans votre compartiment de certificat S3, avec la balise suivante dans les métadonnées du fichier :
   + Clé : `x-amz-meta-rds-tde-pwd`
   + Valeur : valeur `CiphertextBlob` issue de la génération de la clé de données, comme dans l'exemple suivant.

     ```
     AQIDAHimL2NEoAlOY6Bn7LJfnxi/OZe9kTQo/XQXduug1rmerwGiL7g5ux4av9GfZLxYTDATAAAAfjB8BgkqhkiG9w0B
     BwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMyCxLMi7GRZgKqD65AgEQgDtjvZLJo2cQ31Vetngzm2ybHDc3d2vI74SRUzZ
     2RezQy3sAS6ZHrCjfnfn0c65bFdhsXxjSMnudIY7AKw==
     ```

La procédure suivante restaure un certificat TDE RDS for SQL Server sur une instance de base de données sur site. Vous copiez et restaurez le certificat TDE sur votre instance de base de données de destination à l'aide de la sauvegarde du certificat, du fichier de clé privée correspondant et de la clé de données. Le certificat restauré est chiffré par la clé principale de base de données du nouveau serveur. 

**Pour restaurer un certificat TDE**

1. Copiez le fichier de sauvegarde du certificat TDE et le fichier de clé privée à partir d’Amazon S3 vers l'instance de destination. Pour plus d'informations sur la copie de fichiers depuis Amazon S3, consultez [Transfert de fichiers entre RDS for SQL Server et Amazon S3](Appendix.SQLServer.Options.S3-integration.using.md).

1. Utilisez votre clé KMS pour déchiffrer le texte chiffré en sortie afin de récupérer le texte brut de la clé de données. Le texte chiffré se trouve dans les métadonnées S3 du fichier de sauvegarde de la clé privée.

   ```
   aws kms decrypt \
       --key-id my_KMS_key_ID \
       --ciphertext-blob fileb://exampleCiphertextFile | base64 -d \
       --output text \
       --query Plaintext
   ```

   Vous utilisez la sortie en texte brut à l'étape suivante comme mot de passe de clé privée.

1. Utilisez la commande SQL suivante pour restaurer votre certificat TDE.

   ```
   CREATE CERTIFICATE myOnPremTDEcertificate FROM FILE='D:\tde-cert-backup.cer'
   WITH PRIVATE KEY (FILE = N'D:\tde-cert-key.pvk',
   DECRYPTION BY PASSWORD = 'plain_text_output');
   ```

Pour plus d'informations sur le déchiffrement KMS, consultez [decrypt](https://docs.aws.amazon.com/cli/latest/reference/kms/decrypt.html) dans la section KMS du manuel *AWS CLI Command Reference*.

Une fois le certificat TDE restauré sur l'instance de base de données de destination, vous pouvez restaurer des bases de données chiffrées avec ce certificat.

**Note**  
Vous pouvez utiliser le même certificat TDE pour chiffrer plusieurs bases de données SQL Server sur l'instance de base de données source. Pour migrer plusieurs bases de données vers une instance de destination, copiez une seule fois le certificat TDE qui leur est associé sur l'instance de destination.

# Désactivation de TDE pour RDS for SQL Server
<a name="TDE.Disabling"></a>

Pour désactiver TDE pour une instance de base de données RDS for SQL Server, commencez par vérifier qu'il ne reste pas d'objets chiffrés sur l'instance de base de données. Pour ce faire, déchiffrez les objets ou supprimez-les. Si un objet chiffré existe sur l'instance de base de données, vous ne pouvez pas désactiver TDE pour celle-ci. Si un certificat utilisateur TDE pour le chiffrement a été restauré (importé), il doit être supprimé. 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`. 

```
 1. ------------- Removing TDE ----------------
 2. 
 3. USE [customerDatabase]
 4. GO
 5. 
 6. -- Turn off encryption of the database
 7. ALTER DATABASE [customerDatabase]
 8. SET ENCRYPTION OFF
 9. GO
10. 
11. -- Wait until the encryption state of the database becomes 1. The state is 5 (Decryption in progress) for a while
12. SELECT db_name(database_id) as DatabaseName, * FROM sys.dm_database_encryption_keys
13. GO
14. 
15. -- Drop the DEK used for encryption
16. DROP DATABASE ENCRYPTION KEY
17. GO
18. 
19. -- Drop a user TDE certificate if it was restored (imported)
20. EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_certificate_name';
21. 
22. -- Alter to SIMPLE Recovery mode so that your encrypted log gets truncated
23. USE [master]
24. GO
25. ALTER DATABASE [customerDatabase] SET RECOVERY SIMPLE
26. GO
```

Lorsque tous les objets sont déchiffrés, vous disposez de deux options :

1. Vous pouvez modifier l'instance de base de données pour l'associer à un groupe d'options sans l'option TDE.

1. Vous pouvez supprimer l'option TDE du groupe d'options.