온프레미스 환경에서 Amazon Relational Database Service(Amazon RDS)의 암호화된 백업 파일 또는 Microsoft Azure 백업을 복원하려고 합니다.
간략한 설명
백업 암호화는 SQL Server 2014(12.x) 이상에서 사용할 수 있습니다. 백업에 사용할 암호화 알고리즘과 암호기를 지정합니다. 이렇게 하면 암호화된 백업 파일이 만들어집니다.
참고: 이 기능은 TDE(투명한 데이터 암호화) 암호화와는 다릅니다. 자세한 내용은 SQL Server의 투명한 데이터 암호화 지원을 참조하십시오.
해결 방법
암호화된 로컬 백업 또는 Microsoft Azure로 암호화된 백업을 Amazon RDS에 복원하려면 서버 인증서의 백업이 있어야 합니다. 인증서가 없으면 Amazon RDS에 백업을 복원할 수 없습니다. 자세한 내용은 Microsoft 웹 사이트의 백업 암호화를 참조하십시오.
암호화된 로컬 백업 복원
암호화된 백업을 복원하기 전에 다음 리소스를 만들었는지 확인하십시오.
- Amazon Simple Storage Service(Amazon S3) 버킷
- 옵션 그룹에서 TDE 및 SQLSERVER_BACKUP_RESTORE로 구성된 Amazon RDS 인스턴스
-
온프레미스 계정에서 다음 스크립트를 사용하여 기본 데이터베이스 키를 만듭니다.
USE Master;GO
CREATE MASTER KEY ENCRYPTION
BY PASSWORD='InsertStrongPasswordHere';
GO
자세한 내용은 Microsoft 웹 사이트에서 CREATE MASTER KEY(Transact-SQL)를 참조하십시오.
-
온프레미스 계정에서 프라이머리 키로 보호되는 인증서를 만듭니다.
CREATE CERTIFICATE TDE_CertWITH
SUBJECT='Database_Encryption';
GO
자세한 내용은 Microsoft 웹 사이트에서 CREATE CERTIFICATE(Transact-SQL)를 참조하십시오.
-
다음 스크립트를 사용하여 기본 백업을 시작합니다.
BACKUP DATABASE [TestDB] TO DISK =N'E:\Backup\EncryptedBackupFromOnpremise.bak' WITH COMPRESSION,ENCRYPTION( ALGORITHM = AES_256, SERVER CERTIFICATE = [TDE_Cert] ), STATS = 10
GO
참고: Amazon RDS 복원 시 압축을 활성화하는 것이 모범 사례입니다. 자세한 내용은 Microsoft 웹 사이트에서 백업 압축(SQL Server)을 참조하십시오.
-
AWS Management Console을 사용하여 암호화된 백업을 S3 버킷 tde-db에 업로드합니다.
-
다음 명령을 실행하여 데이터베이스를 복원합니다.
exec msdb.dbo.rds_restore_database @restore_db_name='onpremdb',
@s3_arn_to_restore_from='arn:aws:s3:::tde-db/EncryptedBackupFromOnpremise.bak';
Microsoft Azure로 암호화된 백업 복원
암호화된 백업을 Microsoft 컨테이너에 복원하기 전에 다음 리소스를 만들었는지 확인하십시오.
- Amazon S3 버킷
- TDE 및 SQLSERVER_BACKUP_RESTORE 옵션 그룹으로 구성된 RDS 인스턴스
- 백업을 암호화하는 인증서로 구성된 온프레미스 계정
- 활성 Microsoft Azure 계정
-
Microsoft Azure에서 스토리지 계정을 만듭니다. 자세한 내용은 Microsoft 웹 사이트에서 Azure 스토리지 계정 만들기를 참조하십시오.
-
공유 액세스 서명을 기반으로 자격 증명을 만듭니다. 자세한 내용은 Microsoft 웹 사이트에서 스토리지 컨테이너용 SAS 토큰 만들기를 참조하십시오.
USE master CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>]
-- this name must match the container path, start with https and must not contain a forward slash at the end
WITH IDENTITY='SHARED ACCESS SIGNATURE'
-- this is a mandatory string and should not be changed
, SECRET = 'sharedaccesssignature'
GO
-
Microsoft Azure 스토리지에 기본 암호화 백업을 시작합니다.
BACKUP DATABASE [TestDB] TO URL = N'https://backuptestsanketh.blob.core.windows.net/backup/TestDB_backup_2022_09_29_112330.bak' WITH COPY_ONLY, NOFORMAT, NOINIT, NAME = N'BackupEnc-Full Database Backup', NOSKIP, NOREWIND, NOUNLOAD, COMPRESSION,
ENCRYPTION(ALGORITHM = AES_128, SERVER CERTIFICATE = [On_PremTDE_Cert]), STATS = 10
GO
참고: Amazon RDS는 Microsoft Azure 스토리지 컨테이너에서 직접 백업을 복원하는 것을 지원하지 않습니다. 중간 시스템에 백업을 다운로드해야 합니다.
-
AWS Management Console을 사용하여 암호화된 백업을 S3 버킷 tde-db에 업로드합니다.
-
다음 명령을 실행하여 암호화된 백업을 복원합니다.
exec msdb.dbo.rds_restore_database@restore_db_name='AzureBackupEncrypted',
@s3_arn_to_restore_from='arn:aws:s3:::tde-db/backup/azure-encrypted.bak'
참고: 오류를 받은 경우 RDS for SQL Server에서 기본 백업 및 복원을 사용하면 발생할 수 있는 일반적인 문제는 무엇입니까?를 참조하십시오.
관련 정보
TDE가 사용된 SQL Server 데이터베이스를 Amazon RDS for SQL Server로 마이그레이션
온프레미스 환경에서 RDS for SQL Server의 AWS Key Management Service(AWS KMS)로 암호화된 백업 파일을 복원하려면 어떻게 해야 합니까?