デフォルトの KMS キーを使用して暗号化された RDS を別の AWS アカウントにコピーする方法
パク・ヒョンテク
Twigfarmのシニア・フルスタック・エンジニア
データベースのクローニングは非常に簡単です ダンプ そして リストア。ただし、データベースが AWS RDS にあり、その RDS がデフォルトで提供されている AWS KMS キーで暗号化されている場合、それほど単純ではありません。AWS では、スナップショットを別のアカウントと共有することはできません。
この問題を解決するには、さらにいくつかの手順を実行する必要があります。この記事では、スナップショットをコピーする方法と、共有されているスナップショットを使用して RDS を復元する方法を説明します。
ソースデータベース
ソースアカウントに次のように単純な Postgres データベースを作成しました。
私が理解しているように、このRDSインスタンスはデフォルトのAWS KMSキーを使用して暗号化されています。
スナップショットを作成する
[RDS] > [スナップショット] に移動します。[スナップショットの作成] ボタンをクリックします。DB インスタンスを選択し、スナップショットに好きな名前を付けます。次に [スナップショットを撮る] ボタンをクリックします。
作成プロセスが完了するまで数分待つ必要があります。
スナップショットを共有する (最初の試行)
スナップショットの作成が完了したら、スナップショットを選択します。アクション [ドロップダウン] をクリックし、[スナップショットの共有] をクリックします。
ここで、スナップショットを共有する AWS 宛先アカウントを指定します。
拒否されました。正しい AWS アカウント番号を保存しました。[保存] ボタンは無効のままです。
そして、エラーメッセージは間違っています、
RDS のデフォルトサービスキーで暗号化されたスナップショットの共有は、現在サポートされていません。
スナップショットを共有するには別の方法が必要です。
ソースアカウントに KMS キーを作成する
AWS コンソールの [キー管理サービス (KMS)] に移動します。次に [キーを作成] ボタンをクリックします。
変更する必要がない限り、オプションはそのままにしておきます。
[次へ] ボタンをクリックします。次に、エイリアスを入力します。その後、もう一度 [次へ] をクリックします。
次に、必要に応じてユーザー名またはロールを選択します。ここでユーザー名に同意します。[次へ] をクリックします。
ここで、ユーザー名をもう一度選択し、宛先アカウント番号を入力します。次に [次へ] をクリックします。
キーポリシーを確認して [完了] ボタンをクリックします。これで、ソースアカウントのスナップショット用の最初の KMS キーができました。
スナップショットをコピーする
[RDS] > [スナップショット] に移動し、作成したスナップショットを選択します。次に [アクション] ドロップダウンをクリックし、今度は [スナップショットのコピー] を選択します。
[新しい DB スナップショット識別子] を入力し、[AWS KMS キー] 用に作成した KMS キーを必ず選択してください。次に [スナップショットをコピー] ボタンをクリックします。
スナップショットのコピーが進行している間、数分待ってください。
スナップショットを共有する (2 回目の試行)
スナップショットのコピーが準備できたら、スナップショットのコピーを選択します。[アクション] ドロップダウンボタンをクリックし、[スナップショットの共有] ボタンを選択します。次に、送信先の AWS アカウント ID を追加します。ご遠慮ください。以下で行った手順を繰り返してください。 スナップショットを共有する (最初の試行) セクション。
今回は、保存ボタンが有効になっています。それをクリックしてください!
スナップショットからの復元 (最初の試行)
移行先の AWS アカウントにログインします。[RDS] > [スナップショット] > [自分と共有] に移動します。ソースアカウントから共有したスナップショットが表示されます。
私たちの目標は、このスナップショットから復元することです。スナップショットを選択してください。[アクション] ドロップダウンボタンをクリックします。
[スナップショットの復元] ボタンは無効です。新しい宛先 KMS キーを使用して別のコピーを作成する必要があります。
移行先アカウントに KMS キーを作成する
[KMS] に移動し、[キーを作成] をクリックします。で行ったのと同じ操作を行います。 ソースアカウントで KMS キーを作成する エイリアスを除くセクション。
スナップショットをコピーします(これも宛先アカウントにあります)
次に、作成したキーを使用して共有されているスナップショットのコピーを作成する必要があります。
[RDS] > [スナップショット] > [自分と共有] に移動します。共有スナップショットを選択します。[アクション] > [スナップショットをコピー] をクリックします。
新しく作成された AWS KMS キーを必ず選択してください。
スナップショットからの復元 (2 回目の試行)
次に、コピーしたスナップショットを選択します。「アクション」ドロップダウンボタンをクリックします。これで、スナップショットの復元が有効になったことがわかります。[スナップショットの復元] を選択します。
データベース情報を入力します。スナップショットを使用して新しいデータベースインスタンスが作成されたことがわかります。
新しいAWSアカウントでコピー(バックアップ)して復元するには、なんて長い道のりでしょう。AWS がこの目標を達成するためのより良い方法を提供してくれることを願っています。
ありがとう!