LoginSignup
0
0

More than 1 year has passed since last update.

消せなくなったCloudFormationのスタックを消す

Posted at

CloudFormationの削除が失敗そうとしたら、以下のようなエラーが出てスタックが消そうにも消せないという現象がおきた

エラー

Role arn:aws:iam::xxxxxxxx:role/service-role/hogehogeCloudFormation is invalid or cannot be assumed 

これの解決策を備忘録的に記載する

原因

私の場合は、エラーに記載されているrole arn:aws:iam::xxxxxxxx:role/service-role/hogehogeCloudFormationが先に削除されてしまっていたためにCFnのroleが見つからず削除ができないというのが原因だった

解決策

ロールを作って必要なポリシーを付与することでスタックを削除できるようになる

また同じことが起きる気がするのでスクリプト化した。

shell で以下のコマンドを実行することでロールを復活させることができる。


# エラーに記載されているロールの名前を変数に入れる(上記の例の場合"hogehogeCloudFormation"と入力する)
ROLE_NAME=[エラーメッセージに書かれてるロールの名前]

# roleを作る
aws iam create-role --path /service-role/ --role-name $ROLE_NAME  --assume-role-policy-document file://<(cat <<EOF
{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Principal": { "Service": "cloudformation.amazonaws.com" },
        "Action": "sts:AssumeRole"
    }
}
EOF
)

# 必要なporicyをアタッチする。この場合はアドミン権限をつけているので注意
aws iam attach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AdministratorAccess

備考

ちょうど以下の記事で同じことをやっているが私の場合、roleのpathが合わず、
arn:aws:iam::xxxxxxxx:role/hogehogeCloudFormationのようなroleが作られてしまうということがあった。
状況に合わせてコマンドの--pathの設定も書き換える必要がありそう

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0