Partner SA 酒徳です。本日のやってみようシリーズは、Splunk Cloudを使ったCloudTrailの取り込み、分析になります。Spunk Appsを使った取り込みについてSCSK西岡様にご説明頂きます。
みなさん、こんにちは。SCSKの西岡です。Splunk Cloudの使い方Part3では、AWS Cloud Trailを取得する方法をご紹介させていただきます。さらには、AWS用のSplunk Appsを用いて、簡単にそして迅速に分析を始めることができる方法もご紹介いたします。
サービス・製品の説明と特徴
- Splunk Cloudは、業界をリードするマシンデータ分析プラットフォームのSplunk EnterpriseをSaaS形式でご利用いただくことができるサービスです。クラウド、オンプレミス環境問わず、テクノロジーインフラ、セキュリティーシステム、及びビジネスアプリケーションから生成されるあらゆるマシンデータを、簡単に収集、分析、アクションすることができます。
- Splunk Cloudは稼働率100%のSLAをご提供します。1日数GBのデータ収集から始め、10TB以上の収集規模にまでスケール可能であり、SOC2 Type2やISO 27001認定(*)取得済みの高度にセキュアな環境で安心してデータ分析を実施していただけます。
(*)http://www.splunk.com/view/splunk-achieves-iso-27001-certification-for-splunk-cloud/SP-CAAAPGG
設定(構築)する内容
Part2ではサンプルログを取り込み、Webサーバ(Apache)のaccess.logやOS(Linux)のsecure.logといった複数のデータを使って相関分析を行いました。加えて、外部ファイルとの連携(ルックアップ)ができるところまでご紹介いたしました。
今回は、AWSのCloud TrailをSplunk Cloudにて取得し、簡単にそして迅速に分析を始められるSplunk Appsをご紹介させていただきます。Part1をご参照いただき、Splunk Cloudへのログインが完了していることを前提に、Part3の操作方法をご紹介していきます。
Cloud Trailのログを取得するために、AWS上にて環境設定を行います。
- CloudTrailを有効化
- CloudTrail用のS3バケットを作成(CloudTrail設定画面にて)
- SNS Topicを作成(CloudTrail設定画面にて)
- SQSを作成し、作成したSNS Topicとキューを紐づけ(SNS Subscriptionsにて)
- 作成したSQSにて、SNS Topicからアクセスできるように、権限を付与
- CloudTrail、S3等へのアクセス可能なユーザを作成
1. まずはSplunk Cloudへログイン
2. Splunk Apps 「Splunk Add-on for AWS」のインストール
「Splunk Add-on for AWS」をインストールすると、AWSログの取得設定をSplunkのWebブラウザから行うことができます。まずは、このAppsをインストールしていきます。ホーム画面にて、Appの横に表示されたギアマークをクリックします。
「他のAppを参照」をクリックすると、インストールするAppを選択する画面へ遷移します。
App一覧画面の検索欄にて「AWS」と入力すると、AWSに関連するAppsが表示されます。今回導入するAppsは「Splunk Add-on for Amazon Web Services」です。早速インストールボタンをクリックしてみましょう!
インストール実行の前にログインアカウント名とパスワードを入力します。入力が完了したら、「Login and Install」をクリックします。
インストール作業はたったこれだけで完了です!「完了」ボタンをクリックすると、ホーム画面が表示されます。
正常に「Splunk Add-on for AWS」がインストールされました。
3. CloudTrailの取得設定
手順2にてインストールしたAppsを用いて、CloudTrailの取得設定を行います。全て、Webブラウザ上からの設定が可能です!まずは、ホーム画面にてAppsのアイコンをクリックします。
「Create an account」ボタンをクリックし、AWSアカウントの設定を行っていきます。
Configuration画面にて、「Create New Account」ボタンをクリックします。
事前のAWS環境設定にて作成した、S3やCloudTrailにアクセス可能なアカウント情報を入力していきます。入力する項目は、①アカウント名、②Key ID、③Secret Key、④Regionの4項目です。入力後、「Add」ボタンをクリックします。
正常にアカウントが作成されると、下図のように表示されます!AWSのアカウント設定が完了しましたので、ようやく、Part3の本題、CloudTrailの取得設定を行っていきます!
「Inputs」タブから「Create New Input」ボタンをクリックします。プルダウンメニューから「CloudTrail」選択してください。
Nameには、任意の名前を入力してください。AWS AccountとAWS Regionはそれぞれプルダウンメニューから該当するものを選択します。
続けて、Templatesタブをクリックし、AWSの環境設定で作成したSQSのキュー名を、プルダウンメニューから選択します。
Settingsタブでは、デフォルトで数の値が設定されていますので、必要に応じて変更して下さい。「Create」ボタンをクリックし、CloudTrailログ取得設定は完了となります!
正常に取込設定が完了した場合、下図のように表示されます!
ここまでが、AWSのログを取り込むためのAppsのインストール、取込ログ設定のご紹介でした。では早速、取り込んだCloudTrailを分析してみましょう!
4. CloudTrailを分析してみよう!その①
CloudTrailはAWSの操作履歴を記録しています。まずは、EC2のインスタンスを消した人を、Splunkを用いて追跡したいと思います。
下記のサーチを実行し、インスタンスを削除した人、時間、対象インスタンスを追跡してみましょう!
|
|
sourcetype="aws:cloudtrail" eventName=TerminateInstances userName=*
|table _time userName requestParameters.instancesSet.items{}.instanceId
|rename userName as "削除ユーザ" requestParameters.instancesSet.items{}.instanceId as "インスタンス"
|
|
このサーチ文では、AWSのCloudTrailから、eventNameがTerminateInstancesであるログに絞ります。インスタンス削除行為があったログですね。そして、Splunkのtableコマンドを使って、削除時間、削除ユーザ、対象インスタンスを一覧表示しています。さらに、renameコマンドを使うと表示名を日本語に変えることができます。入力した検索文はたったこれだけです。
EC2インスタンスの削除操作が素早く検知できました。
5. CloudTrailを分析してみよう!その②
次は、CloudTrailのログを用い、各インスタンスの稼働時間を分析してみます。下記のサーチ文を実行すると、起動時間と停止時間から稼働時間を算出することができます。今回ご紹介するコマンドはtransactionコマンドです。特定のフィールドをキーに、同じ値が出力されているイベントは、グループ化して表示します。
このサーチ文では、インスタンス名のフィールド、「responseElements.instancesSet.items{}.instanceId」でグループ化しているので、あるインスタンスに紐づくイベントはグループ化され、1つのイベントとして表示されます。
|
|
sourcetype="aws:cloudtrail" eventName=StartInstances OR eventName=StopInstances
|mvexpand responseElements.instancesSet.items{}.instanceId
|eval starttime=if(eventName="StartInstances",eventTime,null)
|eval endtime=if(eventName="StopInstances",eventTime,null)
| transaction startswith=StartInstances endswith=StopInstances maxevents=2 "responseElements.instancesSet.items{}.instanceId"
| convert timeformat="%Y-%m-%dT%H:%M:%SZ" mktime(*time)
|eval acttime=endtime-starttime
| eval actTime=tostring(acttime,"duration")
|convert timeformat="%Y-%m-%dT%H:%M:%SZ" ctime(*time)
| table starttime endtime actTime responseElements.instancesSet.items{}.instanceId
|rename actTime as "稼働時間" starttime as "起動時間" endtime as "停止時間"
responseElements.instancesSet.items{}.instanceId as "インスタンス名"
|
|
インスタンスごとに、起動時間、停止時間、稼働時間を表示させることができ、使用状況を素早く確認することができますね。このように、一度Splunkにログを取り込んでしまえば、様々なコマンドを用いて統計情報を出すことができます。
まとめ
Part3はいかがでしたでしょうか?今回はAWSのCloudTrailを分析してみよう!ということで、AWS用のAppsをご紹介いたしました。AWS上でログ出力設定を行うだけで、簡単にAWSのログを取り込み、分析を始めることができました。
SplunkのAppsは今回のようにログの取込設定がフォーマット化されているものもあれば、ダッシュボードのテンプレート用Appsもあります。もちろん、AWSのダッシュボードテンプレート用Appsも無償でダウンロードすることができるので、次回Part4では早速、このAppsをインストールしていきたいと思います。またCloudTrailだけではなく、S3やCloudWatchなど、AWSからは様々なログが出力されているので、これらのログも取り込んでいきたいと思います。
参考情報
世界中のお客様の、セキュリティ分析、ビジネス業務分析、ITオペレーション分析などのSplunk Cloud活用事例は以下サイトをご参照下さい。
http://www.splunk.com/en_us/customers.html#filter/filter1/CloudSolutions
Splunk Cloudは1日に取込むデータ量に応じた課金体系となっています。
http://www.splunk.com/en_us/products/pricing.html#tabs/cloud
[email protected]
03-5166-2826
- SCSKでは、Splunk導入に関する設計、構築、サポート等トータルサービスをご提供いたします。業種問わず様々なお客様への幅広い導入実績から、ニーズに合った最適なサービスをご提案させていただきます。
また、サポート体制も整っておりますので、導入後の運用もご安心下さい。
お気軽に上記お問い合わせ先までご連絡下さい。
****
OpsJAWS メインページはこちら。
クラウド運用にご興味ある方は、こちらからOpsJAWSに登録ください。