Mencadangkan dan memulihkan sertifikat TDE pada RDS for SQL Server - Layanan Basis Data Relasional Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mencadangkan dan memulihkan sertifikat TDE pada RDS for SQL Server

RDS for SQL Server menyediakan prosedur tersimpan untuk mencadangkan, memulihkan, dan menghapus sertifikat TDE. RDS for SQL Server juga menyediakan fungsi untuk melihat sertifikat TDE pengguna yang dipulihkan.

Sertifikat TDE pengguna digunakan untuk memulihkan basis data ke RDS for SQL Server yang on-premise dan TDE-nya diaktifkan. Sertifikat ini memiliki awalan UserTDECertificate_. Setelah memulihkan basis data, dan sebelum membuatnya tersedia untuk digunakan, RDS menyesuaikan basis data yang TDE-nya diaktifkan untuk menggunakan sertifikat TDE yang dihasilkan RDS. Sertifikat ini memiliki awalan RDSTDECertificate.

Sertifikat TDE pengguna tetap berada di instans DB RDS for SQL Server, kecuali jika Anda menghapusnya menggunakan prosedur tersimpan rds_drop_tde_certificate. Untuk informasi selengkapnya, lihat Menghapus sertifikat TDE yang dipulihkan.

Anda dapat menggunakan sertifikat TDE pengguna untuk memulihkan basis data lain dari instans DB sumber. Basis data untuk memulihkan harus menggunakan sertifikat TDE yang sama dan TDE-nya diaktifkan. Anda tidak perlu mengimpor (memulihkan) sertifikat yang sama lagi.

Prasyarat

Sebelum Anda dapat mencadangkan atau memulihkan sertifikat TDE pada RDS for SQL Server, pastikan untuk melakukan tugas-tugas berikut. Tiga yang pertama dijelaskan dalam Menyiapkan pencadangan dan pemulihan native.

  1. Buat bucket Amazon S3 untuk menyimpan file yang akan dicadangkan dan dipulihkan.

    Sebaiknya Anda menggunakan bucket terpisah untuk pencadangan basis data dan untuk pencadangan sertifikat TDE.

  2. Buat peran IAM untuk mencadangkan dan memulihkan file.

    Peran IAM harus berupa pengguna dan administrator untuk AWS KMS key.

    Selain izin yang diperlukan untuk pencadangan dan pemulihan asli SQL Server, peran IAM juga memerlukan izin berikut:

    • s3:GetBucketAcl, s3:GetBucketLocation, dan s3:ListBucket pada sumber daya bucket S3

    • s3:ListAllMyBuckets di sumber daya *

  3. Tambahkan opsi SQLSERVER_BACKUP_RESTORE ke grup opsi di instans DB Anda.

    Ini merupakan tambahan dari opsi TRANSPARENT_DATA_ENCRYPTION (TDE).

  4. Pastikan Anda memiliki kunci KMS enkripsi simetris. Anda memiliki opsi berikut:

    • Anda dapat menggunakan kunci KMS yang sudah ada di akun Anda. Tidak ada tindakan lebih lanjut yang diperlukan.

    • Jika Anda tidak memiliki kunci KMS enkripsi simetris yang ada di akun Anda, buat kunci KMS dengan mengikuti petunjuk di Membuat kunci di Panduan Developer AWS Key Management Service .

  5. Aktifkan integrasi Amazon S3 untuk mentransfer file antara instans DB dan Amazon S3.

    Untuk informasi selengkapnya tentang mengaktifkan integrasi Amazon S3, lihat. Mengintegrasikan instans Amazon RDS untuk SQL Server DB dengan Amazon S3

Batasan

Penggunaan prosedur tersimpan untuk mencadangkan dan memulihkan sertifikat TDE memiliki batasan sebagai berikut:

  • Opsi SQLSERVER_BACKUP_RESTORE dan TRANSPARENT_DATA_ENCRYPTION (TDE) harus ditambahkan ke grup opsi yang Anda kaitkan dengan instans DB.

  • Pencadangan dan pemulihan sertifikat TDE tidak didukung pada instans DB Multi-AZ.

  • Membatalkan pencadangan dan pemulihan sertifikat TDE tidak didukung.

  • Anda tidak dapat menggunakan sertifikat TDE pengguna untuk enkripsi TDE basis data lain di instans DB RDS for SQL Server Anda. Anda dapat menggunakannya hanya untuk memulihkan basis data lain dari instans DB sumber yang TDE-nya diaktifkan dan yang menggunakan sertifikat TDE yang sama.

  • Anda hanya dapat menghapus sertifikat TDE pengguna.

  • Jumlah maksimum sertifikat TDE pengguna yang didukung pada RDS adalah 10. Jika jumlahnya melebihi 10, hapus sertifikat TDE yang tidak digunakan dan coba lagi.

  • Nama sertifikat harus diisi dan tidak boleh kosong.

  • Saat memulihkan sertifikat, nama sertifikat tidak dapat menyertakan kata kunci RDSTDECERTIFICATE, dan harus dimulai dengan awalan UserTDECertificate_.

  • Parameter @certificate_name hanya dapat menyertakan karakter berikut: a-z, 0-9, @, $, #, dan garis bawah (_).

  • Ekstensi file untuk @certificate_file_s3_arn harus .cer (peka huruf besar kecil).

  • Ekstensi file untuk @private_key_file_s3_arn harus .pvk (peka huruf besar kecil).

  • Metadata S3 untuk file kunci privat harus menyertakan tag x-amz-meta-rds-tde-pwd. Untuk informasi selengkapnya, lihat Mencadangkan dan memulihkan TDE sertifikat untuk database lokal.

