简体   繁体   English

Logstash 过滤器 - 屏蔽 json 数据中的秘密/替换特定键值

[英]Logstash filter - mask secrets in json data / replace specific keys values

I have some JSON data sent in to my logstash filter and wish to mask secrets from appearing in Kibana.我有一些 JSON 数据发送到我的 logstash 过滤器,并希望隐藏秘密以防止出现在 Kibana 中。 My log looks like this:我的日志如下所示:

{
    "payloads":
    [
        {
            "sequence": 1,
            "request":
            {
                "url": "https://hello.com",
                "method": "POST",
                "postData": "{\"one:\"1\",\"secret:"THISISSECRET",\"username\":\"hello\",\"secret2\":\"THISISALSOSECRET\"}",
            },
            "response":
            {
                "status": 200,
            }
        }
    ],
...

My filter converts the payloads to payload and I then wish to mask the JSON in postData to be:我的过滤器将有效载荷转换为有效载荷,然后我希望将 postData 中的 JSON 屏蔽为:

"postData": "{\"one:\"1\",\"secret\":\"[secret]\",\"username\":\"hello\",\"secret2\":\"[secret]\"}"

My filter now looks like this:我的过滤器现在看起来像这样:

if ([payloads]) {
  split {
    field => "payloads"
    target => "payload"
    remove_field => [payloads]
  }
}

# innetTmp is set to JSON here - this works

json {
  source => "innerTmp"
  target => "parsedJson"
  if [parsedJson][secret] =~ /.+/ {
    remove_field => [ "secret" ]
    add_field => { "secret" => "[secret]" }
  }
  if [parsedJson][secret2] =~ /.+/   {
    remove_field => [ "secret2" ]
    add_field => { "secret2" => "[secret]" }
  }
}

Is this a correct approach?这是正确的方法吗? I cannot see the filter replacing my JSON key/values with "[secret]" .我看不到过滤器将我的 JSON 键/值替换为"[secret]"

Kind regards /K亲切的问候/K

The approach is good, you are using the wrong field方法很好,你用错了字段

After the split the secret field is part of postData and that field is part of parsedJson.拆分后,secret 字段是 postData 的一部分,该字段是 parsedJson 的一部分。

  if [parsedJson][postData][secret]  {
    remove_field => [ "[parsedJson][postData][secret]" ]
    add_field => { "[parsedJson][postData][secret]" => "[secret]" }
  }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM