

# 온프레미스 데이터베이스에 대한 TDE 인증서 백업 및 복원
<a name="TDE.BackupRestoreOnPrem"></a>

온프레미스 데이터베이스에 대한 TDE 인증서를 백업한 다음 나중에 RDS for SQL Server로 복원할 수 있습니다. RDS for SQL Server TDE 인증서를 온프레미스 DB 인스턴스로 복원할 수도 있습니다.

**참고**  
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 인증서를 온프레미스 DB 인스턴스에 복원합니다. 인증서 백업, 해당 프라이빗 키 파일 및 데이터 키를 사용하여 대상 DB 인스턴스에서 TDE 인증서를 복사하고 복원합니다. 복원된 인증서는 새 서버의 데이터베이스 마스터 키로 암호화됩니다.

**TDE 인증서를 복원하려면**

1. Amazon S3에서 대상 인스턴스로 TDE 인증서 백업 파일과 프라이빗 키 파일을 복사합니다. 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. TDE 인증서를 복원하려면 다음 SQL 명령을 사용합니다.

   ```
   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 인증서가 대상 DB 인스턴스에 복원된 후 해당 인증서를 사용하여 암호화된 데이터베이스를 복원할 수 있습니다.

**참고**  
동일한 TDE 인증서를 사용하여 소스 DB 인스턴스의 여러 SQL Server 데이터베이스를 암호화할 수 있습니다. 여러 데이터베이스를 대상 인스턴스로 마이그레이션하려면 연결된 TDE 인증서를 대상 인스턴스에 한 번만 복사합니다.