AWS Systems Manager Parameter StoreをAWS Lambdaで更新しようと思ったら権限が足りてなかった話

記事タイトルとURLをコピーする

こんにちは!技術1課、濱岡です。

みなさんは、目玉焼きには塩派?醤油派?ソース派?のどれですか?

私は基本何もつけずに食パンに乗っけて食べていたのでそんな派閥があるんだなと思いました。

さて、今回はAWS Systems Managerのパラメータストアのお話です。 (小ネタです)

今回はこんな前提

AMIが作成して、リージョン間コピーをした後、AWS LambdaからAWS Systems Managerのパラメータストアを更新しようとしてました。

今回、AMI IDをパラメータストアに入れるため、パラメータストアのデータ型をaws:ec2:imageにしていたんですが、時間が経っても更新されませんでした。

エラーも特にでいなくてAWS CloudTrailを確認するとPutParameterイベントがでてないから更新はされていないんだろうなという状況でした。

ただ、データ型がtextだとすぐ更新されます。

原因は権限が足りなかった

データ型のaws:ec2:imageを利用する際には、ssm:PutParameterだけでなくec2:DescribeImagesの権限も必要でした。

今回、ssm:PutParameterだけ付けていたので更新されなかったわけです。

docs.aws.amazon.com

この権限はパラメータ値がAMI IDの書式設定要件を満たしているか?と指定された AMI がAWSアカウントで使用可能であるか?を確認するためなんですね。

よってデータ型がtextの場合は更新されたんですね。スッキリしました。

権限を追加したら無事更新されました。

まとめ

何もエラーが出ず、最初なんで更新できないのか全然わかりませんでした。

その際は権限が足りていないのでは?と確認してみるといいかもしれません。

ちなみにリージョン間コピーした後なにをトリガーにAWS Lambdaを起動しているの?はCloudAutomatorでコピーするジョブを作成してWebhook後処理を利用しました! よかったらチェックしてみてくださいね!

blog.serverworks.co.jp

以上、濱岡でした!

濱岡智恵 (執筆記事の一覧)

クラウドインテグレーション部

プログラムを書くことが好きです