AWS CloudFormation
用户指南 (API 版本 2010-05-15)

防止堆栈被删除

您可以通过在堆栈上启用终止保护来防止堆栈被意外删除。如果用户尝试删除已启用终止保护的堆栈,则删除操作会失败,并且堆栈及其状态将保持不变。可在创建堆栈时对其启用终止保护。默认情况下,堆栈上的终止保护是禁用的。您可以为状态为 DELETE_IN_PROGRESSDELETE_COMPLETE 之外任何状态的堆栈设置终止保护。

在堆栈上启用或禁用终止保护同时也将对属于该堆栈的任何嵌套堆栈进行设置。不能直接在嵌套堆栈上启用或禁用终止保护。如果用户尝试直接删除一个属于已启用终止保护的堆栈的嵌套堆栈,则操作会失败,并且嵌套堆栈将保持不变。

但是,如果用户执行会删除嵌套堆栈的堆栈更新,则 AWS CloudFormation 会相应地删除嵌套堆栈。

终止保护不同于禁用回滚。终止保护仅适用于尝试删除堆栈的情况,而禁用回滚适用于创建堆栈失败时的自动回滚。

在创建堆栈时启用终止保护

在现有堆栈上启用或禁用终止保护

  1. 登录 AWS 管理控制台 并通过以下网址打开 AWS CloudFormation 控制台:https://console.aws.amazon.com/cloudformation/

  2. 选择想要设置的堆栈。

    注意

    如果堆栈名称旁边显示 NESTED,则该堆栈为嵌套堆栈。您只能在该嵌套堆栈所属的根堆栈上更改终止保护。

  3. 在堆栈详细信息窗格中,选择 Stack actions (堆栈选项),然后选择 Edit termination protection (编辑终止保护)

    CloudFormation 会显示 Edit termination protection (编辑终止保护) 对话框。

  4. 选择 Enable (启用)Disable (禁用),然后选择 Save (保存)

在嵌套堆栈上启用或禁用终止保护

如果堆栈名称旁边显示 NESTED,则该堆栈为嵌套堆栈。您只能在该嵌套堆栈所属的根堆栈上更改终止保护。在根堆栈上更改终止保护:

  1. 登录 AWS 管理控制台 并通过以下网址打开 AWS CloudFormation 控制台:https://console.aws.amazon.com/cloudformation/

  2. 选择想要设置的嵌套堆栈。

  3. Stack info (堆栈信息) 窗格中,在概述部分中,选择作为根堆栈列出的堆栈名称。

    AWS CloudFormation 会显示根堆栈的堆栈详细信息。

  4. 依次选择 Stack actions (堆栈选项)Edit termination protection (编辑终止保护)

    CloudFormation 会显示 Edit termination protection (编辑终止保护) 对话框。

  5. 选择 Enable (启用)Disable (禁用),然后选择 Save (保存)

使用命令行启用或禁用终止保护

控制谁可以在堆栈上更改终止保护

要在堆栈上启用或禁用终止保护,用户需要拥有进行 cloudformation:UpdateTerminationProtection 操作的权限。例如,以下策略允许用户在堆栈上启用或禁用终止保护。

有关在 AWS CloudFormation 中指定权限的更多信息,请参阅使用 AWS Identity and Access Management 控制访问

例 授予更改堆栈终止保护权限的示例策略

{ "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Action":[ "cloudformation:UpdateTerminationProtection" ], "Resource":"*" }] }