見出し画像

【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マネージド型キーになっているかは確認しておいたほうがよい

いいなと思ったら応援しよう!