Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Backup encryption

Última atualização: Oct 10, 2026

A criptografia de backup usa o Percona XtraBackup para criptografar backups de uma instância do RDS for MySQL. Não é necessário alterar a aplicação. Para usar um backup criptografado, baixe-o, descompacte-o e descriptografe-o.

Pré-requisitos

  • Sua instância do RDS for MySQL deve atender aos seguintes requisitos:

    • Versão principal: 8.0, 5.7 ou 5.6

    • Edição: High-availability Edition

    • Tipo de armazenamento: SSDs locais premium

  • Purchase a dedicated KMS instance.

Contexto

O Key Management Service (KMS) gera e gerencia as chaves de criptografia. O RDS não fornece as chaves nem os certificados necessários para a criptografia. Você pode usar chaves geradas automaticamente pela Alibaba Cloud ou suas chaves personalizadas.

Para usar uma chave personalizada na criptografia de backup, crie primeiro uma service-linked role. O RDS usa essa função para recuperar a lista de chaves do KMS, suas propriedades e seus aliases. Assim, o console pode exibir a lista de chaves de criptografia disponíveis e as informações relacionadas após a ativação da criptografia de backup.

Ao ativar a criptografia de backup, o RDS adiciona uma tag à chave selecionada. Em seguida, o sistema de backup usa a service-linked role e a chave para criptografar os backups.

Considerações

Importante

Não é possível desativar a criptografia de backup depois de ativada.

  • Não é possível alterar a chave depois de ativar a criptografia de backup.

  • A criptografia de backup aplica-se apenas a novos backups criados após a ativação do recurso.

  • Para restaurar um backup criptografado em um ambiente local, baixe-o e decrypt the data.

    Nota

    Ao usar um backup para restore data no console, não é necessário descriptografá-lo manualmente. O backend descriptografa e restaura os dados automaticamente.

  • Ao usar uma chave personalizada existente:

    • Se você desativar uma chave, agendar a exclusão dela ou excluir o material da chave, ela ficará indisponível. Consequentemente, as operações de O&M e as restaurações que dependem desses backups falharão, podendo afetar a disponibilidade da instância.

    • Use uma conta da Alibaba Cloud ou um usuário do RAM com as seguintes permissões:

      {
          "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

      Configure as permissões e autorize a conta no console do Resource Access Management (RAM). Para mais informações, consulte Authorize a RAM user to access an RDS instance.

Ativar a criptografia de backup

  1. Acesse a página Instances. Na barra de navegação superior, selecione a região onde a instância do RDS está localizada. Em seguida, encontre a instância do RDS e clique no ID dela.

  2. No painel de navegação à esquerda, clique em Backup Recovery.

  3. Na página Backup Recovery, clique na aba Backup Policy.

  4. Na seção Backup encryption Settings, clique em Edit e ative o Backup Encryption Status.

  5. Na caixa de diálogo Backup encryption Settings, selecione uma Backup Master Key e clique em OK.

    • Use Automatically Generated Key

      A Alibaba Cloud gera a chave automaticamente.

    • Use an Existing Custom Key

      Selecione uma chave existente no Key Management Service (KMS). Caso ainda não tenha criado uma, consulte Create a key.

      Nota

      Ao usar uma chave personalizada pela primeira vez, é necessário autorizá-la. Siga as instruções na tela.

Não é necessário descriptografar os backups manualmente ao usá-los na Alibaba Cloud. O sistema descriptografa os dados automaticamente em operações relacionadas, como a restauração de dados. No entanto, ao baixar um backup criptografado para um ambiente local, você deve descriptografá-lo manualmente antes de usá-lo. Para descriptografar dados, consulte Decrypt data.

Descriptografar dados

Esta seção demonstra o processo de descriptografia com o sistema Ubuntu 16.04 como exemplo.

Pré-requisitos

Procedimento

  1. Obtenha o texto cifrado e o algoritmo de criptografia do conjunto de backup.

    1. Acesse a página RDS Instances, selecione uma região na barra de navegação superior e clique no ID da instância de destino.

    2. No painel de navegação à esquerda, clique em Backup Recovery.

    3. Na página Backup Recovery, clique na aba Base Backups > Data Backup.

    4. Na coluna Action do conjunto de backup de destino, clique em 1 > View Encryption Information para obter o Ciphertext e o Encryption Algorithm.

  2. Chame a operação da API Decrypt. No parâmetro CiphertextBlob, passe o Ciphertext obtido em Step 1 para obter a string binária Plaintext codificada em Base64.

    {
      "KeyId": "xxx",
      "KeyVersionId": "xxx",
      "Plaintext": "S14dTb16i4Qo",
      "RequestId": "7474865d-f1fc-49c8-bf4d-7323de86ce59"
    }
  3. Decodifique a string Plaintext em Base64 e converta os bytes resultantes em hexadecimal para obter a chave de descriptografia. Este exemplo usa um script Python 3 para isso.

    1. Execute vi decrypt.py na interface de linha de comando para abrir o editor vi.

    2. Pressione i para entrar no modo de inserção. Insira o conteúdo a seguir, pressione ESC e digite :wq para salvar o arquivo e sair.

      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. Execute o comando python decrypt.py. O comando exibe a chave de descriptografia. Veja um exemplo de chave:

      4b5e1d4db97a********************
  4. Baixe os dados de backup criptografados e descriptografe-os.

    1. Download the backup data to a local machine.

    2. Execute o comando a seguir para criar um diretório, por exemplo, /home/mysql/data, e armazenar os dados de backup.

      mkdir /home/mysql/data
    3. Descompacte o pacote. Escolha o comando de descompactação de acordo com o sufixo do arquivo.

      Tipo de arquivo

      Comando de descompactação

      Pacote tar (.tar.gz)

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

      Pacote xbstream (.xb.gz)

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

      Pacote de arquivos 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

      Pacote qpress xbstream (_xb.qp)

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

      Após a descompactação, a maioria dos arquivos de dados terá o sufixo .xbcrypt, o que indica que estão criptografados.

      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. Execute o comando a seguir para descriptografar os dados.

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

      Parâmetros principais:

      • decrypt: O Encryption Algorithm obtido em Step 1. Neste exemplo, o valor é AES256.

      • encrypt-key: A senha de descriptografia obtida em Step 3.

      • target-dir: O diretório onde os arquivos de backup estão armazenados.

      Após a execução do comando, o sufixo .xbcrypt é removido dos nomes dos arquivos, confirmando que os dados foram descriptografados.

      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