はじめに
- Splunkは安くない
- データには「高い価値で少量のデータ」、「低い価値で大量のデータ」が存在する
- でも、Splunkのスキーマオンザフライ技術はスゴイから、可能な限りデータはSplunkにもいれておきたい
- このニーズを解決するために製品の標準機能として生まれてきたIngestAction**
** 元々はHWFなどを使ってCLIで設定して実現していた機能がGUIでも設定できるようになった
やりたいこと
- 今回は以下要件を実現する設定を入れてみる
1. SysmonデータをすべてS3に保管
2. 特定イベントIDだけをフィルタして、それ以外のイベントIDをSplunkにindex
How to
AWS側の準備
-
IAM RollかKeyでアクセスできるようにIAMから設定
Splunk側の準備
-
SplunkのSingleインスタンス(SH兼IDX)を用意
-
[取り込みアクション]から設定
- Ingest Action用のDestinationを設定
- Destination Titleは適当に、S3 Buket NameとS3 Endpointを設定
- IAMユーザーのアクセスキーとシークレットキーをここで設定し、テスト接続を実施
- 「成功」したら、S3にテストデータが作成されればOK
- 続いてIngest Action用のRuleを設定
- Indexed Dataを選べば、今後indexされるデータを対象にルールが適用されることになります。すでに取り込み済みのデータは対象にはなりません
- まず「1. SysmonデータをすべてS3に保管」を実現するために、条件(なし)=すべて、データの送り先に先程作成したS3宛先の設定を選びます
- 続いて「2. 特定イベントIDだけをフィルタして、それ以外のイベントIDをSplunkにindex」を作成します。
- _rawデータを対象にして、「3」に該当するものをフィルタします
- 保存。と同時にIngestActionルールは開始されます。
結果
- 圧縮解凍すると、3に一致するデータも保管されています
- Splunkにindexされたデータを確認
- 見事に3に一致するデータだけindexされていません。それ以外はindexされています
ポイント
- ルールの設定の仕方が不安でしたが、そんなときに参考になったのは以下のsplunk lanternサイトでした