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

AWS预算超支后如何停止组织单元(OU)内的服务?

AWS预算超支后停止OU内所有运行服务的实现方案

一、仅靠AWS Budget能不能实现?

不行。AWS Budget自带的操作只能指定单个或特定的EC2、RDS实例执行停止,没法直接对整个组织单元(OU)下的所有资源批量操作——就像你试过的那样,只能手动选择具体实例,覆盖不了OU范围内的全部资源。

二、可行的替代方法

方法1:AWS Budgets + Lambda + AWS Organizations API

这是最常用的落地方式,步骤如下:

  1. 创建AWS Budget并设置超支阈值,触发告警时通过SNS主题发送通知。
  2. 编写Lambda函数订阅该SNS主题,函数逻辑包含:
    • 调用listAccountsForParent API获取目标OU下的所有账号。
    • 遍历每个账号,调用对应服务的API停止运行中资源:比如EC2用describeInstances筛选运行实例,再调用stopInstances执行停止;RDS用describeDBInstances+stopDBInstance处理,以此类推。
    • 注意:Lambda需要配置跨账号访问权限,可通过IAM角色信任策略或组织内的SCP实现。

方法2:AWS Budgets + EventBridge + Systems Manager Automation

  1. 当AWS Budget触发超支告警时,通过EventBridge规则触发Systems Manager自动化文档。
  2. 自定义自动化文档实现:
    • 拉取目标OU下的所有账号。
    • 针对每个账号,执行停止EC2、RDS等运行中资源的步骤。
    • 借助Systems Manager的跨账号执行能力,无需编写复杂Lambda代码。

方法3:AWS Control Tower + 自定义告警动作

如果你的环境基于AWS Control Tower管理:

  • 在Control Tower中为目标OU设置预算规则。
  • 结合Control Tower的生命周期事件,触发自定义Lambda函数批量停止OU内资源。

注意事项

  • 确保执行停止操作的IAM角色权限充足:需具备访问Organizations的权限,以及跨账号停止EC2、RDS等资源的权限。
  • 建议先在测试OU中验证方案,避免误停止生产环境资源。
  • 可扩展逻辑:比如停止前给管理员发送通知,或排除特定关键资源不执行停止操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 13:45:01