用途
AWS Cost Audit 用于对真实 AWS 账户进行成本审计,目标包括:归因每一美元支出、发现浪费、生成有证据支撑的节省计划,并附带置信度与可逆、受控的操作建议。它面向 Claude Code,通过调用 AWS CLI 工作,默认只读。
核心原则
技能强调“铁律”:
- 绝不使用未验证的价格。任何单价、月成本或“节省 X 美元”都必须同时来自用户所在区域的实时单价(AWS Price List Query API 或服务定价页)和用户实际用量(Cost Explorer / CUR)。必须展示:单价 → 计算 → 来源。禁止在技能、脚本或报告中硬编码价格。
- 归因每一美元,否则写“未知”。每个资源需说明成本、用途、所属应用/仓库、创建者(CloudTrail)、创建时间、最后使用时间(CloudWatch / 访问日志 / 最后调用)。无法确定时写“未知,无法验证”,不得编造。
- 除非证明未使用 + 可逆 + 已测试 + 100% 确定,否则不执行破坏性操作。否则只作为建议。
- 单一探测不能成为全舰队事实。需跨资源/区域展开检查,并由独立怀疑者从主源重新推导每个关键结论。
- 每个发现都携带证据。输出契约:当前 $/月 → 之后 $/月 → 节省 $ → 置信度(高/中/低)+ 证据 + 可逆性。总额分为“现在可安全节省”(高置信、可逆、已测试)与“最大理论节省”。
工作流程
按顺序执行:
- 实时重新基线:确认身份(aws sts get-caller-identity),拉取 Cost Explorer 总额、按服务、按区域、按用量类型、每日、90 天趋势与预测。
- 清点每个区域与服务:循环 aws ec2 describe-regions,扫描各服务,优先运行托管检测器(Cost Optimization Hub、Compute Optimizer、Trusted Advisor)。
- 将每个资源分类为 KEEP / OPTIMIZE / SAFE-TO-DELETE,并为每一美元提供理由。
- 构建节省模型,按输出契约逐项列出。
- 实时验证价格 + 怀疑者复核:每个金额由独立检查从实时价格源与实际用量重新推导。
- 受控修复:仅高置信、可逆、已测试、确定的项目可自动运行,且需执行器 → 验证器 → 回滚门。其他均为标注建议。
- 交付:通俗语言报告、可选 HTML 仪表板、健康/监控视图、预算与异常检测护栏。最后做完整性检查:“哪些区域/服务/成本驱动未检查?”必须为空。
自动执行 vs 建议
决策流程:
- 是否由实时证据(多信号,30–90 天)证明未使用?否/不确定 → 仅建议。
- 是否可逆(快照/备份/版本控制/先分离)?否 → 仅建议。
- 是否在干跑中测试且 100% 确定影响范围?否 → 仅建议。
- 是 → 可通过执行器 → 验证器 → 回滚自动运行。
不可逆操作(释放 EIP、删除快照/AMI、终止实例、购买 Savings Plan/RI)永不自动运行,始终需要人工明确签字。
高 ROI 检查示例
- 未关联的弹性 IP:aws ec2 describe-addresses(无 AssociationId),破坏性(丢失 IP)。
- 未附加的 EBS 卷:aws ec2 describe-volumes --filters Name=status,Values=available,先快照。
- gp2 → gp3:describe-volumes --filters Name=volume-type,Values=gp2,低风险可逆。
- 旧快照/AMI:describe-snapshots --owner-ids self; describe-images --owners self,破坏性。
- NAT 数据处理:describe-nat-gateways + CloudWatch bytes;CE by usage-type,路由变更。
- 空闲 ALB/NLB、空目标组:elbv2 describe-load-balancers + describe-target-health,破坏性。
- 合理调整:compute-optimizer get-*-recommendations,需重启窗口。
- Savings Plans / RI 缺口:ce get-savings-plans-coverage / -utilization,承诺不可逆。
- S3 生命周期 / 分段上传:s3api get-bucket-lifecycle-configuration, list-multipart-uploads,过期具破坏性。
- CloudWatch 保留:aws logs describe-log-groups(缺少 retentionInDays = 永不),设置可逆。
- 跨区域幽灵资源:循环上述检查。
- 缺失护栏:ce get-anomaly-monitors, budgets describe-budgets,无风险。
示例:未附加的 EBS 卷
- 检测(只读):aws ec2 describe-volumes --region "$REGION" --filters Name=status,Values=available --query 'Volumes[].{id:VolumeId,gb:Size,type:VolumeType,created:CreateTime,az:AvailabilityZone}'
- 归因:查询标签、CloudTrail 创建事件、CloudWatch VolumeReadOps 最后使用信号。
- 实时验证价格:aws pricing get-products --service-code AmazonEC2 --region us-east-1 --filters "Type=TERM_MATCH,Field=productFamily,Value=Storage" "Type=TERM_MATCH,Field=volumeApiName,Value=gp3" "Type=TERM_MATCH,Field=regionCode,Value=$REGION" --query 'PriceList' --output text,解析每 GB-月 USD 费率。节省 $/月 = 实时 $/GB-月 × 预置 GB。
发现形状:100 GB gp3 卷,available(已分离),无标签 → 所有者未知。创建者/创建时间/最后使用:未知,早于 CloudTrail 窗口;VolumeReadOps 90 天为 0 → 强未使用信号。成本现在 → 之后:实时 gp3 $/GB-月 × 100 → $0。节省:该数字。置信度:高。证据:上述三条命令。可逆性:先快照再删除(可恢复)。结论:作为建议 SAFE-TO-DELETE;仅在快照 + 干跑 + 签字后自动运行。
适用场景
适用于希望审计、理解、减少或优化 AWS 账单或云成本的用户,寻找闲置、未使用或孤立资源,进行合理调整,以及需要证据支撑的节省计划。
限制
- 面向 Claude Code,依赖 AWS CLI。
- 默认只读;任何变更均受门控。
- 不可逆操作永不自动运行。
- 价格与用量必须实时验证,不得凭记忆。
- 无法确定的信息标注“未知”。
- 具体收费、价格、平台支持等未在资料中提供。