Todos los productos
Search
Centro de documentos

ApsaraDB RDS:Backup encryption

Última actualización: Oct 10, 2026

El cifrado de copias de seguridad utiliza Percona XtraBackup para cifrar las copias de seguridad de una instancia de RDS for MySQL. No es necesario modificar la aplicación. Para usar una copia de seguridad cifrada, debe descargarla y después descomprimirla y descifrarla.

Requisitos previos

  • La instancia de RDS for MySQL debe cumplir con los siguientes requisitos:

    • Versión principal: 8.0, 5.7 o 5.6

    • Edición: High-availability Edition

    • Tipo de almacenamiento: Premium Local SSDs

  • Purchase a dedicated KMS instance.

Contexto

Key Management Service (KMS) genera y gestiona las claves de cifrado. RDS no proporciona las claves ni los certificados obligatorios para el cifrado. Puede utilizar las claves que Alibaba Cloud genera automáticamente o sus propias claves personalizadas.

Para usar una clave personalizada en el cifrado de copias de seguridad, primero debe crear un service-linked role. RDS utiliza este rol para recuperar la lista de claves de KMS, sus propiedades y sus alias. Esto permite que la consola muestre la lista de claves de cifrado disponibles y la información de cifrado relacionada una vez que se habilita el cifrado de copias de seguridad.

Cuando usted habilita el cifrado de copias de seguridad, RDS etiqueta la clave seleccionada. Después, el sistema de copias de seguridad usa el rol vinculado al servicio y la clave para cifrar las copias de seguridad.

Consideraciones

Importante

Una vez habilitado el cifrado de copias de seguridad, no se puede deshabilitar.

  • No es posible cambiar la clave después de habilitar el cifrado de copias de seguridad.

  • El cifrado de copias de seguridad solo aplica a las nuevas copias creadas tras habilitar esta función.

  • Para restaurar una copia de seguridad cifrada en un entorno local, debe descargarla y después decrypt the data.

    Nota

    Si utiliza una copia de seguridad para restore data desde la consola, no necesita descifrarla manualmente. El backend descifra los datos automáticamente y luego los restaura.

  • Si utiliza una clave personalizada existente:

    • Si deshabilita una clave, programa su eliminación o elimina su material de clave, la clave deja de estar disponible. En consecuencia, las operaciones de operación y mantenimiento (O&M) y las restauraciones que dependan de estas copias de seguridad fallarán, lo cual podría afectar la disponibilidad de la instancia.

    • Debe usar una cuenta de Alibaba Cloud o un usuario de RAM con los siguientes permisos:

      {
          "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:*:*:*"
                  ]
              }
          ]
      }
      Nota

      Puede configurar los permisos y otorgar la autorización a la cuenta desde la consola de Resource Access Management (RAM). Para obtener más información, consulte Authorize a RAM user to access an RDS instance.

Habilitar el cifrado de copias de seguridad

  1. Vaya a la página Instances. En la barra de navegación superior, seleccione la región donde reside la instancia de RDS. A continuación, busque la instancia de RDS y haga clic en su ID.

  2. En el panel de navegación izquierdo, haga clic en Backup Recovery.

  3. En la página Backup Recovery, haga clic en la pestaña Backup Policy.

  4. En la sección Backup encryption Settings, haga clic en Edit y active Backup Encryption Status.

  5. En el cuadro de diálogo Backup encryption Settings, seleccione una Backup Master Key y haga clic en OK.

    • Use Automatically Generated Key

      Alibaba Cloud genera una clave automáticamente.

    • Use an Existing Custom Key

      Seleccione una clave existente de Key Management Service (KMS). Si aún no ha creado una, consulte Create a key.

      Nota

      La primera vez que utilice una clave personalizada, se requiere autorización. Siga las instrucciones que aparecen en pantalla.

No es necesario descifrar manualmente las copias de seguridad cuando se usan dentro de Alibaba Cloud. El sistema descifra los datos automáticamente para las operaciones relacionadas, como la restauración de datos. Sin embargo, si descarga una copia de seguridad cifrada a un entorno local, debe descifrarla manualmente antes de usarla. Para descifrar los datos, consulte Decrypt data.

Descifrar datos

Esta sección muestra el proceso de descifrado con un sistema Ubuntu 16.04 como ejemplo.

Requisitos previos

Procedimiento

  1. Obtenga el texto cifrado y el algoritmo de cifrado del conjunto de copia de seguridad.

    1. Vaya a la página RDS Instances, seleccione una región en la barra de navegación superior y haga clic en el ID de la instancia de destino.

    2. En el panel de navegación izquierdo, haga clic en Backup Recovery.

    3. En la página Backup Recovery, vaya a la pestaña Base Backups > Data Backup.

    4. En la columna Action del conjunto de copia de seguridad de destino, haga clic en 1 > View Encryption Information para obtener el Ciphertext y el Encryption Algorithm.

  2. Llame a la operación de API Decrypt. En el parámetro CiphertextBlob, pase el Ciphertext que obtuvo en Step 1 para conseguir la cadena binaria codificada en Base64 Plaintext.

    {
      "KeyId": "xxx",
      "KeyVersionId": "xxx",
      "Plaintext": "S14dTb16i4Qo",
      "RequestId": "7474865d-f1fc-49c8-bf4d-7323de86ce59"
    }
  3. Decodifique la cadena Plaintext desde Base64 y convierta los bytes resultantes a hexadecimal para obtener la clave de descifrado. Este ejemplo utiliza un script de Python 3 para hacerlo.

    1. Ejecute vi decrypt.py en la interfaz de línea de comandos para abrir el editor vi.

    2. Presione i para entrar al modo de inserción. Introduzca el siguiente contenido, presione ESC y luego escriba :wq para guardar el archivo y salir.

      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. Ejecute el comando python decrypt.py. El comando imprime la clave de descifrado. A continuación se muestra una clave de ejemplo:

      4b5e1d4db97a********************
  4. Descargue los datos de la copia de seguridad cifrada y luego descífrelos.

    1. Download the backup data to a local machine.

    2. Ejecute el siguiente comando para crear un directorio, por ejemplo, /home/mysql/data, donde almacenar los datos de la copia de seguridad.

      mkdir /home/mysql/data
    3. Descomprima el paquete. Elija el comando de descompresión según la extensión del archivo.

      Tipo de archivo

      Comando de descompresión

      Paquete tar (.tar.gz)

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

      Paquete xbstream (.xb.gz)

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

      Paquete de archivos xbstream (_qp.xb)

      ## Unpack the file first.
      cat test1_qp.xb | xbstream -x -v -C /home/mysql/data
      
      ## Then, decompress the file.
      ### For MySQL 5.6/5.7
      innobackupex --decompress --remove-original /home/mysql/data
      ### For MySQL 8.0
      xtrabackup --decompress --remove-original --target-dir=/home/mysql/data

      Paquete qpress de xbstream (_xb.qp)

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

      Tras la descompresión, la mayoría de los archivos de datos tienen la extensión .xbcrypt, lo cual indica que están cifrados.

      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. Ejecute el siguiente comando para descifrar los datos.

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

      Parámetros clave:

      • decrypt: el Encryption Algorithm que obtuvo en Step 1. En este ejemplo, el valor es AES256.

      • encrypt-key: la contraseña de descifrado que obtuvo en Step 3.

      • target-dir: el directorio donde se almacenan los archivos de la copia de seguridad.

      Una vez ejecutado el comando, la extensión .xbcrypt desaparece de los nombres de archivo, lo que confirma que los datos se descifraron.

      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