Tous les produits
Search
Centre de documentation

ApsaraDB RDS:Chiffrement des sauvegardes

Dernière mise à jour :Oct 10, 2026

Le chiffrement des sauvegardes utilise Percona XtraBackup pour chiffrer les sauvegardes d'une instance RDS for MySQL. Aucune modification de l'application n'est requise. Pour utiliser une sauvegarde chiffrée, vous devez la télécharger, puis la décompresser et la déchiffrer.

Prérequis

  • Votre instance RDS for MySQL doit répondre aux exigences suivantes :

    • Version majeure : 8.0, 5,7 ou 5,6

    • Édition : Édition Haute Disponibilité

    • Type de stockage : SSD locaux Premium

  • Acheter une instance KMS dédiée.

Contexte

Key Management Service (KMS) génère et gère les clés de chiffrement. RDS ne fournit pas les clés ni les certificats requis pour le chiffrement. Vous pouvez utiliser des clés générées automatiquement par Alibaba Cloud ou vos propres clés personnalisées.

Pour utiliser une clé personnalisée pour le chiffrement des sauvegardes, vous devez d'abord créer un rôle lié au service. RDS utilise ce rôle pour récupérer la liste des clés KMS, leurs propriétés et leurs alias. Cela permet à la console d'afficher la liste des clés de chiffrement disponibles et les informations de chiffrement associées après l'activation du chiffrement des sauvegardes.

Lorsque vous activez le chiffrement des sauvegardes, RDS ajoute un tag à la clé que vous sélectionnez. Le système de sauvegarde utilise ensuite le rôle lié au service et la clé pour chiffrer les sauvegardes.

Considérations

Important

Une fois le chiffrement des sauvegardes activé, il est impossible de le désactiver.

  • Vous ne pouvez pas modifier la clé après l'activation du chiffrement des sauvegardes.

  • Le chiffrement des sauvegardes s'applique uniquement aux nouvelles sauvegardes créées après l'activation de la fonctionnalité.

  • Pour restaurer une sauvegarde chiffrée dans un environnement local, vous devez la télécharger, puis déchiffrer les données.

    Remarque

    Si vous utilisez une sauvegarde pour restaurer des données via la console, vous n'avez pas besoin de la déchiffrer manuellement. Le backend déchiffre automatiquement les données avant de procéder à la restauration.

  • Si vous utilisez une clé personnalisée existante :

    • Si vous désactivez une clé, planifiez sa suppression ou supprimez son matériel de clé, celle-ci devient indisponible. Par conséquent, les opérations de maintenance et les restaurations qui dépendent de ces sauvegardes échoueront, ce qui pourrait affecter la disponibilité de l'instance.

    • Vous devez utiliser un compte Alibaba Cloud ou un utilisateur RAM disposant des permissions suivantes :

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "ram:CreateServiceLinkedRole"
                  ],
                  "Resource": "*",
                  "Effect": "Allow",
                  "Condition": {
                      "StringEquals": {
                          "ram:ServiceName": "backupencryption.rds.aliyuncs.com"
                      }
                  }
              },
              {
                  "Action": [
                      "kms:ListResourceTags",
                      "kms:TagResource"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                      "acs:kms:*:*:*"
                  ]
              }
          ]
      }
      Remarque

      Vous pouvez configurer les permissions et autoriser le compte depuis la console Resource Access Management (RAM). Pour plus d'informations, consultez la rubrique Autoriser un utilisateur RAM à accéder à une instance RDS.

Activer le chiffrement des sauvegardes

  1. Accédez à la page Instances. Dans la barre de navigation supérieure, sélectionnez la région où réside l'instance RDS. Localisez ensuite l'instance RDS et cliquez sur son ID.

  2. Dans le volet de navigation de gauche, cliquez sur Backup Recovery.

  3. Sur la page Backup Recovery, cliquez sur l'onglet Backup Policy.

  4. Dans la section Backup encryption Settings, cliquez sur Edit et activez Backup Encryption Status.

  5. Dans la boîte de dialogue Backup encryption Settings, sélectionnez une Backup Master Key et cliquez sur OK.

    • Use Automatically Generated Key

      Alibaba Cloud génère automatiquement une clé.

    • Use an Existing Custom Key

      Sélectionnez une clé existante depuis Key Management Service (KMS). Si vous n'en avez pas créé, consultez la rubrique Créer une clé.

      Remarque

      La première utilisation d'une clé personnalisée nécessite une autorisation. Suivez les instructions affichées à l'écran.

Aucun déchiffrement manuel des sauvegardes n'est nécessaire lors de leur utilisation au sein d'Alibaba Cloud. Le système déchiffre automatiquement les données pour les opérations connexes, telles que la restauration des données. Toutefois, si vous téléchargez une sauvegarde chiffrée dans un environnement local, vous devez la déchiffrer manuellement avant de pouvoir l'utiliser. Pour déchiffrer les données, consultez la rubrique Déchiffrer les données.

Déchiffrer les données

Cette section illustre le processus de déchiffrement en prenant pour exemple un système Ubuntu 16.04.

