AWSのLightsail、テスト的にアプリケーションを作成したり、トライアルで利用するには非常に便利ですよね。
弊社でもテストだったりトライアルの際はよく活用しています。
ただ、実際の運用環境となると、Lightsailだと可用性とか拡張性で物足りない部分もあるので、実運用の前にEC2に移行するケースが多いです。
エラー内容
Lightsailの環境は、AWSでも「テストアカウント」だったりするので、実際に運用する「運用アカウント」に移行する際、LightsailのスナップショットからAMIにエクスポートして、AMIに運用環境のAWSアカウントを共有しようとすると、こちらのエラーが発生します。
具体的には、AMIの共有アカウントで、アカウントIDを追加して、
AMIを共有して、
保存しようとすると、以下のエラーが表示されます。
イメージ属性を変更できませんでした
Snapshots encrypted with the AWS Managed CMK can't be shared. Specify another snapshot.
スナップショット属性の変更に失敗しました
スナップショット snap-XXXXXXXXXXXXXXXXX の属性を変更できませんでした。Encrypted snapshots with EBS default key cannot be shared。
画面のスクリーンショットとしてはこんな感じです。
AMIが引っ越したいAWSアカウントに共有できないーーー
エラー原因
こちらのエラーの原因はKMSです。
確かにAMIのストレージを確認してみるとKMSキーIDにEBSのキーが入っています。
要は、暗号化されたAMIを別アカウントに移行しようとする際のエラーですね。
回避方法
KMSから新しくキーを作成し、キーを作成する際に別のAWSアカウントIDを追加します。
KMSを開いて、新しくキーを作成していきます。
ここで別のAWSアカウントで移行したいアカウントのID12桁を入力します。
AMIの画面にいき、移行したAMIをコピーします。
コピーの際、上記で作成したKMSキーを指定します。
これで別のAWSアカウントIDに紐づいたKMSのあるAMIができあがります。
このAMIを利用して、別のAWSアカウントに共有すれば、最初に表示していたエラーが回避できます。
要は、KMSを新しく作成して、それに紐づいたAMIを新しくコピーして作成して、それを共有すればいいという事ですね!
株式会社OZでは、他の方達にも有益と思われる情報は、社内ナレッジに留めず、積極的に情報公開するという方針をとっております。
これからも株式会社OZをよろしくお願いします。