オンプレミスデータベースの TDE 証明書のバックアップと復元
オンプレミスデータベースの TDE 証明書をバックアップし、後でそれらを RDS for SQL Server に復元できます。RDS for SQL Server TDE 証明書をオンプレミス DB インスタンスに復元することもできます。
次の手順では、TDE 証明書とプライベートキーをバックアップします。プライベートキーは、対称暗号化 KMS キーから生成されたデータキーを使用して暗号化されます。
オンプレミスの TDE 証明書をバックアップするには
-
AWS CLI generate-data-key コマンドを使用して、データキーを生成します。
aws kms generate-data-key \ --key-id
my_KMS_key_ID
\ --key-spec AES_256出力は以下のようになります。
{ "CiphertextBlob": "AQIDAHimL2NEoAlOY6Bn7LJfnxi/OZe9kTQo/XQXduug1rmerwGiL7g5ux4av9GfZLxYTDATAAAAfjB8BgkqhkiG9w0B BwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMyCxLMi7GRZgKqD65AgEQgDtjvZLJo2cQ31Vetngzm2ybHDc3d2vI74SRUzZ 2RezQy3sAS6ZHrCjfnfn0c65bFdhsXxjSMnudIY7AKw==", "Plaintext": "
U/fpGtmzGCYBi8A2+0/9qcRQRK2zmG/aOn939ZnKi/0=
", "KeyId": "arn:aws:kms:us-west-2:123456789012
:key/1234abcd-00ee-99ff-88dd-aa11bb22cc33
" }次のステップで、プレーンテキスト出力をプライベートキーのパスワードとして使用します。
-
次の例に示すように、TDE 証明書をバックアップします。
BACKUP CERTIFICATE
myOnPremTDEcertificate
TO FILE = 'D:\tde-cert-backup
.cer' WITH PRIVATE KEY ( FILE = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\cert-backup-key
.pvk', ENCRYPTION BY PASSWORD = 'U/fpGtmzGCYBi8A2+0/9qcRQRK2zmG/aOn939ZnKi/0='); -
証明書のバックアップファイルを Amazon S3 証明書バケットに保存します。
-
プライベートキーのバックアップファイルを S3 証明書バケットに保存し、ファイルのメタデータに次のタグを付けます。
-
キー –
x-amz-meta-rds-tde-pwd
-
値 — データキーの生成による
CiphertextBlob
値、以下の例を参照。AQIDAHimL2NEoAlOY6Bn7LJfnxi/OZe9kTQo/XQXduug1rmerwGiL7g5ux4av9GfZLxYTDATAAAAfjB8BgkqhkiG9w0B BwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMyCxLMi7GRZgKqD65AgEQgDtjvZLJo2cQ31Vetngzm2ybHDc3d2vI74SRUzZ 2RezQy3sAS6ZHrCjfnfn0c65bFdhsXxjSMnudIY7AKw==
-
次の手順では、RDS for SQL Server TDE 証明書をオンプレミス DB インスタンスに復元します。証明書のバックアップ、対応するプライベートキーファイル、およびデータキーを使用して、移行先 DB インスタンスに TDE 証明書をコピーして復元します。復元された証明書は、新しいサーバーのデータベースマスターキーによって暗号化されます。
TDE 証明書を復元するには
-
TDE 証明書のバックアップファイルとプライベートキーファイルを Amazon S3 から移行先インスタンスにコピーします。Amazon S3 からのファイルコピーの詳細については、「RDS for SQL Server と Amazon S3 間のファイル転送」を参照してください。
-
KMS キーを使用して出力暗号テキストを復号化し、データキーのプレーンテキストを取得します。暗号テキストは、プライベートキーバックアップファイルの S3 メタデータにあります。
aws kms decrypt \ --key-id
my_KMS_key_ID
\ --ciphertext-blob fileb://exampleCiphertextFile
| base64 -d \ --output text \ --query Plaintext次のステップで、プレーンテキスト出力をプライベートキーのパスワードとして使用します。
-
次の SQL コマンドを使用して、TDE 証明書を復元します。
CREATE CERTIFICATE
myOnPremTDEcertificate
FROM FILE='D:\tde-cert-backup
.cer' WITH PRIVATE KEY (FILE = N'D:\tde-cert-key
.pvk', DECRYPTION BY PASSWORD = 'plain_text_output
');
KMS の復号化の詳細については、「AWS CLI コマンドリファレンス」の KMS セクションの「復号」を参照してください。
TDE 証明書が移行先 DB インスタンスで復元された後、その証明書を使用して暗号化されたデータベースを復元できます。
注記
同じ TDE 証明書を使用して、移行元 DB インスタンス上の複数の SQL Server データベースを暗号化できます。複数のデータベースを移行先インスタンスに移行するには、それらに関連付けられた TDE 証明書を移行先インスタンスに一度だけコピーします。