はじめに
AWS CloudFormationに使われていないスタックがあったため削除を試みたところ、Role hogehoge:role/{role-name} is invalid or cannot be assumed
と表示され、削除に失敗してしまいました。
このような状態のスタックの削除方法をまとめます。
原因
エラーに書かれているとおり、そのスタック用のロールが存在しないことが原因です。
スタック削除までの手順
その名前のロールを再び作る
- IAMのコンソールへ行き、「ロールの作成」を選択。
- 「このロールを使用するサービス」はCloudFormationを選択。
- アクセス権限はAdministratorAccessを与えるのが手っ取り早いです(あとで必ず削除すること)
- ロール名は、エラーに表示されていた{role-name}をコピペします。
スタックの削除
- ロールを作成したら、CloudFormationコンソールに戻り、再びスタックの削除を試みます。
-
削除に失敗しているリソースを保持することができます
と書かれているポップアップが表示されることがあります。そのリソースがすでに削除されている場合はチェックを入れて、[スタックの削除] をクリックします。 - その後、そのスタックの削除に失敗する場合があります。その場合、もう一度削除の手順を繰り返してください。おそらく
削除に失敗しているリソースを保持することができます
というポップアップが出てくると思います。表示されているリソースにチェックをいれて、スタックを削除します。これで削除されるはずです。
ロールの削除
- 削除に成功したら、先ほど作成したロールを削除します。
参考
DELETE_FAILED ステータスの AWS CloudFormation スタックをトラブルシューティングする方法を教えてください。