CloudTrailは、マネージメントコンソールやコマンドラインインターフェイス、APIなどから操作した内容を記録できる機能で、先日amazonから発表されたばかりの新機能です。
主な特徴は、以下です
- 記録データは、gz形式のファイルとして、S3に保存されます。
- 2013年12月時点では、バージニア北部とオレゴンのリージョンのみで利用可能です。
それでは早速使ってみます。
CloudTrailの設定
バージニア北部か、オレゴンのリージョンに移動します。 次に、マネジメントコンソールでCloudTrailの設定をします。 何も設定がなければ、こんな画面が出ます。
次に、記録データを保存するS3バケットを作ります。(S3の画面に行かずに作れます)
「Advanced」をクリックすると、SNS通知するかどうかといった設定ができます。(今回はデフォルトです)
上記で、「Subscribe」をクリックすると、以下の画面になり、これで完了です。
S3に移動すると、指定したバケット以下にフォルダが日別に作成されていて、gz形式のファイルが作られていきます。
このファイルの中に操作記録が保存されています。
ログの中身
インスタンスを停止した場合
ログは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」をクリックします。
「Continue」をクリックします。
以下のようになって、完了です。
参考にしたサイト:サーバーワークス エンジニアブログ AWSの操作履歴を記録するCloudTrailを試してみた
関連記事:
- jqコマンドをCentOSで使う
jqはのsedやawkのように、JSON用データをフィルタリングしたり置き換えなどの整形ができるコマ… - AWS re:Invent 2013における新サービスのまとめ
2013年11月のAWSの「AWS re:Invent 2013」にて、続々と新しいサービスが発表さ… - Amazon VPC NAT Gatewayを使ってみた
NAT Gatewayの基本的な使い方を確認してみます。 ほぼ下記の記事の通りですが、自分で試したメ…


