RDS スナップショットを別AWSアカウントに共有する(暗号化されている場合)

1 min読了の目安(約1500字TECH技術記事

概要

RDSスナップショットを別AWSアカウントに共有したい場合、暗号化されていると簡単にできなかったため、備忘も兼ねて手順をまとめておきます。

どなたかの参考になれば幸いです。

経緯

モノリシックな構成からマイクロサービスへ向かう中で、既存AWSアカウントのごちゃごちゃを役割ごとに分離したいことって良くありますよね?
そんな事情から既存RDS環境を別AWSアカウントに移行させたいニーズが発生しました。

EC2は簡単に共有できるので、RDSも当然簡単に共有できると思ってたら出来ない事情があることを知りました。

スナップショット共有画面

RDSがデフォルトサービスキーで暗号化されている場合は共有サポートされていないようです。

ということで、試してみた結果を下記にまとめます。

手順

既存AWSアカウントで実施

RDSスナップショットを取得

まずRDSスナップショットを取得します。
暗号化されていない場合、取得したスナップショットで共有するだけですが、デフォルトKMSキーで暗号化されている場合は前述した通り共有できません。

デフォルトKMSキーの場合の表示

そのため、デフォルトKMSキーではなく新たにKMSキーを作成し、そのKMSキーにてスナップショットをコピーします。

KMSキー作成

  1. KMS > カスタマー管理型のキー > キーの作成
  2. キーを設定:デフォルト
  3. エイリアスを入力(例:rds-key
  4. キー管理者を入力
  5. キーの使用アクセス許可定義を入力
  6. 別のAWSアカウントに移行先AWSアカウントIDを入力して完了

RDSスナップショットをコピー

取得していたスナップショットをコピーします。
その際、「暗号化」のマスターキーにて新規作成したKMSキーを選択します。

コピーされたRDSスナップショットを共有

コピーされたRDSスナップショットを選択して共有すると、共有できるようになっています。
移行先AWSアカウントIDを入力して共有します。

移行先AWSアカウントで実施

共有されたRDSスナップショットからコピー

共有されたRDSスナップショットが「自分と共有」に表示されていることを確認します。
共有されたRDSスナップショットを「コピー」します。

RDSスナップショットからDB復元

最後に、コピーされたRDSスナップショットから「復元」を実行して完了です。
接続確認を実施してください。

参考