【AWS】AMIを別アカウントに共有する方法(EBSも共有する)
Cue(前提や主題)
・開発環境やステージング環境、本番環境と様々な環境でEC2を構築したとき、各環境で差分が発生
・全環境で統一したものを使用したい
・方法の1つとして、EBSを含めたAMIの共有があるが、別のAWSアカウントで構築している
Note(手順)
【元となるAMIがある環境】
①KMSで別アカウントに共有を行うキーを作成
注意事項
・構築は、基本的にデフォルトの設定のままでよい
キーのタイプ:対象
キーの使用法:暗号化および復号化
詳細オプション:デフォルトのまま
エイリアス:{任意のキー名}
説明:特に設定不要
タグ:特に設定不要
キー管理者:特に設定不要
キーの削除:デフォルトのまま
キーユーザー:特に設定不要
別のAWSアカウント:ここが重要(※)
※ここで共有したいAWSのアカウントIDを指定する
【元となるAMIがある環境】
②AMIを取得して、設定を行う
・AMIの取得方法は、公式ドキュメントを参照
重要なのは取得後のコピー時の設定と許可設定
・「AMIをコピー」にて、EBSスナップショットを暗号化する際に①のキーを使用する
コピー元となるAMIを選択
→アクション
→「AMIをコピー」
→基本的にそのままの設定でよい
重要なのは「AMIコピーのEBSスナップショットを暗号化」にチェックを入れる
→KMSキーは①で作成したキーを使用する
→「AMIをコピー」
・「AMI許可を編集」にて、別AWSアカウントへの共有設定を行う
対象のAMIを選択
→アクション
→「AMI許可を編集」
→「アカウント許可を作成するときに、関連付けられたスナップショットに[ボリュームを作成]の許可を追加します」にチェックを入れる
→共有アカウントにて、「アカウントIDを追加」
→①と同様のAWSアカウントIDを入力して、「AMIを共有」
→「変更を保存」
【AMIの共有先の環境】
④EC2のメニュー「AMI」より確認
共有先の環境で確認すると、共有を受けたAMIを確認することができる。
また共有されたAMIでEC2を起動すると、EBSも元となるAMIに関連されたEBSで構築が可能
Summary
・実際にやってみて、KMSが必要なのは、EBSのためと認識している。
・EBSは基本必要だが、機会があればAMIのみ共有をKMSなしでやってみたいと思う
・AMIの共有先の環境でEBSのKMSキーが、①で作成したカスタマー管理型のキーではなく、AWSマネージド型キーになっているかは確認しておいたほうがよい