如何清理混乱的 AWS 账户:分步云卫生指南
由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!
“清洁的云更安全,成本也更低。”——Duckbill Group首席云经济学家Corey Quinn
目录
- 介绍
- 为什么 AWS 账户会变得混乱
- AWS 清理步骤清单
- 第一步:识别无人认领或孤立资源
- 步骤二:审核 IAM 用户、角色和访问密钥
- 步骤 3:清理旧的安全组
- 步骤 4:删除未使用的负载均衡器和目标组
- 步骤 5:检查 S3 存储桶是否存在风险和浪费
- 步骤 6:删除未使用的 EBS 卷、快照和 AMI
- 步骤 7:评估旧版 Lambda 函数和层
- 步骤 8:修复 CloudWatch 日志和保留策略
- 步骤 9:审核证书和域名配置
- 第十步:审核账单、费用异常及隐性收费
- 自动化:如何避免未来出现混乱
- 增强 AWS 安全性的工具
- 关键数据与行业洞察
- 常见问题解答
- 要点总结
- 结论
1. 引言
AWS 使团队能够快速构建,但这种速度往往是以牺牲长期的良好状态为代价的。
临时环境永远不会被删除,IAM 用户会一直存在多年,S3 存储桶会堆积如山却无人认领,CloudWatch 日志会悄无声息地增长,直到你被账单吓一跳。
每个DevOps工程师最终都会接手一个混乱的AWS账户。
本指南将引导您完成高级工程师和云顾问使用的安全、系统且实用的清理流程。
2. 为什么 AWS 账户会变得混乱
没有哪个团队会故意制造混乱,混乱的发生是由于以下原因自然而然的:
- 多个团队部署资源,但缺乏所有权。
- 缺乏强制性标签
- 废弃的概念验证和测试环境
- 工程师离开公司时没有留下任何清理工作。
- 自动伸缩组遗留卷和 ENI
- 在 IaC 之外进行手动配置
- CloudWatch 保留策略默认设置不佳
- 被遗忘的负载均衡器、证书和快照
- 持续部署会增加工件和版本
混乱的 AWS 账户会影响安全性、成本、可靠性和合规性,但可以通过清理来解决。
3. AWS 清理步骤清单
以下是对每个主要清理领域的深入而实用的分析。
(这是本文的核心价值。)
步骤 1:识别无人认领或孤立资源
以下是 AWS 中最常见的“幽灵”资源:
- EBS 卷已从 EC2 分离
- 未关联任何内容的弹性 IP 地址
- 老款ENI
- 53号公路的记录指向虚无
- 无所有者的 S3 存储桶
- 已弃用的 CloudWatch 日志组
- 旧版 AMI 和快照
- Lambda 层和版本与活动服务无关
提示:
首先进行标签审核,找出所有缺失的资源:
- 姓名
- 所有者
- 环境
- 项目
- 成本中心
这有助于提高所有权透明度,并加快清理决策。
步骤二:审核 IAM 用户、角色和访问密钥
“身份安全是任何安全云的基础。”——CyberArk身份安全报告指出,
IAM混乱是AWS中最危险的问题之一。
清单:
- 删除不活跃的 IAM 用户
- 无需多因素身份验证即可移除控制台密码
- 轮换使用超过 90 天的访问密钥。
- 删除未使用的 IAM 角色
- 移除内联策略
- 撤销与旧应用/合作伙伴的信任关系
- 删除早已遗忘的服务帐户
- 强制执行最小权限策略
- 移除日常用户的管理员权限
身份和访问管理(IAM)管理不善是导致安全事件的主要原因之一。
步骤 3:清理旧的安全组
安全组会随着时间的推移自然而然地增多,并导致:
- 重复规则
- 空/未使用的SG
- 不安全 0.0.0.0/0 次暴露
- 引用已删除的 ENI 的规则
- 遗忘的测试标准
SG 清理工作能立即改善安全状况。
步骤 4:删除未使用的负载均衡器和目标组
即使闲置,这些设备也需要耗电。
常见例子:
- 没有监听器的ALB
- 目标群体注册目标数量为零
- 测试期间创建的 NLB
- 自动扩缩容部署创建了重复的负载均衡器
- 旧式经典负载均衡器 (CLB)
大多数团队没有意识到,闲置的负载均衡器每个每月要花费 18 到 30 美元。
步骤 5:检查 S3 存储桶是否存在风险和浪费
S3很快就会变得混乱。
检查清单:
- 公共存储桶访问权限审查
- 启用静态数据加密
- 删除不完整的分段上传文件
- 应用生命周期策略
- 删除旧版本
- 删除过期的日志和存档
- 确保公共存储桶中不包含敏感文件。
- 删除与已弃用应用程序关联的存储桶
S3 是安全漏洞的常见入口点,因此安全防护至关重要。
步骤 6:删除未使用的 EBS 卷、快照和 AMI
AWS浪费的最大来源之一:
- 分离的 EBS 卷
- 旧版 CI/CD 作业创建的快照
- 来自已停止部署的 AMI
- 旧版启动模板
- 未使用的 RDS 快照
- 一张旧的快照每月可能要花费 10 到 50 美元。清理这些快照通常可以节省 20% 到 40% 的月账单。
步骤 7:评估旧版 Lambda 函数和层
大多数团队都忘记了:
- 每次部署都会创建一个新版本
- 版本会不断累积
- 层层褪色,变得陈旧。
- 已分配的并发能力仍然有效
- 死信队列悄无声息地填满
清理 Lambda 可以减少混乱并提高冷启动的可预测性。
步骤 8:修复 CloudWatch 日志和保留策略
CloudWatch 是一个隐形的成本杀手。AWS
默认将日志保留期限设置为“永久”,因此日志会无限累积。
解决方法:
- 设置数据保留策略(通常为 30-90 天)
- 删除未使用的日志组
- 整合日志结构
- 移除与已删除 Lambda 函数关联的日志流
- 将不常用的日志归档到 S3
仅此一项清理工作就能降低 CloudWatch 成本 50-80%。
步骤 9:审核证书和域名配置
证书过期是导致服务中断的主要原因之一。
检查清单:
- 删除未使用的ACM证书
- 轮换即将到期(不足 30 天)的证书
- 移除旧的 Route 53 托管区域
- 请验证 DNS 记录是否正确
- 清理过时的子域名
- 移除测试域名
结果:减少停机次数,降低运营成本。
第十步:审核账单、费用异常及隐性收费
寻找:
- 未连接的 EIP
- NAT 网关流量很小
- 空闲的 RDS 实例
- 空闲的 OpenSearch 集群
- 没有读/写操作的 DynamoDB 表
- 旧版 CloudFront 发行版
- EKS节点组缩放至零不正确
- Elastic Beanstalk 环境仍在运行,你会惊讶于企业为这些“被遗忘的”基础设施支付了多少费用。
4. 自动化:如何避免未来出现混乱
只有满足以下条件,AWS 账户才能保持干净:
- 全公司范围的标签策略
- 使用 Terraform/CloudFormation 而不是点击控制台
- AWS Config 规则强制执行防护措施
- 计划清理任务(Lambda/Custodian)
- 自动漂移检测
- IAM 访问分析器
- 集中式仪表盘(Steampipe、CloudMapper)
- 持续的成本监控和云环境维护应该是每月例行工作,而不是每年才出现的恐慌。
5. 增强 AWS 安全性的工具
用于 AWS 清理的最佳工具:
- AWS Native Tools
- AWS 配置
- 值得信赖的顾问
- IAM 访问分析器
- 资源管理器
- 成本探索器
- 云径湖
- 安全中心
开源工具
- 云托管人 - 强制执行清理策略
- Prowler - 安全与合规性检查
- CloudMapper - 环境映射
- Steampipe - 跨 AWS 资源的 SQL 查询
这些工具使清理工作变成了一种可预测的工作流程。
6. 关键统计数据和行业洞察(附可靠来源)
- 37% 的云支出因资源闲置或过度配置而被浪费。——Flexera 2024 年云状态报告https://info.flexera.com/SLO-REPORT-State-of-the-Cloud-2024
- 90% 的组织机构由于身份和访问管理 (IAM) 管理不善而面临安全风险。—— CyberArk 2024 年身份安全威胁形势报告https://www.cyberark.com/resources/identity-security-threat-landscape-repor
- 未使用的 EBS 卷占 AWS 资源浪费的比例高达 25%。 - CloudZero AWS 成本分析https://www.cloudzero.com/blog/aws-cost-mistakes/
- 54% 的公司遭遇了因证书过期导致的服务中断。——Venafi 机器身份报告https://venafi.com/resources/
7. 常见问题解答
问:删除孤立资源安全吗?
答:可以,但如果不确定,请先创建快照。
问:应该多久进行一次清洁?
答:每月一次日常清洁+每季度一次深度审核。
问:应该先清理哪些服务?
答:先清理 IAM、EBS、S3 和 CloudWatch,它们的影响最大。
问:我应该自动化资源清理吗?
答:是的,但前提是必须先建立完善的标签和所有权机制。
要点总结
- AWS账户难免会变得混乱,清理工作必不可少。
- 未贴标签、无人认领的资源是最大的废物来源。
- IAM、EBS、SGs 和 CloudWatch 需要定期维护
- 证书和DNS维护可防止服务中断
- 自动化策略确保长期健康
- 良好的卫生习惯 = 降低成本 + 提高安全性 + 增强可靠性
9. 结论
云环境会像代码库积累技术债务一样积累垃圾。
混乱的 AWS 账户并非失败,而是增长、迭代和组织复杂性的标志。
关键在于建立一种云卫生文化:
- 定期审计
- 严格标记
- 最小特权
- 生命周期策略
- 尽可能实现自动化
干净的 AWS 环境可以提高安全性、成本效益、可靠性和开发人员的信心。
你的云平台就是生产环境,要像对待生产环境一样对待它。
作者简介: Nilesh 是AddWebSolution的首席 DevOps 工程师,专长于自动化、CI/CD 和云可扩展性。
文章来源:https://dev.to/addwebsolutionpvtltd/how-to-clean-up-a-messy-aws-account-a-step-by-step-cloud-hygiene-guide-20cd