

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

# Dukungan untuk Enkripsi Data Transparan di SQL Server
<a name="Appendix.SQLServer.Options.TDE"></a>

Amazon RDS mendukung penggunaan Enkripsi Data Transparan (TDE) untuk mengenkripsi data tersimpan di instans DB Anda yang menjalankan Microsoft SQL Server. TDE mengenkripsi data secara otomatis sebelum ditulis ke penyimpanan, dan mendekripsi data secara otomatis saat data dibaca dari penyimpanan. 

Amazon RDS mendukung TDE untuk versi dan edisi SQL Server berikut:
+ SQL Server 2022 Standard dan Enterprise Edition
+ SQL Server 2019 Standard dan Enterprise Edition
+ SQL Server 2017 Enterprise Edition
+ SQL Server 2016 Enterprise Edition

**catatan**  
RDS untuk SQL Server tidak mendukung TDE untuk database read-only.

Enkripsi Data Transparan untuk SQL Server menyediakan manajemen kunci enkripsi dengan menggunakan arsitektur kunci dua tingkat. Sertifikat, yang dihasilkan dari kunci utama basis data, digunakan untuk melindungi kunci enkripsi data. Kunci enkripsi basis data melakukan enkripsi dan dekripsi data yang sebenarnya pada basis data pengguna. Amazon RDS mencadangkan dan mengelola kunci utama basis data dan sertifikat TDE.

Enkripsi Data transparan digunakan dalam skenario ketika Anda perlu mengenkripsi data sensitif. Misalnya, saat Anda harus memberikan file dan cadangan data kepada pihak ketiga, atau mengatasi masalah kepatuhan peraturan terkait keamanan. Anda tidak dapat mengenkripsi basis data sistem untuk SQL Server, seperti basis data `model` atau `master`.

