Serverless Frameworkでデプロイ失敗?IAMに必要な権限と解決策メモ【AWS】

✅ はじめに

AWSでServerless Frameworkを使ったデプロイ時に、CREATE_FAILED エラーが発生。原因は IAM ポリシーの不足でした。

この記事では、実際に遭遇したエラーと、その解決方法を備忘録としてまとめます。同じようなトラブルに遭遇した方の参考になれば幸いです。

🔍 発生したエラー内容

Serverless Frameworkのデプロイ時、以下のようなエラーが出ました。

リソース HttpApiStage は CREATE_FAILED 状態です  
User is not authorized to perform: apigateway:TagResource  

CloudFormationのスタック作成中に apigateway:TagResource 権限が不足していたことで失敗していたことがわかりました。

🛠 解決策:IAMポリシーに権限を追加

対応として、Lambdaの実行ロールまたはデプロイに使用しているIAMユーザー/ロールに、以下の権限を追加。

{
  "Effect": "Allow",
  "Action": "apigateway:TagResource",
  "Resource": "*"
}

その後、再度デプロイすると正常に完了しました。

💡 補足:DynamoDBでもValidationExceptionが発生

同日にもうひとつ、DynamoDBへのバッチ書き込みでも ValidationException が発生しました。

主な原因は、書き込み対象のItemの形式不備。スキーマに一致するようデータ整形して再実行し、解決しました。

📝 まとめ

  • Serverless Frameworkのデプロイでは、API Gateway操作のためのIAM権限が必要
  • apigateway:TagResource の権限漏れに注意
  • DynamoDBでもデータ形式ミスにより ValidationException が起こることがある

日々の運用の中で気づいたことを、こうして蓄積していきたいですね。


Categories:


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *