온프레미스 환경으로부터 암호화된 백업 파일 또는 암호화된 Microsoft Azure 백업을 RDS for SQL Server에 복원하려면 어떻게 해야 합니까?
온프레미스 환경과 Amazon Relational Database Service(Amazon RDS) for Microsoft SQL Server 사이에서 암호화된 백업 파일 또는 암호화된 Microsoft Azure 백업을 복원하려고 합니다. 기본 백업 및 복원 기능을 사용하여 이 작업을 수행하려면 어떻게 해야 하나요?
간략한 설명
백업 암호화는 SQL Server 2014(12.x) 이상에서 사용할 수 있습니다. 백업을 생성할 때 암호화 알고리즘과 암호화기(인증서 또는 비대칭 키)를 지정할 수 있습니다. 이렇게 하면 암호화된 백업 파일이 만들어집니다.
참고: 이 기능은 TDE 암호화와는 다릅니다.
해결 방법
암호화된 백업
참고: 다음 해결 단계를 시작하기 전에 다음을 생성했는지 확인하세요.
- Amazon Simple Storage Service(S3) 버킷.
- 옵션 그룹에서 TDE 및 SQLSERVER_BACKUP_RESTORE로 구성된 Amazon RDS 인스턴스.
1. 온프레미스 계정에서 다음 스크립트를 사용하여 마스터 키를 생성합니다.
USE Master; GO CREATE MASTER KEY ENCRYPTION BY PASSWORD='InsertStrongPasswordHere'; GO
2. 온프레미스 계정에서 마스터 키로 보호되는 인증서를 생성합니다.
CREATE CERTIFICATE TDE_Cert WITH SUBJECT='Database_Encryption'; GO
3. 다음 스크립트를 사용하여 기본 백업을 시작합니다.
**참고:**RDS로 복원하는 동안 문제가 발생하지 않도록 압축을 활성화합니다.
BACKUP DATABASE [TestDB] TO DISK =N'E:\Backup\EncryptedBackupFromOnpremise.bak' WITH COMPRESSION, ENCRYPTION( ALGORITHM = AES_256, SERVER CERTIFICATE = [TDE_Cert] ), STATS = 10 GO
4. AWS Management Console을 사용하여 암호화된 백업을 S3 버킷 tde-db에 업로드합니다.
5. 다음 명령을 실행하여 데이터베이스를 복원합니다.
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 Azure 백업 컨테이너에서 시작됩니다. 다음 해결 단계를 시작하기 전에 다음을 생성했는지 확인하세요.
- Amazon Simple Storage Service(S3) 버킷.
- TDE 및 SQLSERVER_BACKUP_RESTORE 옵션 그룹으로 구성된 RDS 인스턴스.
- 백업을 암호화하는 인증서로 구성된 온프레미스 계정.
- 유효한 Microsoft Azure 계정.
1. Microsoft Azure에서 스토리지 계정을 생성합니다. 자세한 내용은 Microsoft 설명서 웹 사이트의 스토리지 계정 생성을 참조하세요.
2. 공유 액세스 서명을 기반으로 보안 인증을 생성합니다. 자세한 내용은 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
3. 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 스토리지 컨테이너로부터 직접 백업을 복원하는 것을 지원하지 않습니다. 따라서 백업을 중간 시스템에 다운로드해야 합니다.
4. 백업 파일을 S3 버킷(tde-db)에 업로드합니다.
5. 프라이빗 키와 인증서를 RDS 인스턴스에 백업하고 복원하려면 "Cannot find server certificate with thumbprint"(다음 지문을 가진 서버 인증서를 찾을 수 없음) 오류 해결 섹션의 단계를 따르세요.
6. 사전 요구 사항이 충족되면 다음 명령을 실행하여 암호화된 백업을 복원합니다.
exec msdb.dbo.rds_restore_database @restore_db_name='AzureBackupEncrypted', @s3_arn_to_restore_from='arn:aws:s3:::tde-db/backup/azure-encrypted.bak'
"Cannot find server certificate with thumbprint"(다음 지문을 가진 서버 인증서를 찾을 수 없음) 오류 해결
인증서가 구성되지 않은 다른 환경에서 암호화된 백업을 복원하면 다음 오류가 발생합니다.
Cannot find server certificate with thumbprint '0xBA01F2AF71C3FB4A92C5F69BDE3EC8DB318D7D0E'
위 오류를 방지하려면 다음 작업을 수행합니다.
1. 기본 복원을 수행할 AWS 계정에 새 AWS Key Management Service(AWS KMS) 키를 생성합니다.
2. AWS KMS 데이터 키를 생성하여 인증서 백업을 시작합니다.
aws kms generate-data-key --key-id KMS-Key-ID --key-spec AES_256 --region us-west-2
다음은 위의 명령에 대한 출력 예입니다.
{ "Plaintext": "Gve+VE1JV8aufhDkPKeWceEt+vZaTYZCH25/OLPo+a4=", "KeyId": "arn:aws:kms:us-west-2:289799745972:key/eee4d613-4871-4cee-87d8-a54ad8d5251b", "CiphertextBlob": "AQIDAHiojOaIcTtQGK4gqEf6QcYuVUutMiW0y52tG63GqOknSgF0ZtnfmfqadzhfWUlRSx15AAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQM/U3+BkE/yN5Jf0ckAgEQgDtoG9coTwG7bnPGx3c4hND8LAc4LEPnxd2BLQdJDOjqXU0LgudNfVUw4xNfWy2XCDgmSYV0nHU9EVbwkQ==" }
3. 소스 인스턴스(온프레미스 또는 EC2 인스턴스)에서 인증서 및 프라이빗 키의 백업을 시작합니다.
use master BACKUP CERTIFICATE TDE_Cert TO FILE= 'C:\Program Files\Microsoft SQL Server\MSSQL15.SQL2019\MSSQL\DATA\certificatename.cer' WITH PRIVATE KEY ( FILE= 'C:\Program Files\Microsoft SQL Server\MSSQL15.SQL2019\MSSQL\DATA\privatekey.pvk', ENCRYPTION BY PASSWORD='Gve+VE1JV8aufhDkPKeWceEt+vZaTYZCH25/OLPo+a4=')
4. 백업 인증서 파일을 S3 버킷 tde-bkt에 업로드합니다.
5. 프라이빗 키 파일을 S3 버킷 tde-bkt에 업로드합니다. 업로드를 완료한 후 프라이빗 키 파일의 메타데이터를 편집하고 다음 값을 지정합니다.
- 키: x-amz-meta-rds-tde-pwd
- 값: 2단계에서 얻은 CipertexBlob
6. RDS 인스턴스에서 인증서를 복원합니다.
exec msdb.dbo.rds_restore_tde_certificate @certificate_name='UserTDECertificate_ec2_tde_cert', @certificate_file_s3_arn='arn:aws:s3:::tde-bkt/certificatename.cer', @private_key_file_s3_arn='arn:aws:s3:::tde-bkt/privatekey.pvk', @kms_password_key_arn='arn:aws:kms:us-west-2:aws-account-id:key/key-id';
7. 다음 명령을 실행하여 데이터베이스를 복원합니다.
exec msdb.dbo.rds_restore_database @restore_db_name='onpremdb', @s3_arn_to_restore_from='arn:aws:s3:::tde-db/EncryptedBackupFromOnpremise.bak';
관련 정보
TDE를 지원하는 SQL Server 데이터베이스를 Amazon RDS for SQL Server로 마이그레이션
온프레미스 환경으로부터 KMS로 암호화된 백업 파일을 RDS for SQL Server에 복원하려면 어떻게 해야 합니까?

관련 콘텐츠
- 질문됨 2년 전lg...
- 질문됨 일 년 전lg...
- AWS 공식업데이트됨 2년 전
- AWS 공식업데이트됨 3년 전
- AWS 공식업데이트됨 일 년 전