如何在CloudWatch日志洞察中获取S3 DeleteObjects操作的对象路径?
解决S3 DeleteObjects操作在CloudWatch日志中获取对象路径的问题
DeleteObjects的请求参数结构和GetObject不同:GetObject的对象路径直接存在requestParameters.key字段,但DeleteObjects的待删除对象列表是嵌套在requestParameters.objects数组中的,每个数组元素包含一个key字段。要获取DeleteObjects操作的对象信息,需要调整日志查询语句来解析这个数组结构。
方案1:将多对象键拼接为单字段展示
适合快速查看单次DeleteObjects操作删除的所有对象,用逗号分隔多个键:
fields @timestamp, eventName, case eventName when "GetObject" then requestParameters.key when "DeleteObjects" then array_join(requestParameters.objects[*].key, ", ") end as objectKeys | filter eventName in ["DeleteObjects", "GetObject"] | sort @timestamp desc
方案2:将多对象拆分为单独日志条目
让DeleteObjects的每个对象都生成一条独立日志,和GetObject的条目格式保持一致,便于后续统计或筛选:
fields @timestamp, eventName, case eventName when "GetObject" then requestParameters.key when "DeleteObjects" then obj.key end as objectKey | filter eventName in ["DeleteObjects", "GetObject"] | unnest requestParameters.objects as obj | sort @timestamp desc
内容的提问来源于stack exchange,提问作者amol mandwale
相关产品推荐
相关产品推荐

