仅通过删除 CloudFormation 堆栈允许删除 AWS 资源

Allow AWS resources deletion only by delete CloudFormation stack

请帮忙处理这个案例:

有一个创建一些 AWS 资源的 CF 堆栈(由管理员帐户创建)。 有允许删除 CF 堆栈的 AWS 用户(高级用户)。

我的目标:

允许用户通过删除 CF 堆栈来删除 CF 堆栈和所有创建的资源。 拒绝用户从资源控制台删除(和修改)资源。

问题:

如果用户只有cloudformation:DeleteStack权限,则只能发起删除,因为他没有资源删除权限(例如lambda:DeleteFunction) 如果他有这些权限,他可以从资源控制台(例如,Lambda 控制台)删除资源,而不仅仅是通过 CF 堆栈删除。

有什么想法吗?

CloudFormation 可以承担一个角色来完成它的工作:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-servicerole.html

因此创建一个具有部署堆栈所需的所有权限的角色,并确保它只能由 CloudFormation 承担。然后授予该用户创建和删除堆栈的权限,以及列出角色和执行 create/delete 所需的任何其他权限(您必须稍微试验一下,因为一些所需的权限是非显而易见)。