Mencadangkan sertifikat TDE

Untuk mencadangkan sertifikat TDE, gunakan prosedur tersimpan rds_backup_tde_certificate. Ini memiliki sintaks berikut.

EXECUTE msdb.dbo.rds_backup_tde_certificate @certificate_name='UserTDECertificate_certificate_name | RDSTDECertificatetimestamp', @certificate_file_s3_arn='arn:aws:s3:::bucket_name/certificate_file_name.cer', @private_key_file_s3_arn='arn:aws:s3:::bucket_name/key_file_name.pvk', @kms_password_key_arn='arn:aws:kms:region:account-id:key/key-id', [@overwrite_s3_files=0|1];

Parameter berikut diperlukan:

  • @certificate_name – Nama sertifikat TDE yang akan dicadangkan.

  • @certificate_file_s3_arn – Amazon Resource Name (ARN) tujuan untuk file cadangan sertifikat di Amazon S3.

  • @private_key_file_s3_arn – S3 ARN tujuan file kunci privat yang mengamankan sertifikat TDE.

  • @kms_password_key_arn – ARN kunci KMS simetris yang digunakan untuk mengenkripsi kata sandi kunci privat.

Parameter berikut bersifat opsional:

  • @overwrite_s3_files – Menunjukkan apakah akan menimpa file kunci privat dan sertifikat yang ada di S3:

    • 0 – Tidak menimpa file yang ada. Nilai ini adalah default.

      Mengatur @overwrite_s3_files ke 0 akan menghasilkan kesalahan jika file sudah ada.

    • 1 – Menimpa file yang sudah ada dengan nama yang ditentukan, meskipun itu bukan file cadangan.

contoh pencadangan sertifikat TDE
EXECUTE msdb.dbo.rds_backup_tde_certificate @certificate_name='RDSTDECertificate20211115T185333', @certificate_file_s3_arn='arn:aws:s3:::TDE_certs/mycertfile.cer', @private_key_file_s3_arn='arn:aws:s3:::TDE_certs/mykeyfile.pvk', @kms_password_key_arn='arn:aws:kms:us-west-2:123456789012:key/AKIAIOSFODNN7EXAMPLE', @overwrite_s3_files=1;

Memulihkan sertifikat TDE

Anda dapat menggunakan prosedur tersimpan rds_restore_tde_certificate untuk memulihkan (mengimpor) sertifikat TDE pengguna. Ini memiliki sintaks berikut.

EXECUTE msdb.dbo.rds_restore_tde_certificate @certificate_name='UserTDECertificate_certificate_name', @certificate_file_s3_arn='arn:aws:s3:::bucket_name/certificate_file_name.cer', @private_key_file_s3_arn='arn:aws:s3:::bucket_name/key_file_name.pvk', @kms_password_key_arn='arn:aws:kms:region:account-id:key/key-id';

Parameter berikut diperlukan:

  • @certificate_name – Nama sertifikat TDE yang akan dipulihkan. Nama harus dimulai dengan awalan UserTDECertificate_.

  • @certificate_file_s3_arn – S3 ARN file cadangan yang digunakan untuk memulihkan sertifikat TDE.

  • @private_key_file_s3_arn – S3 ARN file cadangan kunci privat untuk sertifikat TDE yang akan dipulihkan.

  • @kms_password_key_arn – ARN kunci KMS simetris yang digunakan untuk mengenkripsi kata sandi kunci privat.

contoh pemulihan sertifikat TDE
EXECUTE msdb.dbo.rds_restore_tde_certificate @certificate_name='UserTDECertificate_myTDEcertificate', @certificate_file_s3_arn='arn:aws:s3:::TDE_certs/mycertfile.cer', @private_key_file_s3_arn='arn:aws:s3:::TDE_certs/mykeyfile.pvk', @kms_password_key_arn='arn:aws:kms:us-west-2:123456789012:key/AKIAIOSFODNN7EXAMPLE';

Melihat sertifikat TDE yang dipulihkan

Anda dapat menggunakan fungsi rds_fn_list_user_tde_certificates untuk melihat sertifikat TDE pengguna yang dipulihkan (diimpor). Ini memiliki sintaks berikut.

SELECT * FROM msdb.dbo.rds_fn_list_user_tde_certificates();

Output-nya seperti berikut. Tidak semua kolom ditampilkan di sini.

name certificate_id principal_id pvt_key_encryption_type_desc issuer_name cert_serial_number thumbprint subject start_date expiry_date pvt_key_last_backup_date
UserTDECertificate_tde_cert 343 1 ENCRYPTED_BY_MASTER_KEY AnyCompany Shipping 79 3e 57 a3 69 fd 1d 9e 47 2c 32 67 1d 9c ca af 0x6BB218B34110388680B FE1BA2D86C695096485B5 AnyCompany Shipping 2022-04-05 19:49:45.0000000 2023-04-05 19:49:45.0000000 NULL

Menghapus sertifikat TDE yang dipulihkan

Untuk menghapus sertifikat TDE pengguna yang dipulihkan (diimpor) yang tidak Anda gunakan, gunakan prosedur tersimpan rds_drop_tde_certificate. Ini memiliki sintaks berikut.

EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_certificate_name';

Parameter berikut diperlukan:

  • @certificate_name – Nama sertifikat TDE yang akan dihapus.

Anda hanya dapat menghapus sertifikat TDE yang dipulihkan (diimpor). Anda tidak dapat menghapus sertifikat yang dihasilkan RDS.

contoh penghapusan sertifikat TDE
EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_myTDEcertificate';