AWS CloudTrailは各種APIイベントのアクティビティをデフォルトで90日分記録する。AWSアカウントの操作をロギングします。管理コンソール、コマンドライン、3rdParty等、APIコールされるすべてのイベントが対象。また、CloudWatch Logsに送る事が出来ます。管理イベントについては、AWSアカウントのリージョン別にS3に保存、Lambdaに送ることが出来ます。監査等でも利用され、AWSを使う上で必須の機能と言っても過言ではないです。AWS CloudTrailは無料。
以下、一連の設定作業はIAMポリシーのAdministratorAccessをアタッチしたIAMグループに所属するAdministratorsグループのユーザーで行っています。
CloudTrailの証跡はイベントタイプが以下の3種類となる。データイベントは必然的にS3保存もしくはLambdaに送る(双方同時も可能)となります。
CloudWatchロググループを作る、CloudTrailの「証跡の作成」という手順になります。IAMロール(IAMポリシー)もS3も「証跡の作成」の中で命名しながらほとんど自動で作られるため、事前に作成する必要はありません。作られたS3バケットやIAMロール(IAMポリシー)は作成後に中身チェックしておくことを強くお勧めします。
IAMポリシーは、「ユーザーによる管理」で「CloudTrailPolicyForCloudWatchLogs_ランダム文字列」というIAMポリシー名で自動的にIAMポリシーがIAMロール(CloudTrailRoleForCloudWatchLogs)にアタッチされています。
IAMロールの「信頼されたエンティティ(ユースケース)」はID プロバイダー cloudtrail.amazonaws.comになっています。「信頼されたエンティティ(ユースケース)」が定番のEC2ではないということに気を付けてください。
S3のcloudtrail-logs-s3bucket-001バケットのAWSLogsフォルダのアカウントIDフォルダ内でリージョン別にgzファイルの証跡を確認できれば完了です。S3 SELECTでjsonファイルにSQLでjsonファイル検索出来ることを確認してみてください。