

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.

# 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';
```