AWS Key Management Service (AWS KMS) で暗号化されたバックアップファイルを、オンプレミス環境から Amazon Relational Database Service (Amazon RDS) for Microsoft SQL Server インスタンスに復元したいと考えています。その際、ネイティブのバックアップと復元機能を使用します。
簡単な説明
AWS KMS 暗号化では、AWS KMS キーを使用して RDS for SQL Server 内の Microsoft SQL Server バックアップファイルが安全に暗号化されます。暗号化されたバックアップは、同じ AWS アカウント内でのみ RDS SQL Server インスタンスに復元できます。
前提条件:
解決策
-
@kms_master_key_arn AWS KMS キーパラメータを指定して、ネイティブバックアップでクライアント側の暗号化を開始します。
exec msdb.dbo.rds_backup_database @source_db_name='database-name',
@s3_arn_to_backup_to='arn:aws:s3:::bucket-name/Filename.bak',
@kms_master_key_arn='arn:aws:kms:us-east-1:account-id:key/xxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxx1';
-
AWS KMS 暗号化バックアップを、同じ AWS リージョン、同じアカウントにある別の RDS for SQL Server インスタンスに復元します。次のコマンドでは、バックアップの暗号化に使用したものと同じ AWS KMS キーを指定します:
exec msdb.dbo.rds_restore_database @restore_db_name='database-name',
@s3_arn_to_restore_from='arn:aws:s3:::bucket-name/Filename.bak',
@kms_master_key_arn='arn:aws:kms:us-east-1:account-id:key/xxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxx1';
AWS KMS 暗号化バックアップを同じアカウントで別のリージョンに復元する
-
マルチリージョンのプライマリキーを作成します。キータイプには、[対称キー] を選択します。
-
宛先リージョンのレプリカキーを作成します。
-
リージョン A で @kms_master_key_arn AWS KMS キーパラメータを指定して、暗号化されたネイティブバックアップを開始します。
exec msdb.dbo.rds_backup_database @source_db_name='database-name',
@s3_arn_to_backup_to='arn:aws:s3:::bucket-name/Filename.bak',
@kms_master_key_arn='arn:aws:kms:us-east-1:account-id:key/xxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxx2';
-
バックアップファイルを同じリージョンの S3 バケットにコピーします。Amazon RDS はクロスリージョンバケットをサポートしていません。
-
AWS KMS 暗号化バックアップをリージョン B に復元します。バックアップの暗号化に使用したものと同じ AWS KMS キー ID を指定します。
exec msdb.dbo.rds_restore_database ;@restore_db_name='database-name',
@s3_arn_to_restore_from='arn:aws:s3:::bucket-name/Filename.bak',
@kms_master_key_arn='arn:aws:kms:us-east-2:account-id:key/xxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxx2';
注: us-east-2 は AWS KMS キーのリージョンに置き換えてください。
アカウント間、リージョン間、またはオンプレミス環境で AWS KMS 暗号化バックアップを復元する
次の 3 つのシナリオでは、バックアップを復元するための回避策が必要です:
- クロスアカウント: AWS KMS 暗号化データベースのバックアップは、同じリージョンで、別のアカウントで復元する必要があります。Amazon RDS ではアカウント間で AWS KMS キーを共有することはできません。例えば、アカウント A のバックアップを AWS KMS キー K1 で暗号化し、同じキーを使用してアカウント B のバックアップを復元することはできません。
- クロスアカウントとクロスリージョン: AWS KMS 暗号化データベースのバックアップは、別のリージョン、別のアカウントに復元する必要があります。アカウント間で AWS KMS キーを共有したり、Amazon RDS のリージョン間でバケットを使用したりすることはできません。
- オンプレミス: AWS KMS 暗号化データベースのバックアップは、オンプレミス環境で復元する必要があります。AWS KMS キーの詳細は外部エンティティです。復元する前に、AWS KMS 暗号化ファイルを復号する必要があります。
これらの制限の解決策については、「Client-Side Encryption and Decryption of Microsoft SQL Server Backups for Use with Amazon RDS」の「Export from Amazon RDS for SQL Server」 セクションを参照してください。
関連情報
Migrate TDE-enabled SQL Server databases to Amazon RDS for SQL Server
RDS for SQL Server の暗号化されたバックアップファイルまたは暗号化された Microsoft Azure バックアップをオンプレミス環境から復元するにはどうすればよいですか?