Prérequis

Procédure

  1. Obtenez le texte chiffré et l'algorithme de chiffrement du jeu de sauvegarde.

    1. Accédez à la page RDS Instances, sélectionnez une région dans la barre de navigation supérieure, puis cliquez sur l'ID de l'instance cible.

    2. Dans le volet de navigation de gauche, cliquez sur Backup Recovery.

    3. Sur la page Backup Recovery, accédez à l'onglet Base Backups > Data Backup.

    4. Dans la colonne Action du jeu de sauvegarde cible, cliquez sur 1 > View Encryption Information pour obtenir le Ciphertext et l'Encryption Algorithm.

  2. Appelez l'opération API Decrypt. Dans le paramètre CiphertextBlob, transmettez le Ciphertext obtenu à l'étape Étape 1 afin d'obtenir la chaîne binaire encodée en Base64 Plaintext.

    {
      "KeyId": "xxx",
      "KeyVersionId": "xxx",
      "Plaintext": "S14dTb16i4Qo",
      "RequestId": "7474865d-f1fc-49c8-bf4d-7323de86ce59"
    }
  3. Décodez la chaîne Plaintext en Base64 et convertissez les octets résultants en hexadécimal pour obtenir la clé de déchiffrement. Cet exemple utilise un script Python 3 pour effectuer cette opération.

    1. Exécutez vi decrypt.py dans l'interface de ligne de commande pour ouvrir l'éditeur vi.

    2. Appuyez sur i pour passer en mode insertion. Saisissez le contenu suivant, appuyez sur ESC, puis entrez :wq pour enregistrer le fichier et quitter.

      import base64
      import binascii
      plaintext = 'S14dTbl6i4Qo**********'  # Enter the Plaintext that you obtained in the preceding step between the single quotation marks ('').
      password = binascii.b2a_hex(base64.b64decode(plaintext))   # Obtain the decryption password and assign it to the password variable.
      print(str(password, 'utf-8'))   # Print the password as a string.
                    
    3. Exécutez la commande python decrypt.py. La commande affiche la clé de déchiffrement. Voici un exemple de clé :

      4b5e1d4db97a********************
  4. Téléchargez les données de sauvegarde chiffrées, puis déchiffrez-les.

    1. Télécharger les données de sauvegarde sur une machine locale.

    2. Exécutez la commande suivante pour créer un répertoire, par exemple /home/mysql/data, afin de stocker les données de sauvegarde.

      mkdir /home/mysql/data
    3. Décompressez le package. Choisissez une commande de décompression en fonction de l'extension du fichier.

      Type de fichier

      Commande de décompression

      Package tar (.tar.gz)

      tar -izxvf test1.tar.gz -C /home/mysql/data

      Package xbstream (.xb.gz)

      gzip -d -c test1.xb.gz | xbstream -x -v -C /home/mysql/data

      Package de fichiers xbstream (_qp.xb)

      ## Décompressez d'abord le fichier.
      cat test1_qp.xb | xbstream -x -v -C /home/mysql/data
      
      ## Ensuite, décompressez le fichier.
      ### Pour MySQL 5.6/5,7
      innobackupex --decompress --remove-original /home/mysql/data
      ### Pour MySQL 8.0
      xtrabackup --decompress --remove-original --target-dir=/home/mysql/data

      Package qpress xbstream (_xb.qp)

      qpress -do  test1_xb.qp  | xbstream -x -v -C /home/mysql/data

      Après la décompression, la plupart des fichiers de données portent l'extension .xbcrypt, indiquant qu'ils sont chiffrés.

      backup-my.cnf.xbcrypt        testdb
      dbfortest                     xtrabackup_binlog_info.xbcrypt
      ibdata1.xbcrypt               xtrabackup_checkpoints
      mysql                         xtrabackup_info.xbcrypt
      performance_schema            xtrabackup_logfile.xbcrypt
      rds_table_info_json_105244.log  xtrabackup_slave_filename_info.xbcrypt
      _recycle_bin_                 xtrabackup_slave_info.xbcrypt
    4. Exécutez la commande suivante pour déchiffrer les données.

      xtrabackup --decompress --remove-original --decrypt=AES256 --encrypt-key=4b5e1d4db97a******************** --target-dir=/home/mysql/data
      Remarque

      Paramètres clés :

      • decrypt : L'Encryption Algorithm obtenu à l'étape Étape 1. Dans cet exemple, la valeur est AES256.

      • encrypt-key : Le mot de passe de déchiffrement obtenu à l'étape Étape 3.

      • target-dir : Le répertoire où sont stockés les fichiers de sauvegarde.

      Une fois la commande exécutée, l'extension .xbcrypt disparaît des noms de fichiers, confirmant que les données sont déchiffrées.

      backup-my.cnf            testdb
      dbfortest                xtrabackup_binlog_info
      ibdata1                  xtrabackup_checkpoints
      mysql                    xtrabackup_info
      performance_schema       xtrabackup_logfile
      rds_table_info_json_105244.log  xtrabackup_slave_filename_info
      recycle_bin              xtrabackup_slave_info