AWS CloudTrail 入門 ​

AWSを利用する上で、セキュリティとガバナンスの要となるのが AWS CloudTrail です。 「誰が」「いつ」「どのリソースに対して」「何をしたか」をすべて記録します。

CloudTrail とは? ​

CloudTrailは、AWSアカウントに対するAPI呼び出しを記録するサービスです。 マネジメントコンソールでの操作、AWS CLIでのコマンド実行、SDKを使ったプログラムからの操作など、ほとんどすべてのアクションがログとして残ります。

なぜ CloudTrail が必要なのか? ​

  1. セキュリティ調査: 不審な操作があった場合、誰がやったのかを特定できます。
  2. コンプライアンス: 「ログを保存していること」自体が多くの監査要件(GDPR, SOX, HIPAAなど)で求められます。
  3. トラブルシューティング: 「昨日まで動いていたのに動かなくなった」場合、誰かが設定を変更した履歴を追えます。

CloudTrail の基本概念 ​

1. イベントの種類 ​

CloudTrailが記録するログ(イベント)には主に3つの種類があります。

イベント種類説明課金
管理イベント (Management Events)「リソースの作成・変更・削除」などの管理操作。
例: RunInstances (EC2起動), CreateBucket (S3作成), AttachUserPolicy (権限付与)
最初の1コピーは無料
データイベント (Data Events)リソース「内」でのデータ操作。頻度が高いためデフォルトOFF。
例: S3の GetObject, Lambdaの Invoke, DynamoDBの PutItem
有料
Insights イベント (Insights Events)通常のAPI利用パターンから逸脱した異常なアクティビティ。
例: APIエラーの急増、リソース作成数のスパイク
有料

2. 証跡 (Trail) ​

ログを継続的にS3バケットやCloudWatch Logsに配信するための設定です。 現在は、証跡を作成しなくても過去90日間の管理イベントは「イベント履歴」から確認できますが、90日以上の保存や分析を行うには証跡の作成(またはCloudTrail Lakeの利用)が必須です。

ベストプラクティス構成 ​

マルチアカウント環境 (AWS Organizations) の場合 ​

AWS Organizationsを使用している場合、「組織の証跡 (Organization Trail)」 を管理アカウント(または委任された管理者)で作成することを強く推奨します。

  • メリット: 全メンバーアカウントのログを1つのS3バケットに集約できます。
  • セキュリティ: メンバーアカウントの管理者は、勝手にログ記録を停止できません。

シングルアカウントの場合 ​

「マルチリージョン証跡」を有効にし、すべてのリージョンのログを取得するように設定しましょう。普段使っていないリージョンでの不正利用に気づくために重要です。

次のステップ ​

ログをただ貯めるだけでは意味がありません。実際にデータを分析し、セキュリティを強化する方法を学びましょう。