AWS CloudTrailのまとめ(初心者向け)
CloudTrailは、AWSアカウント内で発生するすべてのAPIコールとイベントを自動的に記録するサービスです。
セキュリティインシデントの分析、監査(Audit)、ガバナンス(Governance)、コンプライアンス(Compliance)に非常に有効です。
CloudTrailの概要
- AWSアカウント作成時にデフォルトで有効化されている
- コンソール、CLI、SDK、他のAWSサービスからのAPIコールを記録
- 記録されたログの保存先:
- CloudTrailコンソール
- CloudWatch Logs
- Amazon S3
- デフォルトで90日間保存(長期保存にはS3連携が必要)
- すべてのリージョンのイベントを一元管理可能(グローバルトレイルの作成が可能)
CloudTrailのイベントタイプ
1. 管理イベント(Management Events)
リソースの作成・削除・変更などの操作に関するイベント。デフォルトで有効化されています。
種類 | 説明 | 例 |
---|---|---|
読み取り(Read) | リソースの状態確認のみ |
ListUsers , DescribeInstances
|
書き込み(Write) | リソースの変更を伴う操作 |
DeleteTable , TerminateInstances
|
2. データイベント(Data Events)
S3オブジェクトやLambda関数の実行など、詳細な操作のイベント。デフォルトでは無効であり、必要に応じて有効化します(コストに注意)。
リソース | 例 |
---|---|
S3 |
GetObject , PutObject , DeleteObject
|
Lambda |
InvokeFunction (関数呼び出し) |
3. インサイトイベント(Insights Events)
異常なAPIコールパターンを検出する機能。別途有効化と課金が必要です。
例:
- APIコールの急増
- サービス制限の超過
- 保守作業の不足
- 不審なリソースプロビジョニング
CloudTrailとの統合サービス
EventBridgeとの連携
特定のAPIイベントにリアルタイムで対応可能。アクションに対してSNS通知やLambda実行が可能です。
例:
- DynamoDBのDeleteTable → SNSで通知
- IAMのAssumeRole → 管理者に通知
- セキュリティグループの変更(AuthorizeSecurityGroupIngress) → アラート送信
CloudWatch Logsとの連携
CloudTrailのログをCloudWatch Logsにストリーミングし、メトリクスフィルター+アラームで監視を実現します。
例:
- EC2インスタンス終了イベントのフィルタリング
- IAMログイン失敗の検出
- APIコールの頻度を基にしたアラームの設定
CloudTrailログの保存構成(S3連携)
- 5分ごとにS3へログを配送
- デフォルト暗号化:SSE-S3、オプションでSSE-KMS
- ライフサイクルポリシーでIAやGlacierへの移行が可能
- 以下のようなセキュリティ強化が可能:
- オブジェクトロック
- MFAによる削除防止
- ログ完全性検証機能(改ざん検知)
組織単位のトレイル(Organization Trail)
AWS Organizations利用時に、管理アカウントから全メンバーアカウントのイベントを一元管理可能。
- トレイルは管理アカウントで作成(メンバーアカウントでは不可)
- すべてのOU(運用、開発など)のイベントを収集
- S3バケットの保存パスに各アカウントのIDが含まれる
- IAMロールまたはS3バケットポリシーでクロスアカウントアクセスを制御可能
各ログ配送方式の反応速度比較
方法 | 特徴 | 反応速度 |
---|---|---|
EventBridge | イベントベースのトリガー | 約1分以内 |
CloudWatch Logs | ログベースの監視、メトリクス分析 | 数分の遅延可能性あり |
S3 | 長期保存、Athena分析向き | 約5分〜数分単位の遅延 |