CloudFormation 堆栈的删除保护
您可以通过在堆栈上启用终止保护来防止堆栈被意外删除。如果用户尝试删除已启用终止保护的堆栈,则删除操作会失败,并且堆栈及其状态将保持不变。可在创建堆栈时对其启用终止保护。默认情况下,堆栈上的终止保护是禁用的。您可以为状态为 DELETE_IN_PROGRESS
或 DELETE_COMPLETE
之外任何状态的堆栈设置终止保护。
如果在堆栈上启用或禁用终止保护,则也会将相同的选择传递给属于该堆栈的任何嵌套堆栈。不能直接在嵌套堆栈上启用或禁用终止保护。如果用户尝试直接删除一个属于已启用终止保护的堆栈的嵌套堆栈,则操作会失败,并且嵌套堆栈将保持不变。
但是,如果用户执行会删除嵌套堆栈的堆栈更新,则 AWS CloudFormation 会相应地删除嵌套堆栈。
终止保护不同于禁用回滚。终止保护仅适用于尝试删除堆栈的情况,而禁用回滚适用于创建堆栈失败时的自动回滚。
在创建堆栈时启用终止保护
在 Create stack(创建堆栈)向导中的 Specify stack options(指定堆栈选项)页面上,在 Advanced options(高级选项)下,展开 Termination Protection(终止保护)部分,然后选择 Enable(启用)。有关更多信息,请参阅 配置堆栈选项。
在现有堆栈上启用或禁用终止保护
登录到 AWS Management Console 并打开 AWS CloudFormation 控制台 https://console.aws.amazon.com/cloudformation
。 -
在屏幕顶部的导航栏中,选择您的 AWS 区域。
-
选择想要设置的堆栈。
注意
如果堆栈名称旁边显示 NESTED,则该堆栈为嵌套堆栈。您只能在该嵌套堆栈所属的根堆栈上更改终止保护。
-
在堆栈详细信息窗格中,选择 Stack actions (堆栈选项),然后选择 Edit termination protection (编辑终止保护)。
CloudFormation 会显示编辑终止保护对话框。
-
选择 Enable (启用) 或 Disable (禁用),然后选择 Save (保存)。
在嵌套堆栈上启用或禁用终止保护
如果堆栈名称旁边显示 NESTED,则该堆栈为嵌套堆栈。您只能在该嵌套堆栈所属的根堆栈上更改终止保护。在根堆栈上更改终止保护:
登录到 AWS Management Console 并打开 AWS CloudFormation 控制台 https://console.aws.amazon.com/cloudformation
。 -
在屏幕顶部的导航栏中,选择您的 AWS 区域。
-
选择想要设置的嵌套堆栈。
-
在 Stack info (堆栈信息) 窗格中,在概述部分中,选择作为根堆栈列出的堆栈名称。
CloudFormation 会显示根堆栈的堆栈详细信息。
-
依次选择 Stack actions (堆栈选项)、Edit termination protection (编辑终止保护)。
CloudFormation 会显示编辑终止保护对话框。
-
选择 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":"*" }] }