AWS CloudTrail
AWS アカウント内の API 呼び出しを自動記録し、誰がいつ何をしたかを追跡できる監査・セキュリティサービス
概要
AWS CloudTrail は、AWS アカウント内で発生するすべての API アクティビティをイベントとして記録するサービスです。マネジメントコンソールの操作、CLI コマンド、SDK 経由の呼び出し、他の AWS サービスからの内部呼び出しまで、あらゆる操作が記録対象になります。デフォルトで過去 90 日間の管理イベントを無料で閲覧でき、S3 バケットへの長期保存や CloudTrail Lake によるクエリ分析も可能です。セキュリティインシデントの調査、コンプライアンス監査、運用トラブルシューティングの基盤として、ほぼすべての AWS 環境で有効化されています。
3 種類のイベントと記録コストの設計
CloudTrail が記録するイベントは管理イベント、データイベント、Insights イベントの 3 種類に分類されます。管理イベントは IAM ポリシーの変更、EC2 インスタンスの起動・停止、S3 バケットの作成など、リソースの管理操作を記録し、無料枠で 90 日間閲覧できます。データイベントは S3 オブジェクトの GetObject/PutObject や Lambda 関数の Invoke など、リソース内のデータ操作を記録しますが有料です。アクセス頻度の高い S3 バケットでは読み取り操作だけで大量のイベントが発生し、月額数百ドル規模のコストになるため、監査対象を機密データのバケットに絞り込む設計が重要です。Insights イベントは API 呼び出しパターンの異常 (通常の 10 倍の API コールなど) を自動検出し、不正アクセスの早期発見に役立ちます。
CloudTrail Lake による SQL ベースの調査
CloudTrail Lake は、イベントログを SQL で直接クエリできる分析機能です。従来は S3 に保存したログを Athena で分析する構成が一般的でしたが、CloudTrail Lake ではイベントデータストアに最大 7 年間のイベントを保持し、専用の SQL エンジンで即座に検索できます。Azure の Activity Log が Log Analytics ワークスペースへの転送と KQL (Kusto Query Language) による分析を必要とするのに対し、CloudTrail Lake は追加のインフラ構築なしで監査クエリを実行できる点が手軽です。AWS セキュリティの関連書籍 (Amazon) で監査設計のベストプラクティスを学べます。
EventBridge 連携によるリアルタイム検知
CloudTrail の実務活用で特に効果が高いのが、EventBridge との連携によるリアルタイム通知です。セキュリティグループのルール変更、IAM ポリシーの変更、ルートアカウントのログインなど、セキュリティ上重要な API 呼び出しをトリガーに SNS 通知や Lambda による自動修復を実行できます。たとえば、S3 バケットのパブリックアクセスが有効化された瞬間に Lambda で自動的にブロックする構成は、多くの組織で採用されています。インシデント調査では、CloudTrail Lake で該当時間帯の API 呼び出しを SQL クエリし、どの IAM エンティティがどの IP アドレスからどのリソースにアクセスしたかを特定する流れが標準的です。