

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 備份與還原內部部署資料庫的 TDE 憑證
<a name="TDE.BackupRestoreOnPrem"></a>

您可以備份內部部署資料庫的 TDE 憑證，日後再將憑證還原到 RDS for SQL Server。您還可以將 RDS for SQL Server TDE 憑證還原到內部部署資料庫執行個體。

**注意**  
RDS for SQL Server 不支援使用跨帳戶金鑰搭配 TDE。

下列程序會備份 TDE 憑證和私有金鑰。系統會使用從對稱加密 KMS 金鑰產生的資料金鑰來加密私有金鑰。

**備份內部部署 TDE 憑證**

1. 使用 AWS CLI [generate-data-key](https://docs.aws.amazon.com/cli/latest/reference/kms/generate-data-key.html) 命令產生資料金鑰。

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

   輸出結果與以下內容相似。

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

   您在下一步可以使用純文字輸出作為私有金鑰密碼。

1. 備份 TDE 憑證，如下列範例所示。

   ```
   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. 將憑證備份檔案儲存至 Amazon S3 憑證儲存貯體。

1. 將私有金鑰備份檔案儲存到 S3 憑證儲存貯體，並在檔案的中繼資料中使用以下標籤：
   + 索引鍵 – `x-amz-meta-rds-tde-pwd`
   + 值 – 來自產生資料金鑰的 `CiphertextBlob` 值，如下列範例所示。

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

以下程序會將 RDS for SQL Server TDE 憑證還原至內部部署資料庫執行個體。您可以使用憑證備份、對應的私有金鑰檔案與資料金鑰，在目的地資料庫執行個體上複製與還原 TDE 憑證。還原的憑證由新伺服器的資料庫主要金鑰加密。

**還原 TDE 憑證**

1. 將 TDE 憑證備份檔案和私有金鑰檔案從 Amazon S3 複製到目的地執行個體。如需從 Amazon S3 複製檔案的詳細資訊，請參閱 [在 RDS for SQL Server 與 Amazon S3 之間傳輸檔案](Appendix.SQLServer.Options.S3-integration.using.md)。

1. 使用 KMS 金鑰解密輸出密碼文字，以擷取資料金鑰的純文字。密碼文字位於私有金鑰備份檔案的 S3 中繼資料中。

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

   您在下一步可以使用純文字輸出作為私有金鑰密碼。

1. 使用下列 SQL 命令還原 TDE 憑證。

   ```
   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');
   ```

如需 KMS 解密的詳細資訊，請參閱 *AWS CLI 命令參考*中 KMS 一節的[解密](https://docs.aws.amazon.com/cli/latest/reference/kms/decrypt.html)。

在目的地資料庫執行個體上還原 TDE 憑證後，您可以使用該憑證還原加密的資料庫。

**注意**  
您可以使用相同的 TDE 憑證來加密來源資料庫執行個體上的多個 SQL Server 資料庫。若要將多個資料庫遷移至目的地執行個體，請僅將與這些資料庫關聯的 TDE 憑證複製到目的地執行個體一次。