CloudFormationにおけるエラー対応メモ

概要

AWSのCloudFormationで出力されるエラーメッセージとその対応についての備忘録
都度追記していく

Update the IAM policy to add permission

エラーメッセージ

Lambda@Edge cannot retrieve the specified Lambda function. Update the IAM policy to add permission: lambda:GetFunction for resource: arn:aws:lambda:us-east-1:xxxx:function:yyyy:1 and try again. (Service: AmazonCloudFront; Status Code: 400; Error Code: InvalidLambdaFunctionAssociation; Request ID: zzzz)

対応

単純にlambdaのGetFunctionの権限が無いというもの。対象のlambdaを参照する側のリソースを特定して権限を与えればOK。
例外的なケースとして、このlambdaのバージョンは別のIAMポリシーで作られており、そのポリシーが設定されていないという場合もあった。
例えばCloudFormationのstack-Aとしてlambdaバージョン1と2を作っていたが、stack-Aは削除しており、stack-Bを新たに作成した際にlambdaバージョン1を参照しているケースである。尚、stack-Aとstack-Bでそれぞれ参照用のポリシーを作成して適用している場合に古いバージョンが参照できなくなる。