如何防止生产账户中的CloudWatch日志组被误删除?
保护CloudWatch日志组防止被删除的解决方案
方法1:IAM权限硬限制
- 给所有操作日志组的IAM实体(用户、角色、组)移除
logs:DeleteLogGroup权限,关键场景用拒绝策略兜底——就算其他权限允许删除,拒绝策略会优先生效。 - 要是用AWS组织,直接在服务控制策略(SCP)里加全局限制,示例规则:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "logs:DeleteLogGroup", "Resource": [ "arn:aws:logs:你的区域:你的账户ID:log-group:受保护日志组1:*", "arn:aws:logs:你的区域:你的账户ID:log-group:受保护日志组2:*" ], "Principal": "*" } ] } - 注意:管理员账户也得限制,除非你确定必须留删除权限。
方法2:开启日志组的删除保护属性
- 控制台直接找目标日志组的设置,打开“删除保护”开关;用CLI的话执行这条命令:
aws logs put-retention-policy --log-group-name 你的受保护日志组 --retention-in-days 365 --deletion-protection - 开启后,任何人删这个日志组都会被拒,除非先关闭删除保护——这一步也能通过IAM权限锁死,禁止修改该日志组的
PutRetentionPolicy操作。
方法3:加审计告警兜底
- 用CloudTrail记录所有
DeleteLogGroup操作,给受保护日志组的删除请求设CloudWatch告警,一旦触发就发通知。 - 也可以用EventBridge规则监控这类事件,匹配受保护日志组的ARN,触发SNS消息或者临时锁权限的自动化操作。
内容的提问来源于stack exchange,提问作者SLS
相关产品推荐
相关产品推荐

