【新機能】暗号化されたEBSスナップショットをクロスアカウントでコピーする

2016.06.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、せーのです。今日はEBSのちょっとうれしい新機能のご紹介です。

スナップショットを共有して開発を便利に

昨今では開発環境、ステージング、本番環境とアカウントを分けることも多くなってきました。その際に開発環境でのプログラムや設定データをそのまま移行する、または本番環境で何か障害が起きた時に設定データをそのままコピーして開発環境で確認する、という場合にスナップショットのコピーは大変便利です。

今までは暗号化されていないEBSスナップショットはクロスアカウントでコピーすることができていたのですが、今回の機能追加によってついに暗号化されたEBSスナップショットもクロスアカウントでコピーすることが出来るようになりました。

やってみた

それでは実際にやってみましょう。 まずは暗号化する際に必要な暗号化キーをIAMから作ります。

ebs_snapshot_copy1

作成する時はリージョンに気をつけましょう。

ebs_snapshot_copy2

名前をいい感じにつけて

ebs_snapshot_copy3

権限をつけて完成です。とりあえず自分のみ操作可能としました。実運用時はグループ等につけるといいかと思います。

ebs_snapshot_copy4

次に暗号化EBSを作ります。マネージメントコンソールのEC2から「ボリューム」をクリックしEBSを新規に作成します。ポイントはDefaultのキーは使わず、必ず先程作ったカスタムキーを使うことです。

ebs_snapshot_copy5

次に暗号化に使ったKeyをコピー先のアカウントでも参照できるように共有設定をします。IAMより先程作ったKeyを選択して詳細画面より下にスクロールしたところにある「キーユーザー」から外部アカウントの追加を使ってコピー先のアカウントを登録します。

ebs_snapshot_copy8

次に出来上がったスナップショットをコピー先のアカウントに共有します。権限の変更から

ebs_snapshot_copy9

[プライベート]でコピー先のアカウントにのみ表示されるように設定します。

ebs_snapshot_copy10

ここで暗号化スナップショットのコピーに必要な権限をまとめます。コピーに必要な権限は

  • コピー元: DescribeKey, ReEncypt
  • コピー先: CreateGrant, Encrypt, Decrypt, DescribeKey, CopySnapshot

です。これでコピー元の設定は完了です。次にコピー先のアカウントから実際にコピーしてみましょう。スナップショットから[private]を選択すると、コピー元で設定したスナップショットが見えていると思います。

ebs_snapshot_copy11

あとはこれをコピーするだけです。Keyはなんでもいいです。

ebs_snapshot_copy12

コピーが完了しました。バッチリです!

ebs_snapshot_copy13

まとめ

いかがでしたでしょうか。コピーやクロスアカウントの設定は今までとほぼ変わりがないのでスッと入ってきたかと思います。これでますます便利になりましたね。

参考リンク