この記事は公開から1年以上が経過しています。内容が古い場合があるのでご注意下さい。

CloudTrailは、マネージメントコンソールやコマンドラインインターフェイス、APIなどから操作した内容を記録できる機能で、先日amazonから発表されたばかりの新機能です。

主な特徴は、以下です

  • 記録データは、gz形式のファイルとして、S3に保存されます。
  • 2013年12月時点では、バージニア北部とオレゴンのリージョンのみで利用可能です。

それでは早速使ってみます。

CloudTrailの設定

バージニア北部か、オレゴンのリージョンに移動します。 次に、マネジメントコンソールでCloudTrailの設定をします。 何も設定がなければ、こんな画面が出ます。
aws_cloudtrail_try01

次に、記録データを保存するS3バケットを作ります。(S3の画面に行かずに作れます)
aws_cloudtrail_try02

「Advanced」をクリックすると、SNS通知するかどうかといった設定ができます。(今回はデフォルトです)
aws_cloudtrail_try03

上記で、「Subscribe」をクリックすると、以下の画面になり、これで完了です。
aws_cloudtrail_try04

S3に移動すると、指定したバケット以下にフォルダが日別に作成されていて、gz形式のファイルが作られていきます。
このファイルの中に操作記録が保存されています。
aws_cloudtrail_try05

ログの中身

インスタンスを停止した場合

ログはjson形式なので、以下のようにjqコマンドを使って見てみます。

# zcat XXXXXXXXXXXX_CloudTrail_us-west-2_20131203T0800Z_bdQukEghMRDVOY3Y.json.gz | jq "."
(中略)
       "requestParameters": {
         "force": false,
         "instancesSet": {
           "items": [
             {
               "instanceId": "i-XXXXXXXX"
             }
           ]
         }
       },
(中略)
       "eventTime": "2013-12-03T07:15:37Z",
       "eventSource": "ec2.amazonaws.com",
       "eventName": "StopInstances",
       "awsRegion": "us-west-2",
       "sourceIPAddress": "XXX.XXX.XXX.XXX",
       "userAgent": "EC2ConsoleBackend"
     },

これを簡単に説明すると、以下の様な感じです。(と思います。。。)

(中略)
       "requestParameters": {                   (*)--リクエスト
         "force": false,
         "instancesSet": {
           "items": [
             {
               "instanceId": "i-XXXXXXXX"       (*)--←対象インスタンスID
             }
           ]
         }
       },
(中略)
       "eventTime": "2013-12-03T07:15:37Z",     (*)--処理時刻
       "eventSource": "ec2.amazonaws.com",
       "eventName": "StopInstances",            (*)--インスタンスの停止命令
       "awsRegion": "us-west-2",                (*)--リージョン
       "sourceIPAddress": "XXX.XXX.XXX.XXX",    (*)--アクセスIP
       "userAgent": "EC2ConsoleBackend"
     },

インスタンスタイプを変更した場合

(中略)
       "requestParameters": {
         "instanceType": {
           "value": "c3.large"
         },
         "instanceId": "i-XXXXXXXX"
       },
(中略)
           "eventTime": "2013-12-03T07:26:34Z",
           "eventSource": "ec2.amazonaws.com",
           "eventName": "ModifyInstanceAttribute",
           "awsRegion": "us-west-2",
           "sourceIPAddress": "XXX.XXX.XXX.XXX",
           "userAgent": "EC2ConsoleBackend" },

これを簡単に説明すると、以下の様な感じです。(と思います。。。)

(中略)
       "requestParameters": {                           (*)--リクエスト
         "instanceType": {
           "value": "c3.large"                          (*)--c3.largeを指定
         },
         "instanceId": "i-XXXXXXXX"
       },
(中略)
           "eventTime": "2013-12-03T07:26:34Z",         (*)--時間
           "eventSource": "ec2.amazonaws.com",
           "eventName": "ModifyInstanceAttribute",      (*)--属性の更新
           "awsRegion": "us-west-2",
           "sourceIPAddress": "XXX.XXX.XXX.XXX",        (*)--アクセスIP
           "userAgent": "EC2ConsoleBackend" },

分かったこと

中身を眺めていて、基本的な構造としては、「requestParameters」で処理したいリクエストが発行されて、次に「eventName」にある処理が実施される、という形かなーという感じです。 またS3へは5分程度、後で出力されます。

CloudTrailの停止

ロギングをやめる場合は、CloudTrailのマネジメントコンソールから、「Turn off」するだけです。
※作成したS3のBucketは必要に応じて消しておきます。 ここで「Turn off」をクリックします。

aws_cloudtrail_try06

「Continue」をクリックします。
aws_cloudtrail_try07

以下のようになって、完了です。
aws_cloudtrail_try08

参考にしたサイト:サーバーワークス エンジニアブログ AWSの操作履歴を記録するCloudTrailを試してみた

関連記事:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です