日志脱敏

最近更新时间:2024-09-09 18:25:11

我的收藏

场景描述

小王将日志采集到日志服务(Cloud Log Service,CLS),日志数据中含有用户 ID(dev@12345)、登录的 IP 地址(11.111.137.225)和手机号码(13912345678),小王想将这些敏感信息脱敏。

场景分析

该日志本身是一个结构化的日志,因此可以直接对字段进行脱敏处理。

原始日志

{
"Id": "dev@12345",
"Ip": "11.111.137.225",
"phonenumber": "13912345678"
}

DSL 加工函数

fields_set("Id",regex_replace(v("Id"),regex="\\d{3}", replace="***",count=0))
fields_set("Id",regex_replace(v("Id"),regex="\\S{2}", replace="**",count=1))
fields_set("phonenumber",regex_replace(v("phonenumber"),regex="(\\d{0,3})\\d{4}(\\d{4})", replace="$1****$2"))
fields_set("Ip",regex_replace(v("Ip"),regex="(\\d+\\.)\\d+(\\.\\d+\\.\\d+)", replace="$1***$2",count=0))

DSL 加工函数详解

1. Id 字段进行脱敏处理,结果为 dev@***45。
fields_set("Id",regex_replace(v("Id"),regex="\\d{3}", replace="***",count=0))
2. Id 字段进行二次脱敏处理,结果为**v@***45。
fields_set("Id",regex_replace(v("Id"),regex="\\S{2}", replace="**",count=1))
3. phonenumber 字段进行脱敏处理,将中间的4位数替换为****,结果为139****5678。
fields_set("phonenumber",regex_replace(v("phonenumber"),regex="(\\d{0,3})\\d{4}(\\d{4})", replace="$1****$2"))
4. IP 字段进行脱敏处理,将第二段替换为***,结果为11.***.137.225。
fields_set("Ip",regex_replace(v("Ip"),regex="(\\d+\\.)\\d+(\\.\\d+\\.\\d+)", replace="$1***$2",count=0))

加工结果

{"Id":"**v@***45","Ip":"11.***.137.225","phonenumber":"139****5678"}