メモ:暗号化済みのEBSボリュームをアタッチしたEC2インスタンスをLambdaから起動したいときはロール設定が必要です。

2017.10.29

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

ベルリンの半瀬です。

はじめに

暗号化済みのEBSボリュームをアタッチしたEC2インスタンスをLambda Function経由で起動できないというお問い合わせがありました。
Lambda経由で実行する際には、暗号化ボリュームを作成したキーの「Key Users」にLambda実行用ロールを追加しておく必要があります(完)。
理由はこちら:[KMS] EBS暗号化によるEC2操作への影響を調べてみた

以下、チェック時の履歴。

確認内容

ロール作成

Ec2FullAccess(今回はstartできればよい)でlambda用のロールを準備。
20171029-01

IAMでEncryption keyを準備

EBSの暗号化に使用します。
20171029-02

Key Usageに前項で作成したロールを指定。Administorative Permissionの割り当ては不要。
20171029-03

Lambda実行確認

上で作成したロールを指定して関数を作成。
20171029-04

起動用スクリプト。
20171029-05

Key Usersにロール登録がない場合の起動失敗表示

State Transition Reason に「Server.InternalError」、
State Transition reason Message に「Client.InternalError: Client error on launch」がエラー表示されます。
20171029-06

さいごに

動作チェックのメモでした。
同じエラーを見る人に届け。

※ 関連記事
【新機能】EBSのブートボリュームが暗号化できるように

ではまた