Pembahasan mendetail tentang Enkripsi Data Transparan berada di luar cakupan panduan ini, tetapi pastikan bahwa Anda memahami kekuatan dan kelemahan keamanan dari setiap algoritma dan kunci enkripsi. Untuk informasi tentang Enkripsi Data Transparan untuk SQL Server, lihat [Transparent Data Encryption (TDE)](http://msdn.microsoft.com/en-us/library/bb934049.aspx) di dokumentasi Microsoft.

**Topics**
+ [Mengaktifkan TDE untuk RDS for SQL Server](#TDE.Enabling)
+ [Mengenkripsi data untuk Server RDS SQL](TDE.Encrypting.md)
+ [Mencadangkan dan memulihkan sertifikat TDE pada RDS for SQL Server](TDE.BackupRestoreRDS.md)
+ [Mencadangkan dan memulihkan sertifikat TDE untuk basis data on-premise](TDE.BackupRestoreOnPrem.md)
+ [Menonaktifkan TDE untuk RDS for SQL Server](TDE.Disabling.md)

## Mengaktifkan TDE untuk RDS for SQL Server
<a name="TDE.Enabling"></a>

Untuk mengaktifkan Enkripsi Data Transparan untuk instans DB RDS for SQL Server, tentukan opsi TDE dalam grup opsi RDS yang dikaitkan dengan instans DB tersebut:

1. Tentukan apakah instans DB Anda sudah dikaitkan dengan grup opsi yang memiliki opsi TDE. Untuk melihat grup opsi yang terkait dengan instans DB, gunakan konsol RDS, [describe-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) AWS CLI perintah, atau [Deskripsikan DBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) operasi API.

1.  Jika instans DB tidak dikaitkan dengan grup opsi yang TDE-nya diaktifkan, Anda memiliki dua pilihan. Anda dapat membuat grup opsi dan menambahkan opsi TDE, atau menyesuaikan grup opsi yang sudah dikaitkan untuk menambahkannya.
**catatan**  
Dalam konsol RDS, opsi ini bernama `TRANSPARENT_DATA_ENCRYPTION`. Di API AWS CLI dan RDS, `TDE` dinamai.

   Untuk informasi tentang membuat atau menyesuaikan grup opsi, lihat [Menggunakan grup opsi](USER_WorkingWithOptionGroups.md). Untuk informasi tentang menambahkan opsi ke grup opsi, lihat [Menambahkan opsi ke grup opsi](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

1.  Kaitkan instans DB dengan grup opsi yang memiliki opsi TDE. Untuk informasi tentang mengaitkan instans DB dengan grup opsi, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md).

### Pertimbangan grup opsi
<a name="TDE.Options"></a>

Opsi TDE adalah opsi yang persisten. Anda tidak dapat menghapusnya dari grup opsi kecuali semua instans DB dan cadangan tidak lagi terkait dengan grup opsi. Setelah Anda menambahkan opsi TDE ke grup opsi, grup opsi hanya dapat dikaitkan dengan instans DB yang menggunakan TDE. Untuk informasi selengkapnya tentang opsi yang persisten dalam grup opsi, lihat [Gambaran umum grup opsi](USER_WorkingWithOptionGroups.md#Overview.OptionGroups). 

Karena opsi TDE adalah opsi yang persisten, Anda dapat mengalami konflik antara grup opsi dan instans DB yang terkait. Anda dapat mengalami konflik dalam situasi berikut:
+ Grup opsi saat ini memiliki opsi TDE, dan Anda menggantinya dengan grup opsi yang tidak memiliki opsi TDE.
+ Anda memulihkan dari snapshot DB ke instans DB baru yang tidak memiliki grup opsi yang berisi opsi TDE. Untuk informasi selengkapnya tentang skenario ini, lihat [Pertimbangan untuk grup opsi](USER_CopySnapshot.md#USER_CopySnapshot.Options). 

### Pertimbangan performa SQL Server
<a name="TDE.Perf"></a>

Penggunaan Enkripsi Data Transparan dapat memengaruhi performa instans DB SQL Server.

Performa basis data yang tidak terenkripsi juga dapat terdegradasi jika basis data tersebut berada di instans DB yang memiliki setidaknya satu basis data terenkripsi. Oleh karena itu, sebaiknya Anda menyimpan basis data terenkripsi dan tidak terenkripsi di instans DB terpisah.

# Mengenkripsi data untuk Server RDS SQL
<a name="TDE.Encrypting"></a>

Ketika TDE opsi ditambahkan ke grup opsi, Amazon RDS menghasilkan sertifikat yang digunakan dalam proses enkripsi. Anda kemudian dapat menggunakan sertifikat untuk menjalankan SQL pernyataan yang mengenkripsi data dalam database pada instans DB.

Contoh berikut menggunakan sertifikat RDS -created yang dipanggil `RDSTDECertificateName` untuk mengenkripsi database yang disebut. `myDatabase`

```
 1. ---------- Turning on TDE -------------
 2. 
 3. -- Find an RDS TDE certificate to use
 4. USE [master]
 5. GO
 6. SELECT name FROM sys.certificates WHERE name LIKE 'RDSTDECertificate%'
 7. GO
 8. 
 9. USE [myDatabase]
10. GO
11. -- Create a database encryption key (DEK) using one of the certificates from the previous step
12. CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256
13. ENCRYPTION BY SERVER CERTIFICATE [RDSTDECertificateName]
14. GO
15. 
16. -- Turn on encryption for the database
17. ALTER DATABASE [myDatabase] SET ENCRYPTION ON
18. GO
19. 
20. -- Verify that the database is encrypted
21. USE [master]
22. GO
23. SELECT name FROM sys.databases WHERE is_encrypted = 1
24. GO
25. SELECT db_name(database_id) as DatabaseName, * FROM sys.dm_database_encryption_keys
26. GO
```

Waktu yang diperlukan untuk mengenkripsi database SQL Server menggunakan TDE tergantung pada beberapa faktor. Ini termasuk ukuran instans DB, apakah instance menggunakan IOPS penyimpanan Provisioned, jumlah data, dan faktor lainnya.

# Mencadangkan dan memulihkan sertifikat TDE pada RDS for SQL Server
<a name="TDE.BackupRestoreRDS"></a>

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](#TDE.BackupRestoreRDS.Drop).

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. 

**Topics**
+ [Prasyarat](#TDE.BackupRestoreRDS.Prereqs)
+ [Batasan](#TDE.Limitations)
+ [Mencadangkan sertifikat TDE](#TDE.BackupRestoreRDS.Backup)
+ [Memulihkan sertifikat TDE](#TDE.BackupRestoreRDS.Restore)
+ [Melihat sertifikat TDE yang dipulihkan](#TDE.BackupRestoreRDS.Show)
+ [Menghapus sertifikat TDE yang dipulihkan](#TDE.BackupRestoreRDS.Drop)

## Prasyarat
<a name="TDE.BackupRestoreRDS.Prereqs"></a>

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](SQLServer.Procedural.Importing.Native.Enabling.md).

1. Buat bucket tujuan umum Amazon S3 atau bucket direktori untuk menyimpan file untuk mencadangkan dan memulihkan.

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

1. Buat peran IAM untuk mencadangkan dan memulihkan file.

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

   Saat menggunakan bucket direktori, tidak ada izin tambahan yang diperlukan selain izin yang diperlukan untuk [Membuat peran IAM secara manual untuk pencadangan dan pemulihan native](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM) bucket direktori.

   Saat menggunakan sumber daya S3, peran IAM juga memerlukan izin berikut selain izin yang diperlukan untuk: [Membuat peran IAM secara manual untuk pencadangan dan pemulihan native](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM)
   + `s3:GetBucketAcl`, `s3:GetBucketLocation`, dan `s3:ListBucket` pada sumber daya bucket S3

1. Tambahkan opsi `SQLSERVER_BACKUP_RESTORE` ke grup opsi di instans DB Anda.

   Ini merupakan tambahan dari opsi `TRANSPARENT_DATA_ENCRYPTION` (`TDE`).

1. 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](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) di *Panduan Developer AWS Key Management Service *.

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

   Untuk informasi selengkapnya tentang mengaktifkan integrasi Amazon S3, lihat. [Mengintegrasikan instans DB Amazon RDS for SQL Server dengan Amazon S3](User.SQLServer.Options.S3-integration.md)

   Perhatikan bahwa bucket direktori tidak didukung untuk integrasi S3. Langkah ini hanya diperlukan untuk[Mencadangkan dan memulihkan sertifikat TDE untuk basis data on-premise](TDE.BackupRestoreOnPrem.md).

## Batasan
<a name="TDE.Limitations"></a>

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, @, \$1, \$1, dan garis bawah (\$1).
+ 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 sertifikat TDE untuk basis data on-premise](TDE.BackupRestoreOnPrem.md).
+ RDS untuk SQL Server tidak mendukung penggunaan kunci lintas akun untuk TDE.

## Mencadangkan sertifikat TDE
<a name="TDE.BackupRestoreRDS.Backup"></a>

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.

**Example 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
<a name="TDE.BackupRestoreRDS.Restore"></a>

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.

**Example 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
<a name="TDE.BackupRestoreRDS.Show"></a>

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\$1id | principal\$1id | pvt\$1key\$1encryption\$1type\$1desc | issuer\$1name | cert\$1serial\$1number | thumbprint | subject | start\$1date | expiry\$1date | pvt\$1key\$1last\$1backup\$1date | 
| UserTDECertificate\$1tde\$1cert | 343 | 1 | ENCRYPTED\$1BY\$1MASTER\$1KEY | 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
<a name="TDE.BackupRestoreRDS.Drop"></a>

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.

**Example penghapusan sertifikat TDE**  

```
EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_myTDEcertificate';
```

# Mencadangkan dan memulihkan sertifikat TDE untuk basis data on-premise
<a name="TDE.BackupRestoreOnPrem"></a>

Anda dapat mencadangkan sertifikat TDE untuk basis data on-premise, lalu memulihkannya ke RDS for SQL Server. Anda juga dapat memulihkan sertifikat TDE RDS for SQL Server ke instans DB on-premise.

**catatan**  
RDS untuk SQL Server tidak mendukung penggunaan kunci lintas akun untuk TDE.

Prosedur berikut mencadangkan sertifikat TDE dan kunci privat. Kunci privat dienkripsi menggunakan kunci data yang dihasilkan dari kunci KMS enkripsi simetris Anda.

**Untuk mencadangkan sertifikat TDE on-premise**

1. Hasilkan kunci data menggunakan AWS CLI [generate-data-key](https://docs.aws.amazon.com/cli/latest/reference/kms/generate-data-key.html)perintah.

   ```
   aws kms generate-data-key \
       --key-id my_KMS_key_ID \
       --key-spec AES_256
   ```

   Output-nya seperti berikut.

   ```
   {
   "CiphertextBlob": "AQIDAHimL2NEoAlOY6Bn7LJfnxi/OZe9kTQo/XQXduug1rmerwGiL7g5ux4av9GfZLxYTDATAAAAfjB8BgkqhkiG9w0B
   BwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMyCxLMi7GRZgKqD65AgEQgDtjvZLJo2cQ31Vetngzm2ybHDc3d2vI74SRUzZ
   2RezQy3sAS6ZHrCjfnfn0c65bFdhsXxjSMnudIY7AKw==",
   "Plaintext": "U/fpGtmzGCYBi8A2+0/9qcRQRK2zmG/aOn939ZnKi/0=",
   "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-00ee-99ff-88dd-aa11bb22cc33"
   }
   ```

   Anda dapat menggunakan output teks biasa pada langkah berikutnya sebagai kata sandi kunci privat.

1. Cadangkan sertifikat TDE Anda seperti yang ditunjukkan dalam contoh berikut.

   ```
   BACKUP CERTIFICATE myOnPremTDEcertificate TO FILE = 'D:\tde-cert-backup.cer'
   WITH PRIVATE KEY (
   FILE = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\cert-backup-key.pvk',
   ENCRYPTION BY PASSWORD = 'U/fpGtmzGCYBi8A2+0/9qcRQRK2zmG/aOn939ZnKi/0=');
   ```

1. Simpan file cadangan sertifikat ke bucket sertifikat Amazon S3.

1. Simpan file cadangan kunci privat ke bucket sertifikat S3 Anda, dengan tag berikut di metadata file:
   + Kunci – `x-amz-meta-rds-tde-pwd`
   + Nilai – Nilai `CiphertextBlob` dari menghasilkan kunci data, seperti pada contoh berikut.

     ```
     AQIDAHimL2NEoAlOY6Bn7LJfnxi/OZe9kTQo/XQXduug1rmerwGiL7g5ux4av9GfZLxYTDATAAAAfjB8BgkqhkiG9w0B
     BwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMyCxLMi7GRZgKqD65AgEQgDtjvZLJo2cQ31Vetngzm2ybHDc3d2vI74SRUzZ
     2RezQy3sAS6ZHrCjfnfn0c65bFdhsXxjSMnudIY7AKw==
     ```

Prosedur berikut memulihkan sertifikat TDE RDS for SQL Server ke instans DB on-premise. Anda menyalin dan memulihkan sertifikat TDE pada instans DB tujuan menggunakan cadangan sertifikat, file kunci privat yang sesuai, dan kunci data. Sertifikat yang dipulihkan dienkripsi oleh kunci utama basis data server baru. 

**Untuk memulihkan sertifikat TDE**

1. Salin file cadangan sertifikat TDE dan file kunci privat dari Amazon S3 ke instans tujuan. Untuk informasi selengkapnya tentang menyalin file dari Amazon S3, lihat [Mentransfer file antara RDS for SQL Server dan Amazon S3](Appendix.SQLServer.Options.S3-integration.using.md).

1. Gunakan kunci KMS Anda untuk mendekripsi teks sandi output guna mengambil teks biasa dari kunci data. Teks sandi berada di metadata S3 file cadangan kunci privat.

   ```
   aws kms decrypt \
       --key-id my_KMS_key_ID \
       --ciphertext-blob fileb://exampleCiphertextFile | base64 -d \
       --output text \
       --query Plaintext
   ```

   Anda dapat menggunakan output teks biasa pada langkah berikutnya sebagai kata sandi kunci privat.

1. Gunakan perintah SQL berikut untuk memulihkan sertifikat TDE Anda.

   ```
   CREATE CERTIFICATE myOnPremTDEcertificate FROM FILE='D:\tde-cert-backup.cer'
   WITH PRIVATE KEY (FILE = N'D:\tde-cert-key.pvk',
   DECRYPTION BY PASSWORD = 'plain_text_output');
   ```

Untuk informasi lebih lanjut tentang dekripsi KMS, lihat [mendekripsi](https://docs.aws.amazon.com/cli/latest/reference/kms/decrypt.html) di bagian KMS untuk *Referensi Perintah AWS CLI *.

Setelah sertifikat TDE dipulihkan pada instans DB tujuan, Anda dapat memulihkan basis data yang terenkripsi dengan sertifikat tersebut.

**catatan**  
Anda dapat menggunakan sertifikat TDE yang sama untuk mengenkripsi beberapa basis data SQL Server pada instans DB sumber. Untuk memigrasikan beberapa basis data ke instans tujuan, salin sertifikat TDE yang terkait dengan basis data tersebut ke instans tujuan cukup satu kali.

# Menonaktifkan TDE untuk RDS for SQL Server
<a name="TDE.Disabling"></a>

Untuk menonaktifkan TDE untuk instans DB RDS for SQL Server, pertama-tama pastikan bahwa tidak ada objek terenkripsi yang tersisa di instans DB. Untuk melakukannya, dekripsi atau hapus objek. Jika ada objek terenkripsi di instans DB, Anda tidak dapat menonaktifkan TDE untuk instans DB. Jika sertifikat TDE pengguna untuk enkripsi dipulihkan (diimpor), maka itu harus dijatuhkan. Saat Anda menggunakan konsol untuk menghapus opsi TDE dari grup opsi, konsol menunjukkan bahwa TDE sedang dalam proses. Selain itu, peristiwa kesalahan terjadi jika grup opsi dikaitkan dengan instans DB atau snapshot DB terenkripsi.

Contoh berikut menghapus enkripsi TDE dari basis data yang bernama `customerDatabase`. 

```
 1. ------------- Removing TDE ----------------
 2. 
 3. USE [customerDatabase]
 4. GO
 5. 
 6. -- Turn off encryption of the database
 7. ALTER DATABASE [customerDatabase]
 8. SET ENCRYPTION OFF
 9. GO
10. 
11. -- Wait until the encryption state of the database becomes 1. The state is 5 (Decryption in progress) for a while
12. SELECT db_name(database_id) as DatabaseName, * FROM sys.dm_database_encryption_keys
13. GO
14. 
15. -- Drop the DEK used for encryption
16. DROP DATABASE ENCRYPTION KEY
17. GO
18. 
19. -- Drop a user TDE certificate if it was restored (imported)
20. EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_certificate_name';
21. 
22. -- Alter to SIMPLE Recovery mode so that your encrypted log gets truncated
23. USE [master]
24. GO
25. ALTER DATABASE [customerDatabase] SET RECOVERY SIMPLE
26. GO
```

Saat semua objek didekripsi, Anda memiliki dua opsi:

1. Anda dapat menyesuaikan instans DB untuk dikaitkan dengan grup opsi tanpa opsi TDE.

1. Anda dapat menghapus opsi TDE dari grup opsi.