全部产品
Search
文档中心

ApsaraDB RDS:Gunakan fitur enkripsi backup

更新时间:Jul 06, 2025

Tema ini menjelaskan cara mengaktifkan fitur enkripsi backup untuk instance ApsaraDB RDS for MySQL. File backup dienkripsi menggunakan utilitas Percona XtraBackup, yang menghilangkan kebutuhan untuk memodifikasi aplikasi Anda. Untuk menggunakan file backup yang dienkripsi, unduh file tersebut dan dekripsi saat proses dekompresi.

Prasyarat

  • Instance RDS Anda harus memenuhi persyaratan berikut:

    • Instance RDS menjalankan MySQL 8.0, MySQL 5.7, atau MySQL 5.6.

    • Instance RDS menjalankan Edisi Ketersediaan Tinggi RDS.

    • Instance RDS menggunakan Premium Local SSDs.

  • Key Management Service (KMS) telah diaktifkan. Untuk informasi lebih lanjut, lihat Beli instance KMS khusus.

Informasi latar belakang

Kunci untuk enkripsi backup dibuat dan dikelola oleh Key Management Service (KMS). ApsaraDB RDS tidak menyediakan kunci atau sertifikat yang diperlukan untuk enkripsi backup. Anda dapat menggunakan kunci yang dihasilkan secara otomatis atau kunci kustom.

Untuk menggunakan kunci kustom, buat peran terkait layanan terlebih dahulu. ApsaraDB RDS menggunakan peran ini untuk mendapatkan kunci serta atribut dan alias dari KMS. Kemudian, ApsaraDB RDS menampilkan kunci-kunci tersebut di konsol ApsaraDB RDS. Setelah file backup dienkripsi menggunakan kunci kustom, ApsaraDB RDS juga menampilkan informasi enkripsi terkait. Untuk informasi lebih lanjut, lihat Peran terkait layanan.

Saat mengaktifkan fitur enkripsi backup, ApsaraDB RDS menandai kunci yang dipilih. Kemudian, ApsaraDB RDS menggunakan kunci tersebut untuk mengenkripsi file backup berdasarkan peran terkait layanan.

Catatan penggunaan

Penting

Setelah fitur enkripsi backup diaktifkan, fitur tersebut tidak dapat dinonaktifkan.

  • Setelah fitur enkripsi backup diaktifkan, kunci tidak dapat diubah.

  • Hanya file backup baru yang dienkripsi setelah fitur diaktifkan. File backup yang sudah ada tidak dienkripsi.

  • Jika ingin memulihkan data instance RDS ke database lokal, Anda harus mendekripsi file backup setelah mengunduhnya. Untuk informasi lebih lanjut, lihat Dekripsi file backup.

    Catatan

    Jika Anda memulihkan data langsung dari file backup melalui konsol ApsaraDB RDS, tidak perlu mendekripsi file backup karena backend akan mendekripsinya secara otomatis sebelum pemulihan. Untuk informasi lebih lanjut, lihat Pemulihan data lengkap.

  • Jika menggunakan kunci kustom yang sudah ada untuk enkripsi backup, perhatikan hal-hal berikut:

    • Jika Anda menonaktifkan kunci, mengonfigurasi rencana penghapusan kunci, atau menghapus material kunci, kunci menjadi tidak tersedia. Dalam kasus ini, operasi O&M yang memerlukan file backup yang dienkripsi dengan kunci tersebut akan gagal, menurunkan ketersediaan instance Anda. Pemulihan data dari file backup yang dienkripsi dengan kunci yang tidak tersedia juga akan gagal.

    • Anda harus menggunakan akun Alibaba Cloud atau pengguna RAM dengan izin berikut:

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

      Anda dapat mengonfigurasi izin dan memberikan izin kepada pengguna RAM melalui konsol RAM. Untuk informasi lebih lanjut, lihat Otorisasi pengguna RAM untuk mengelola instance ApsaraDB RDS.

Aktifkan fitur enkripsi backup

  1. Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instance RDS berada. Temukan instance RDS dan klik ID instance tersebut.

  2. Di panel navigasi sisi kiri, klik Backup and Restoration.

  3. Di halaman Backup and Restoration, klik tab Backup Strategy.

  4. Klik Edit di bagian Backup Encryption Settings untuk mengaktifkan Backup Encryption Status.

  5. Di kotak dialog Backup Set Encryption Information, pilih nilai untuk parameter Backup Master Key dan klik OK.

    • Use Automatically Generated Key

      Jika Anda memilih opsi ini, Alibaba Cloud menghasilkan kunci yang digunakan untuk mengenkripsi file backup.

    • Use Existing Custom Key

      Jika Anda memilih opsi ini, kunci yang dibuat menggunakan KMS digunakan. Jika kunci tersebut belum ada, Anda dapat membuatnya melalui KMS. Untuk informasi lebih lanjut, lihat Buat CMK.

      Catatan

      Jika ini pertama kalinya Anda menggunakan KMS untuk membuat kunci kustom, ikuti instruksi yang ditunjukkan untuk mendapatkan otorisasi.

