You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否应为重要Terraform资源新增deletion_protection属性以增强删除防护?

Terraform资源防误删机制解析

1. prevent_destroy的核心局限性

  • prevent_destroy是Terraform客户端层面的生命周期属性,只有当资源在配置文件中存在时,才能阻止terraform destroy或资源替换时的销毁动作。
  • 一旦资源被意外从配置中移除,Terraform会把它标记为待销毁,此时原配置里的prevent_destroy已经失效,完全拦不住销毁操作。

2. 云厂商的deletion_protection是通用机制吗?

这是云厂商普遍采用的服务端级别的防误删方案,和prevent_destroy属于不同维度的防护:

  • 这类属性(比如AWS的aws_rds_cluster.deletion_protection、GCP的google_sql_database_instance.deletion_protection)是直接绑定在云资源本身的,哪怕Terraform配置里删了该资源,只要服务端的删除保护没关,云厂商会直接拒绝销毁请求。
  • 部分资源甚至默认开启保护,比如GCP的google_bigquery_table新版本默认deletion_protection = true,必须显式设为false并执行terraform apply更新资源属性后,才能发起销毁。

3. 其他可用的防误删方案

除了上面两种核心机制,还有这些补充手段:

  • 状态文件锁:启用Terraform工作区状态锁,避免多人并行操作时的误修改,但没法直接阻止配置移除后的销毁。
  • 云厂商IAM策略:给重要资源加特定标记(比如resource_critical: yes),然后配置IAM策略拒绝删除带有该标记的资源,从权限层面加固防护。
  • 配置审查工具:用tflint、checkov这类工具扫描配置,及时发现是否意外移除了带prevent_destroy的资源,提前规避失误。

内容的提问来源于stack exchange,提问作者Robert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 12:18:09