初歩的な内容を書いていきます。
どんなことが出来るのかな?
CloudTrailって?
概要
AWSサービスの1つで、アクティビティ(イベント)の追跡が出来ます。例えば、次のような操作履歴を取得することが出来ます。
- 任意EC2の変更
⇒誰が停止させたいか、など。 - セキュリティグループの変更
⇒誰がどのように変更したか、など。
ここでいう「イベント」は、「AWS マネジメントコンソール」「AWS CLI」「AWS SDK と API」 で実行されたアクションが含まれる。デフォルトは無料で90日分を保存することが出来ます。
監査とかの関係で、こうしたイベントログは超重要です。システム運用上、5年とか7年残すことが必須となっているケースも多いのではないでしょうか。
>90日以上残すためには?
証跡を有効にすれば、S3バケットに保存することが出来ます。この場合、S3バケットの保存コストが別途かかりますね。S3バケットにはJSON形式で定期的にイベントログが保存されていきます(日付でフォルダ分けあり)。
恐らく、ほとんどの場合、イベントログは残して終わりってパターンが多いですが、Athenaを使えば、簡単にS3バケット上のJSONを読み込んでSQLを実行して任意結果を取得可能です(詳細は割愛)。
データイベント
証跡を有効にしつつ、オプションで「データイベント」と呼ばれるログを取得することも可能です(コストは別途かかります)。
- Amazon Simple Storage Service (Amazon S3) のオブジェクトレベル API アクティビティ (GetObject、DeleteObject、PutObject API オペレーションなど)
- AWS Lambda 関数呼び出しアクティビティ (InvokeFunction API オペレーションなど)
- テーブルに対する Amazon DynamoDB オブジェクトレベルの API アクティビティ (PutItem、DeleteItem、UpdateItem API オペレーションなど)
結果はイベント履歴画面では確認できません。S3バケットを読みだして確認となります。
使う使わないは運用規定にもよると思いますが、データイベントも組み合わせれば、抜け漏れなしで記録できちゃいます。
イベント履歴の例(任意EC2の操作)
ここでは簡易的にイベント履歴の触り方を残します。
リソース名を選択して「インスタンスID」を入力すれば、該当インスタンスに関する操作履歴を確認できる。これで誰が停止させたのか、起動させたのかもわかります。
他にユーザー名を選択して「ユーザID」を入力すれば、該当のユーザが、どんなサービスで何をしたのかってのも確認出来ます。悪いことはできませんな。だからこそ、しっかり証跡をとって長期間保存したほうが良いってことです。
※IAMサービスに「アクセスアドバイザー」では、各サービスに対するアクセス履歴を確認できますけど、イベント履歴ではもっと高度に確認出来ます。
まとめ
CloudTrailについて書きました。
- イベント履歴が取れます。
- 証跡を有効にするとS3に長期間保存出来ます。
- オプションでデータイベントを取ることも出来ます。
最後までお読みいただきありがとうございました。
コメント