View a markdown version of this page

CloudFormation 堆栈的删除保护 - AWS CloudFormation

CloudFormation 堆栈的删除保护

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

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

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

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

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

在 Create stack(创建堆栈)向导中的 Specify stack options(指定堆栈选项)页面上,在 Advanced options(高级选项)下,展开 Termination Protection(终止保护)部分,然后选择 Enable(启用)。有关更多信息,请参阅 配置堆栈选项。

在现有堆栈上启用或禁用终止保护
  1. 登录到 AWS 管理控制台 并打开 CloudFormation 控制台 https://console.aws.amazon.com/cloudformation。

  2. 在屏幕顶部的导航栏中,选择您的 AWS 区域。

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

    注意

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

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

    CloudFormation 会显示编辑终止保护对话框。

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

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

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

  1. 登录到 AWS 管理控制台 并打开 CloudFormation 控制台 https://console.aws.amazon.com/cloudformation。

  2. 在屏幕顶部的导航栏中,选择您的 AWS 区域。

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

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

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

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

    CloudFormation 会显示编辑终止保护对话框。

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

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

使用 update-termination-protection 命令。

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

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

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

例授予更改堆栈终止保护权限的示例策略
JSON
{ "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Action":[ "cloudformation:UpdateTerminationProtection" ], "Resource":"*" }] }