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
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.
CatatanJika 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:*:*:*" ] } ] }CatatanAnda 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
Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instance RDS berada. Temukan instance RDS dan klik ID instance tersebut.
Di panel navigasi sisi kiri, klik Backup and Restoration.
Di halaman Backup and Restoration, klik tab Backup Strategy.
Klik Edit di bagian Backup Encryption Settings untuk mengaktifkan Backup Encryption Status.
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.
CatatanJika 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/binPython 3 telah diinstal.
Prosedur
Peroleh teks sandi dan algoritma yang digunakan untuk mengenkripsi file backup.
Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instance RDS berada. Temukan instance RDS dan klik ID instance tersebut.
Di panel navigasi sisi kiri halaman yang muncul, klik Backup and Restoration.
Di halaman yang muncul, klik tab Base Backups lalu tab Data Backup.
Klik ikon
di kolom Actions dari set backup dan klik View Encryption Information untuk memperoleh ciphertext dan encryption algorithm.
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.

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.
Buka editor vi dengan menjalankan perintah
vi decrypt.pydi CLI.Tekan tombol
ipada keyboard untuk mengaktifkan mode pengeditan, masukkan konten berikut, tekan tombolESC, lalu masukkan:wquntuk 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.Jalankan perintah
python decrypt.pydi CLI, dan kata sandi untuk dekripsi dicetak di layar. Contoh:4b5e1d4db97a********************
Unduh data backup yang dienkripsi dan dekripsi data tersebut.
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.
Jalankan perintah berikut di CLI untuk membuat direktori, seperti
/home/mysql/data, untuk menyimpan data backup:mkdir /home/mysql/dataDekompresi 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/dataSetelah dekompresi, semua data memiliki akhiran
.xbcrypt. Akhiran tersebut menunjukkan bahwa data tersebut dienkripsi.
Jalankan perintah berikut untuk mendekripsi data:
xtrabackup --decompress --remove-original --decrypt=AES256 --encrypt-key=4b5e1d4db97a******************** --target-dir=/home/mysql/dataSetelah Anda menjalankan perintah sebelumnya, akhiran
.xbcryptdari file backup hilang dan file backup didekripsi.