Setelah fitur enkripsi backup diaktifkan, file backup instance RDS Anda dienkripsi. Jika Anda menggunakan file backup ini di Alibaba Cloud, Anda tidak perlu mendekripsinya secara manual karena backend akan mendekripsinya secara otomatis sebelum operasi seperti pemulihan data. Namun, jika Anda mengunduh file backup ke komputer Anda, Anda harus mendekripsinya secara manual. Untuk informasi lebih lanjut tentang cara mendekripsi file backup, lihat Dekripsi file backup.

Dekripsi file backup

Bagian ini menggunakan Ubuntu 16.04 sebagai contoh untuk menunjukkan cara mendekripsi file backup.

Prasyarat

  • Percona XtraBackup telah diinstal. Jika belum, instal Percona XtraBackup dengan mengikuti instruksi di Installing Percona XtraBackup 2.4 atau Install Percona XtraBackup 8.0 overview.

  • Alat dekompresi qpress telah diinstal. Jika belum, jalankan perintah berikut:

    wget "http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/183466/cn_zh/1608011575185/qpress-11-linux-x64.tar"
    tar xvf qpress-11-linux-x64.tar
    chmod 775 qpress
    cp qpress /usr/bin
  • Python 3 telah diinstal.

Prosedur

  1. Peroleh teks sandi dan algoritma yang digunakan untuk mengenkripsi file backup.

    1. Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instance RDS berada. Temukan instance RDS dan klik ID instance tersebut.

    2. Di panel navigasi sisi kiri halaman yang muncul, klik Backup and Restoration.

    3. Di halaman yang muncul, klik tab Base Backups lalu tab Data Backup.

    4. Klik ikon 1 di kolom Actions dari set backup dan klik View Encryption Information untuk memperoleh ciphertext dan encryption algorithm.

  2. Panggil operasi Decrypt dan atur parameter CiphertextBlob ke ciphertext yang diperoleh di Langkah 1 untuk memperoleh nilai parameter Plaintext. Nilai tersebut adalah string biner yang dikodekan dalam Base64.

    plaintext

  3. Dekode nilai parameter Plaintext menggunakan Base64 dan konversikan setiap nilai biner dalam string biner menjadi nilai heksadesimal. Kemudian, Anda dapat memperoleh kata sandi. Bagian ini menggunakan kode Python 3 untuk mengimplementasikan operasi ini.

    1. Buka editor vi dengan menjalankan perintah vi decrypt.py di CLI.

    2. Tekan tombol i pada keyboard untuk mengaktifkan mode pengeditan, masukkan konten berikut, tekan tombol ESC, lalu masukkan :wq untuk menyimpan perubahan dan menonaktifkan mode pengeditan.

      import base64
      import binascii
      plaintext = 'S14dTbl6i4Qo**********'  # Masukkan nilai parameter Plaintext yang diperoleh di langkah sebelumnya dalam tanda kutip tunggal (''). 
      password = binascii.b2a_hex(base64.b64decode(plaintext))   # Dapatkan kata sandi untuk dekripsi dan atur parameter kata sandi ke nilai yang diperoleh. 
      print(str(password, 'utf-8'))   # Cetak kata sandi sebagai string di layar.
      
    3. Jalankan perintah python decrypt.py di CLI, dan kata sandi untuk dekripsi dicetak di layar. Contoh:

      4b5e1d4db97a********************
  4. Unduh data backup yang dienkripsi dan dekripsi data tersebut.

    1. Unduh data backup ke komputer Anda. Untuk informasi lebih lanjut, lihat Pulihkan data instance ApsaraDB RDS for MySQL dari file backup fisik ke database MySQL yang dikelola sendiri.

    2. Jalankan perintah berikut di CLI untuk membuat direktori, seperti /home/mysql/data, untuk menyimpan data backup:

      mkdir /home/mysql/data
    3. Dekompresi paket backup fisik. Perintah yang digunakan untuk mendekompresi paket backup fisik bervariasi berdasarkan ekstensi nama paket.

      Tipe file backup

      Perintah yang digunakan untuk dekompresi

      .tar.gz

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

      .xb.gz

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

      _qp.xb

      ## Dekompresi file backup fisik.
      cat test1_qp.xb | xbstream -x -v -C /home/mysql/data
      
      ## Dekompresi file backup fisik.
      ### Jika instance RDS menjalankan MySQL 5.6 atau MySQL 5.7, jalankan perintah berikut:
      innobackupex --decompress --remove-original /home/mysql/data
      ### Jika instance RDS menjalankan MySQL 8.0, jalankan perintah berikut:
      xtrabackup --decompress --remove-original --target-dir=/home/mysql/data

      _xb.qp

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

      Setelah dekompresi, semua data memiliki akhiran .xbcrypt. Akhiran tersebut menunjukkan bahwa data tersebut dienkripsi. 数据被加密

    4. Jalankan perintah berikut untuk mendekripsi data:

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

      Daftar berikut menjelaskan parameter penting dalam perintah sebelumnya:

      • decrypt: encryption algorithm yang diperoleh di Langkah 1. Dalam contoh ini, atur nilainya ke AES256.

      • encrypt-key: kata sandi yang diperoleh di Langkah 3 untuk dekripsi.

      • target-dir: direktori tempat file backup berada.

      Setelah Anda menjalankan perintah sebelumnya, akhiran .xbcrypt dari file backup hilang dan file backup didekripsi. 数据解密成功