CloudFormation 堆栈的删除保护 - AWS CloudFormation

CloudFormation 堆栈的删除保护

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

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

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

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

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

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

在现有堆栈上启用或禁用终止保护
  1. 登录到 AWS Management Console 并打开 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 Management Console 并打开 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 操作的权限。例如,以下策略允许用户在堆栈上启用或禁用终止保护。

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

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