スキップしてコンテンツを表示

RDS for SQL Server の暗号化されたバックアップファイルまたは暗号化された Microsoft Azure バックアップをオンプレミス環境から復元する方法を教えてください。

所要時間2分
0

Amazon Relational Database Service (Amazon RDS) の暗号化されたバックアップファイルまたは Microsoft Azure バックアップをオンプレミス環境から復元したいと考えています。

簡単な説明

バックアップ暗号化は SQL Server 2014 (12.x) 以降で利用可能です。バックアップの暗号化アルゴリズムと暗号化ツールを指定します。これにより、暗号化されたバックアップファイルが作成されます。

注: この機能は、透過的なデータ暗号化 (TDE) とは異なります。詳細については、「SQL サーバーの透過的なデータの暗号化サポート」を参照してください。

解決策

ローカルまたは Microsoft Azure で暗号化されたバックアップを Amazon RDS に復元するには、サーバー証明書のバックアップが必要です。証明書がないと、バックアップを Amazon RDS に復元できません。詳細については、Microsoft ウェブサイトの「Backup encryption」(バックアップ暗号化) を参照してください。

ローカルで暗号化されたバックアップを復元する

暗号化されたバックアップの復元を開始する前に、次のリソースを作成済みであることを確認してください。

  • Amazon Simple Storage Service (Amazon S3) バケット。
  • オプショングループに TDE と SQLSERVER_BACKUP_RESTORE が含まれている Amazon RDS インスタンス。
  1. オンプレミスアカウントで次のスクリプトを使用して、プライマリデータベースキーを作成します。

    USE Master;GO
    CREATE MASTER KEY ENCRYPTION
    BY PASSWORD='InsertStrongPasswordHere';
    GO

    詳細については、Microsoft ウェブサイトの「CREATE MASTER KEY (Transact-SQL)」を参照してください。

  2. オンプレミスアカウントのプライマリキーで保護された証明書を作成します。

    CREATE CERTIFICATE TDE_CertWITH
    SUBJECT='Database_Encryption';
    GO

    詳細については、Microsoft ウェブサイトの「CREATE CERTIFICATE (Transact-SQL)」(証明書の作成 (Transact-SQL)) を参照してください。

  3. 次のスクリプトを使用してネイティブバックアップを開始します。

    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 ウェブサイトの「Backup compression (SQL Server)」(バックアップの圧縮 (SQL Server)) を参照してください。

  4. AWS マネジメントコンソールを使用して、暗号化されたバックアップを 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 コンテナに復元する前に、次のリソースを作成済みであることを確認してください。

  • Amazon S3 バケット。
  • TDE および SQLSERVER_BACKUP_RESTORE オプショングループで構成された RDS インスタンス。
  • バックアップを暗号化するための証明書が設定されたオンプレミスアカウント。
  • アクティブな Microsoft Azure アカウント。
  1. Microsoft Azure でストレージアカウントを作成します。詳細については、Microsoft ウェブサイトの「Create an Azure storage account」(Azure ストレージアカウントの作成) を参照してください。

  2. 共有アクセス署名に基づいた認証情報を作成します。詳細については、Microsoft ウェブサイトの「Create SAS tokens for your storage containers」(ストレージコンテナ用の 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. AWS マネジメントコンソールを使用して、暗号化されたバックアップを S3 バケット tde-db にアップロードします。

  5. 次のコマンドを実行して、暗号化されたバックアップを復元します。

    exec msdb.dbo.rds_restore_database@restore_db_name='AzureBackupEncrypted',
    @s3_arn_to_restore_from='arn:aws:s3:::tde-db/backup/azure-encrypted.bak'

注: エラーが発生した場合は、「What are common issues that might occur when using native backup and restore in RDS for SQL Server?」(RDS for SQL Server でネイティブバックアップと復元を使用するときに発生する可能性がある一般的な問題は何ですか) を参照してください。

関連情報

Migrate TDE-enabled SQL Server databases to Amazon RDS for SQL Server (TDE 対応の SQL Server データベースを Amazon RDS for SQL Server に移行する)

AWS Key Management Service (AWS KMS) で暗号化されたバックアップファイルをオンプレミス環境から RDS for SQL Server に復元するにはどうすればよいですか?

AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