

# Fazer backup e restaurar certificados TDE para bancos de dados on-premises
<a name="TDE.BackupRestoreOnPrem"></a>

Você pode fazer backup de certificados TDE para bancos de dados on-premises e depois restaurá-los para o RDS para SQL Server. Você também pode restaurar um certificado TDE do RDS para SQL Server para uma instância de banco de dados on-premises.

**nota**  
O RDS para SQL Server não aceita o uso de chaves entre contas para o TDE.

O procedimento a seguir faz backup de um certificado TDE e uma chave privada. A chave privada é criptografada usando uma chave de dados gerada a partir de sua chave do KMS de criptografia simétrica.

**Para fazer backup de um certificado TDE on-premises**

1. Gere a chave de dados usando o comando [generate-data-key](https://docs.aws.amazon.com/cli/latest/reference/kms/generate-data-key.html) da AWS CLI.

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

   A saída será semelhante à seguinte.

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

   Use a saída de texto simples na próxima etapa como a senha da chave privada.

1. Faça backup do seu certificado TDE, conforme mostrado no exemplo a seguir.

   ```
   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. Salve o arquivo de backup do certificado no bucket de certificados do Amazon S3.

1. Salve o arquivo de backup de chave privada no bucket de certificados do S3, com a seguinte tag nos metadados do arquivo:
   + Chave: `x-amz-meta-rds-tde-pwd`
   + Valor: o valor `CiphertextBlob` da geração da chave de dados, como no exemplo a seguir.

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

O procedimento a seguir restaura um certificado TDE do RDS para SQL Server para uma instância de banco de dados on-premises. Copie e restaure o certificado TDE na instância de banco de dados de destino usando o backup de certificado, o arquivo de chave privada correspondente e a chave de dados. O certificado restaurado é criptografado pela chave mestra do banco de dados do novo servidor. 

**Como restaurar um certificado TDE**

1. Copie o arquivo de backup do certificado TDE e o arquivo de chave privada do Amazon S3 para a instância de destino. Para ter mais informações sobre como copiar arquivos do Amazon S3, consulte [Transferência de arquivos entre o RDS for SQL Server e o Amazon S3](Appendix.SQLServer.Options.S3-integration.using.md).

1. Use sua chave do KMS para descriptografar o texto de criptografia de saída para recuperar o texto simples da chave de dados. O texto de criptografia está localizado nos metadados do S3 do arquivo de backup de chave privada.

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

   Use a saída de texto simples na próxima etapa como a senha da chave privada.

1. Use o comando SQL a seguir para restaurar seu certificado 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');
   ```

Para ter mais informações sobre descriptografia do KMS, consulte [descriptografar](https://docs.aws.amazon.com/cli/latest/reference/kms/decrypt.html) na seção do KMS da *Referência de comando AWS CLI*.

Depois que o certificado TDE for restaurado na instância de banco de dados de destino, você poderá restaurar bancos de dados criptografados com esse certificado.

**nota**  
Você pode usar o mesmo certificado TDE para criptografar vários bancos de dados do SQL Server na instância de banco de dados de origem. Para migrar vários bancos de dados para uma instância de destino, copie o certificado TDE associado a eles na instância de destino apenas uma vez.