Sauvegarde et restauration de certificats TDE sur RDS for SQL Server - Amazon Relational Database Service

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

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.

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.

Prérequis

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.

  1. Créez des compartiments Amazon S3 pour y 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.

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

    Outre les autorisations requises pour la sauvegarde et la restauration natives SQL Server, le rôle IAM exige également les autorisations suivantes :

    • s3:GetBucketAcl, s3:GetBucketLocation et s3:ListBucket sur la ressource du compartiment S3

    • s3:ListAllMyBuckets sur la ressource *

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

  4. 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 (Création de clés) du Guide du développeur AWS Key Management Service .

  5. 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 à Amazon S3.

Limites

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, @, $, # et trait de soulignement (_).

  • 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 des TDE certificats pour les bases de données locales.

Sauvegarde d'un certificat TDE

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.

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

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.

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

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_id principal_id pvt_key_encryption_type_desc issuer_name cert_serial_number thumbprint subject start_date expiry_date pvt_key_last_backup_date
UserTDECertificate_tde_cert 343 1 ENCRYPTED_BY_MASTER_KEY 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

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.

Exemple de suppression d'un certificat TDE
EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_myTDEcertificate';