AWS CloudFormation
User Guide (API Version 2010-05-15)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

防止堆栈被删除

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

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

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

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

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

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

  1. 登录 AWS 管理控制台并通过以下网址打开 AWS CloudFormation 控制台:https://console.amazonaws.cn/cloudformation/。选择想要设置的堆栈。

    注意

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

  2. 选择 Actions,然后选择 Change Termination Protection

    根据堆栈当前的终止保护设置,CloudFormation 显示 Enable Termination ProtectionDisable Termination Protection

  3. 选择 Yes, EnableYes, Disable

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

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

  1. 登录 AWS 管理控制台并通过以下网址打开 AWS CloudFormation 控制台:https://console.amazonaws.cn/cloudformation/。选择想要设置的嵌套堆栈。

  2. Overview 选项卡上,单击作为 Root stack 列出的堆栈名称。

  3. 选择 Other Actions,然后选择 Change Termination Protection

    根据堆栈当前的终止保护设置,CloudFormation 显示 Enable Termination ProtectionDisable Termination Protection

  4. 选择 Yes, EnableYes, Disable

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

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

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

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

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

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