Я создаю зашифрованные резервные копии SQL Server из экземпляра Amazon RDS.Как загрузить и расшифровать эти резервные копии на экземпляре Windows? - PullRequest
0 голосов
/ 24 августа 2018

Справочная информация. У нас есть несколько экземпляров Amazon RDS, на которых размещаются базы данных SQL Server, они регулярно резервируются с использованием собственного резервного копирования и предоставляют ключ KMS для шифрования.Мы снова предоставляем тот же ключ KMS при использовании собственного восстановления в экземпляре RDS, и это прекрасно работает.

Теперь мне нужны средства для загрузки и расшифровки этих резервных копий, чтобы я мог восстановить их в экземпляре Windows,Загрузка файлов была простой, но расшифровка была более сложной.Мой код выглядит примерно так:

var request = new GetObjectRequest
{
    BucketName = myBucketName,
    Key = myBackupsKeyName
};

using (var client = new AmazonS3EncryptionClient(RegionEndpoint.EUWest1, 
    new EncryptionMaterials(myKmsId)))
{
    using (var response = await client.GetObjectAsync(request))
    {        
        await response.WriteResponseStreamToFileAsync(myFilePath, 
            false, new CancellationToken());    
    }
}

Я получаю сообщение об ошибке, которое звучит так, будто файл даже не зашифрован с использованием KMS:

'Ошибка расшифровки неКлюч от KMS.EncryptionMaterials должен иметь набор AsymmetricProvider или SymmetricProvider. '

Что я делаю не так?

1 Ответ

0 голосов
/ 25 августа 2018

Вам нужно сделать незашифрованную резервную копию на S3, а затем загрузить ее. Зашифрованные резервные копии могут быть восстановлены только в самой RDS.

Убедитесь, что вы используете правильные процедуры для Native Backup и Restore

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.html

exec msdb.dbo.rds_backup_database @source_db_name='database_name', @s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name_and_extension', @overwrite_S3_backup_file=1, @type='differential';

...