福岡オフィス勤務の渡辺です。
今回はAWSの監査サービスであるCloudTrailの基本的な見方を説明していきます。
CloudTrailはデフォルト有効なため、すぐに使えます。
とはいえ、実は見たことなかったという方も多いのでは無いでしょうか。
CloudTrailとは
AWS CloudTrail は、AWS アカウントのガバナンス、コンプライアンス、運用監査、リスク監査を可能にするサービスです。 CloudTrail を使用すると、AWS インフラストラクチャ全体でアカウントアクティビティをログに記録し、継続的に監視し、保持できます。CloudTrail では、AWS マネジメントコンソール、AWS の SDK やコマンドラインツール、その他の AWS のサービスを使用して実行されるアクションなど、AWS アカウントアクティビティのイベント履歴を把握できます。このイベント履歴により、セキュリティ分析、リソース変更の追跡、トラブルシューティングをより簡単に実行できるようになります。
https://aws.amazon.com/jp/cloudtrail/
ということらしいです。 CloudTrailではイベント履歴と証跡情報という2つの項目があるのですが、少し違いがわかりにくいので、その区別を今回はできるようになれればと思います。
ダッシュボード
まず、マネージメントコンソールのCloudTrailの画面に行ってみましょう。
すると、ダッシュボードが表示されます。
いきなりですが、ダッシュボードに特筆すべきところはありません。
ログが5つ表示されていますが、これはイベント履歴の最新5件が表示されているだけです。
「じゃあ、イベント履歴って何?」ということで、イベント履歴のページに行ってみます。
イベント履歴に行くには、画面下の すべてのイベントを表示 または左サイドの イベント履歴 をクリックします。
イベント履歴
私の検証用アカウントの画面ですが、デフォルトではこんな感じです。
どんなイベントが発生したかわかりますか?
わかりやすいイベントを2つほどピックアップしてみました。
- ① rootユーザーがコンソールにログイン(ConsoleLogin)したのがわかります。
- ② rootユーザーがEC2インスタンスを停止(StopInstances)したのがわかります。
例えば、何か不穏な動作をした時に、「誰か何かやったのかな?」という調査に使えそうです。
イベント履歴で、どんなイベントが記録されるの?
CloudTrail の [Event history] 機能では、管理イベントのみサポートされています。すべての管理イベントがイベント履歴に表示されるわけではありません。
https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html#logging-management-events
例えば、イベント履歴に表示されないのは、以下のようなイベントです。
- データイベント(S3バケットへのオブジェクトのPut・Get等)は非表示。
- 単なる情報表示(Describe)系は管理イベントだけど、非表示。
各サービスによって異なるので、私も細かいところはなかなか把握できていないのですが、下記リンク先に記載あります。
イベント履歴に表示が出ない場合は確認してみるといいと思います。
イベント履歴で、どのくらいの期間保存されるの?
イベント履歴は90日間保存されます。(昔は7日間だったようです。)
イベント履歴で、もっと詳細な情報を見たいんだけど?
一覧画面で表示する項目を増やすことができます。
▶︎ボタンをクリックで詳細画面が見えます。
イベント履歴をダウンロードできる?
CSV、またはJSONフォーマットでダウンロードできます。
あと、ついでにフィルターもできます。
証跡情報
さて、イベント履歴だけで上記のように素晴らしい監査ができているのですが、欠点もいくつか見えてきました。
その欠点を補うために証跡情報を使います。 なお、証跡情報はS3バケットに下記のような感じで約5分間隔で保存されます。
証跡情報のメリット1. 保存期間が無限
証跡情報は、S3に保存されるため、保存期間はS3の設定に依存します。
90日を超えて保存したい場合は、証跡情報の設定をするといいと思われます。
証跡情報のメリット2. データイベントも記録できる
下記のようなイベントも記録できます。
・Amazon S3 オブジェクトレベルの API アクティビティ (例: GetObject、 DeleteObject、 PutObject API オペレーション)
・AWS Lambda 関数の実行アクティビティ (Invoke API)
https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html#logging-data-events
なお、デフォルトではデータイベント記録は無効なので、有効にするには設定が必要です。
証跡情報のメリット3. CloudWatch Logsへ配信できる
CloudWatch Logsへ配信し、特定のイベント発生時などにSNSで通知ができます。
おわりに
CloudTrailのイベント履歴と証跡情報の違いわかりましたか?
個人的には「すべての管理イベントがイベント履歴に表示されるわけではありません。」が非常にわかりにくいと感じました。
また、「イベント履歴」と「証跡情報」という日本語も違いがわかりにくいと感じました。 とはいえ、監査といった面では大変有効なサービスなので、活用していきたいところです。