ログ取り込み時にマスキングする方法

公開日
2016-10-11
最終更新日
2016-10-11
バージョン
ログ取り込み時にマスキングする方法
概要
ログ取り込み時にマスキングする方法
参考情報
内容

ログデータを取り込む際にtransforms.confでマスクをかけて、個人情報などを匿名化することが出来ます。

特定の文字列をマスキングする場合、REGEX※1でマスキング対象の前後を挟むような形で正規表現を指定し、FORMAT※2でマスクキングの出力形式を指定します。その後DEST_KEYで_rawを指定して、データの上書きを行います。

※1.REGEXとはログデータにかける正規表現を指定します。

※2.FORMATとは追加したい任意のフィールド名または値を含むイベントの出力形式を指定します。

※3.DEST_KEYとはFORMATの結果を反映させる対象を指定します。

<データ例>

"2006-09-21, 02:57:11.58", 122, 11, "Path=/LoginUser Query=CrmId=ClientABC&ContentItemId=TotalAccess&SessionId=3A1785URH117BEA&Ticket=646A1DA4STF896EE&SessionTime=25368&ReturnUrl=http://www.clientabc.com, Method=GET,IP=209.51.249.195,Content=", ""

<設定例>

--------------------
props.conf
--------------------
[対象ソースタイプ名]
TRANSFORMS-anonymize = anonymizer
--------------------
transforms.conf
--------------------
[anonymizer]
REGEX = (?m)^(.*)SessionId=\w+(\w{4}[&"].*)$
FORMAT = $1SessionId=##$2
DEST_KEY = _raw

<マスク結果>

...SessionId=3A1785URH117BEA...

...SessionId=##7BEA...

Splunkの正規表現はPerl正規表現を利用しています。

Splunkで利用できる正規表現につきましては、以下のドキュメントをご参考ください。

https://docs.splunk.com/Documentation/Splunk/6.3.2/Knowledge/AboutSplunkregularexpressions#Character_types

※(?m)は複数行モードで正規表現を実行します。

※(.*)は任意の文字の繰り返しにマッチします。

※設定例の正規表現ではログデータの行頭から"SessionId="までと"SessionId="後の&の前4文字以降にマッチします。

以上