はじめに
この記事は
AWS Backupを使って、KMSのCMKで暗号化した状態で、クロスリージョンにEC2のAMIを保存する方法を紹介します。
やりたいこと: EC2のバックアップ(AMI)をクロスリージョンで取得する。その際CMKで暗号化する。
大阪リージョンができて、バックアップを大阪に保持したいという要件が増えてきそうです。
単純にバックアップを取るだけであれば、公式ドキュメントを読めばかんたんに作成可能です。
しかし暗号化して、更に任意のCMKを指定するとなると、公式ドキュメントの記載がいまいち分かりづらかったため、検証して確認してみました。
ポイントは単にバックアップを取るのではなく、
- クロスリージョンにコピー
- CMKで暗号化する
点です。
結果: 出力先ボールトにCMKを指定することで、CMKで暗号化される
検証の結果、出力先のボールトにCMKを設定すれば、そのCMKで暗号化されました。
KMSのキーが指定されていない場合、デフォルトのキーとしてAWS管理のサービスごとのキーを利用して暗号化します。
検証
準備
- 東京リージョンと大阪リージョンにそれぞれCMKを作成
- 東京リージョンに暗号化インスタンスAと、暗号化なしインスタンスBの2つを用意
- 大阪リージョンにバックアップボールトを作成
- 作成したCMKを指定
- 東京リージョンでAWS Backupにバックアッププランを作成
- バックアップリソースとして2つのインスタンスを指定
- コピー先として大阪を指定し、コピー先ボールトに作成したボールトを指定
検証結果
もとのインスタンスの暗号化有無に関わらず、2つともCMKで暗号化された状態でバックアップが取得されました。
詳細は省きますが、こんな感じです。206から始まるCMKで無事暗号化されています。
参考文献
AWS Backupについて
DevelopersIOさんが、AWS Backupについてわかりやすく整理なさってました。
流石のクオリティで、ボールトとかルールとかプランとか一発で理解できます。
ありがとうございました。
https://dev.classmethod.jp/articles/aws-backup-perfect-understand/
公式ドキュメントの記載
https://docs.aws.amazon.com/aws-backup/latest/devguide/encryption.html
暗号化されたリソースのバックアップを取得する場合、もともとのリソースで使用されたキーを使って暗号化されると記載があります。
一方でクロスリージョンの場合は、もともとのリージョンで使用していたKMSキーは利用できませんとも記載があります。
ではその場合どうなるかという点については明記がないのですが、2021/5/31時点では関連した記載があります。
https://docs.aws.amazon.com/aws-backup/latest/devguide/encryption.html#encryption-cross-region-copies
要約するとこんな感じです。
暗号化していないリソースをバックアップする場合でも、下記の法則でデフォルトで暗号化しようとする。
- 鍵の指定がない場合は、そのボールトに登録されているAWS管理のデフォルトのキーで暗号化する。
- AWS Storage Gatewayの場合、ボールトに登録されている**カスタマーマネージド(CMK)**のキーで暗号化する。
ということでEC2の場合1が適用されてデフォルトのキーで暗号化されるのかなと思いつつ、もともと暗号化されていたものかつクロスリージョンだとどうなるのか試してみたところ、この記事のような結果になりました。