无法删除cfn堆栈,角色无效或无法假设

pel*_*can 18 amazon-web-services aws-cloudformation aws-codecommit aws-codepipeline

我是aws cloudformation的新手; 我想知道是否有人知道一种强制删除堆栈的方法,当它不会删除时.它失败并出现此错误:

Failed to delete stack: Role arn:aws:iam::role/CloudFormationRole-NestedCFN-CodePipeline is invalid or cannot be assumed
Run Code Online (Sandbox Code Playgroud)

当我尝试删除嵌套的子堆栈而不是首先删除父堆栈时,通常会发生此错误.如果我不小心删除了父堆栈,有没有办法删除嵌套堆栈?

Jua*_*ata 31

我遇到了同样的问题,删除堆栈的唯一方法是使用AWS CLI并执行以下命令:

aws cloudformation delete-stack --role-arn arn:aws:iam::xxxx:role/anyrolewithpermissions --stack-name StuckStack
Run Code Online (Sandbox Code Playgroud)

只需确保使用具有足够权限的其他角色.

  • 如果可以的话,我会两次投票。每次都帮助我。 (8认同)

Pau*_*all 30

我有几次这个问题.解决方案有点像黑客攻击.在您的情况下,您需要创建一个名为的新角色CloudFormationRole-NestedCFN-CodePipeline.创建此角色时,您可能需要CloudFormation在要求您选择将使用此角色的服务时选择该服务,然后选择附加权限策略.创建角色后,尝试再次删除堆栈.
其中一些是猜谜游戏,因为您需要选择正确的资源(即AWS服务)作为"可信实体".根据您的角色名称,它可以是CloudFormation或CodePipeline.

删除CloudFormation堆栈后,您可以删除刚刚创建的IAM角色.

您收到此错误的原因是您可能删除了一个CloudFormation堆栈,该堆栈具有您尝试删除的堆栈正在使用的IAM角色.

我希望AWS有一个更优雅的解决方案,但这是我的解决方法.

  • 非常感谢,黑客为我工作!下面提出的其他建议解决方案并不是很有效,但感谢帮助我解决所有问题! (2认同)

Hom*_*ani 21

当需要删除堆栈的角色被意外删除时,通常会发生这种情况。您可能会收到错误消息

Role arn:aws:iam::<account>:role/<role name> is invalid or cannot be assumed
Run Code Online (Sandbox Code Playgroud)

转到IAM> roles> create role> 单击cloudformation该服务 > 确保授予它权限,permissions以便 cloudformation 可以删除堆栈。(在我的例子中,我给了它管理员权限,因为我计划在删除堆栈后立即删除角色>以便Role name在错误消息中使用相同的角色名称。

您现在应该能够删除堆栈