【AWS】AWSのデフォルトKMSキーで暗号化したRDSスナップショットを別AWSアカウントに共有する方法
TL;DR
AWSデフォルトのKMSキーで暗号化したRDSスナップショットを別AWSアカウントに共有する方法を記載しています。
関連情報
以下を参考にしました。
暗号化されていないRDSスナップショットを別アカウントに共有する方法は以下の記事で記載したのですが、 今回は暗号化されているRDSを別アカウント間で共有する方法をやってみます。 maedakosuke.hatenablog.com
また、上記のDB のスナップショットの共有 - Amazon Relational Database Serviceによると
スナップショットを共有する AWS アカウントのデフォルト AWS KMS 暗号化キーを使って暗号化されたスナップショットを共有することはできません。
とのことなので、すでにRDSをデフォルトのKMSキーを使用して、暗号化されている状態だと共有することができないぽいです。
なので、手順としては以下のような感じで試してみようと思います。
- スナップショットの取得(A)
- (A)をコピーしてデフォルトでないKMSキーで暗号化(B)
- (B)を共有
- (B)からDBを復元
前提条件
- デフォルトのKMSキーで暗号化されたRDSが作成されていること。
やってみます。
1.まず現状のRDSのスナップショットを取得します。
暗号化されていない場合、この状態なら通常スナップショットを共有できるのですが、今の状態だと共有できません。
また、現状のRDSのKMSキーを別アカウントと共有するため、KMSキー詳細をみてみます。
KMSキーの詳細には、以下が記載されています。
このサービスで暗号化されたリソースを作成するときにマスターキーを定義しない場合、このマスターキーが使用されます。このキーの可用性、耐久性、セキュリティを確保するために、このキーの設定は変更できません。
とのことで、デフォルトのKMSキーは設定変更ができないので、まずKMSキーを新たに作成し、その暗号化キーに変更する必要がありそうです。
2.新たにKMSキーを作成します。
3.スナップショットをコピーして、新たに作成した暗号化キーでスナップショットを作成します。
スナップショットのコピー
新たに作成したKMSキー(rds_key)をマスターキーとしてスナップショットをコピーします。(test-db-snapshot-new)
4.test-db-snapshot-new
を共有先のアカウントに共有します。
すると、共有先のAWSアカウントでスナップショットが共有ができていると思います。
ただ、この状態から復元はできないので、コピーをしようとするのですが、KMSキーが共有されておらず 権限がないため、コピーもできない状態です。そのため、KMSキーを共有していきます。
5.KMSキーを外部アカウントに対して共有します。
IAM
>暗号化キー
から外部アカウント
にAWSアカウントID番号を入力して、共有します。
6.共有先のAWSアカウントで共有済のスナップショットからコピーを作成し復元してみます。
共有されたスナップショットを復元することができなかったので、コピーを作成してみます。
次に、コピーしたスナップショットからDBを復元してみます。
正常に接続でき、復元できました。