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

AWS CDK:处理因依赖ENIs导致的安全组删除失败问题

CDK栈销毁失败:安全组因残留ENIs无法删除

问题现象

  • 销毁包含Lambda函数和安全组的CDK栈时,触发EC2安全组DependencyViolation错误,提示安全组存在依赖对象(未被自动清理的Elastic Network Interface,即ENIs)
  • 即便Lambda函数已被成功删除,残留的ENIs仍绑定在目标安全组上,导致安全组删除失败
  • 该问题为偶发,但一旦出现,重试栈销毁操作无法解决

错误日志示例:

staging-msk-client-example-producer-stack | 5:51:27 AM | DELETE_FAILED        | AWS::EC2::SecurityGroup     | st... resource sg-0e6dbe0f6acf80e32 has a dependent object (Service: AmazonEC2; Status Code: 400; Error Code: DependencyViolation; Request ID: 1989aad9-1921-45d3-a413-d6179c4cc5e6; Proxy: null)

临时解决办法

当栈销毁在删除Lambda后进入失败状态时,手动清理残留ENIs:

  1. 登录AWS控制台,进入EC2服务的「网络接口」页面
  2. 筛选出与报错安全组ID关联的ENIs
  3. 选中目标ENIs,执行「删除」操作
  4. 重新触发CDK栈的销毁操作

长期规避思路

目前CDK原生暂未提供自动清理这类残留ENIs的机制,可尝试以下方案规避:

  • 在CDK代码中为Lambda函数添加销毁前钩子,显式清理其关联的ENIs(需注意Lambda ENIs的生命周期逻辑,避免误删)
  • 调整栈内资源的销毁顺序,通过dependsOn或自定义逻辑,确保安全组的删除操作在Lambda相关资源完全清理后执行
  • 编写自动化脚本,定期检查并清理账号内无主的残留ENIs

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 04:21:03