【運用】CloudTrailで取得した監査ログをElasticSearch Serviceで活用する【簡単設定】

2015.11.11

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

地味サービス大好きっ子の森永です。

CloudTrailのログ、活用できてますか。
私はできていません。

「活用しないログはただのログだ、いや、ただのコストだ」
昔の偉い人は言いました。(言ってません)

re:Inventの直前にElasticSearch Serviceが発表されました。
これだ。これが道だ。

ということで、無駄にためていたCloudTrailの監査ログをElasticSearch Serviceで活用できるようにするまでをまとめてみました。

構成

こんな感じです。

CT+CWL+ESS

まずは、CloudTrailのログをCloudWatch Logsに流し込みます。
そんでもってCloudWatch Logsに流し込まれたログをLambdaを使ってElasticSearch Serviceへ流し込みます。

いやーめんどくさそうですねー
Lambdaが出てきたあたりで諦めたくなった人もいらっしゃるかもしれません。

が!これめっちゃ簡単にできるんです!
早速やっていきましょう。

CloudTrailからCloudWatchLogsへ

CloudTrailにはCloudWatch Logsへログを流す機能が実はあるんです。
こちらの記事で使ってます。

CloudTrail管理画面の左ペインで「Configuration」を選択し、CloudTrailの設定画面を開きます。
「CloudWatch Logs」→「Configure」ボタンを押します。

cloudtrail-search01

「New or existing log group」にCloudWatch LogsのLog group名を指定します。
こちらは存在するものでもしないものでも構いません。(存在しなかったら新規に作成されます。)

cloudtrail-search02

「Continue」を押すとIAM Role作成画面に移ります。
こちらデフォルトのまま「Allow」でOKです。

cloudtrail-search24

これを設定するとCloudWatch Logsにログが流れ込みます。
はい、第一段階終了です。

cloudtrail-search03

CloudWatchLogsからElasticSearch Serviceへ

次にCloudWatchLogsからElasticSearch Serviceへログを流す設定をします。
ひとまず、こちらを参考にElasticSearchを構築して下さい。

cloudtrail-search05

構築できたらCloudWatch Logsの画面で先ほどCloudTrailのログを流しこんだLog groupを選択して、「Actions」→「Start Streaming to Amazon ElasticSearch Service」を選択します。

cloudtrail-search08

「Amazon ES cluster」で構築したElasticSearchを選択します。

cloudtrail-search09

「Lambda IAM Execution Role」でLambda用のIAMを設定します。
こちらについてもデフォルト設定で新規作成いただいて構いません。

cloudtrail-search10

「Log Format」で「AWS CloudTrail」を選択するだけでCloudTrailの形式に合わせて流し込んでくれます。

cloudtrail-search12

以上で2段階も終了です。なんて簡単なんだ!!!
Successの画面が出たら、Kibana3などへのリンクが出てきます。

cloudtrail-search14

Kibana3のダッシュボードテンプレートが用意されていますので使ってみましょう。

kibanaで活用してみる

kibana3

CloudTrail用のテンプレートをダウンロードしておきます。

Kibana3のリンクに飛び、右上のフォルダアイコン→「Advanced」→「Local File」でテンプレートファイルを選択します。
そうすると以下の様なダッシュボードが完成します。
設定したばっかであまり何もないですが、一瞬でこんなのが出てきます。

cloudtrail-search16

kibana4

kibana4でもログを見てみましょう。
Indexを指定しなければいけませんが、「cwl-*」のように指定しましょう。

cloudtrail-search17

cloudtrail-search18

kibana4の詳しい使い方は今回はしませんが、全てのAPIの呼び出し数をグラフで表示したり、アクセス元のSource IPを多い順に表示することも可能です。

cloudtrail-search19

cloudtrail-search20

勿論、検索して、欲しい情報を抜き出すことも出来ます!
これで何かあった時に調査する事ができますね!

cloudtrail-search25

最後に

いやー本当に簡単に設定することができました。
今回はCloudTrailのログを流しましたが、VPC Flow Logsなども流しこむことが出来ますので、全てのログをElasticSearch Serviceで活用する事ができますね。

kibana勉強します。