はじめに
CloudTrailのログをCloudWatch Logsに連携しておくと、他のAWSサービスとの連携もスムーズに行えるので設定しておくことが推奨されます。今回はその方法をメモとして残しておきます。
参考:クラウド破産を回避するAWS実践ガイド - KOS-MOS - BOOTH
CloudWatch Logsとは
CloudWatch Logsはログマネジメントサービスで、あらゆるログを収集・保管・検索でき、他のAWSサービスとシームレスに連携できる。
CloudTrailとCloudWatch Logsの連携方法
CloudTrailからCloudWatch Logsへの配信を行う。CloudTrailダッシュボードの左ペインのメニューから [証跡情報] を選択し、作成した証跡をクリックする。
CloudWatch Logsの項目から [設定] をクリックする。
以下設定であることを確認して [次へ] をクリックする。
- 新規または既存のロググループ:CloudTrail/DefaultLogGroup
CloudTrailがCloudWatch Logsへアクセスする許可が求められるので、[許可] をクリックする。
💡:何をやっているかというとCloudTrailに対してCloudWatch Logsへのアクセスを許可するサービスロールを割り当てている模様。
参考:AWS サービスにアクセス許可を委任するロールの作成 - AWS Identity and Access Management
割り当てられるIAMポリシーは以下のとおり。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailCreateLogStream20141101", "Effect": "Allow", "Action": [ "logs:CreateLogStream" ], "Resource": [ "arn:aws:logs:ap-northeast-1:123456789012:log-group:CloudTrail/DefaultLogGroup:log-stream:123456789012_CloudTrail_ap-northeast-1*" ] }, { "Sid": "AWSCloudTrailPutLogEvents20141101", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:ap-northeast-1:123456789012:log-group:CloudTrail/DefaultLogGroup:log-stream:123456789012_CloudTrail_ap-northeast-1*" ] } ] }
💡:"123456789012" はAWSアカウントIDを表す。
検証が終わると、設定したロググループとIAMロールがそれぞれ表示される。
次にCloudWatch Logsの保持期間を設定する。
💡:CloudWatch Logsのデフォルトでは、ログが無制限で保存される。ログの保存にもコストがかかるので、ログの保持期間を設定しておくのがオススメ。
CloudWatchのダッシュボードに移動し、対象のロググループをクリックする。
💡:クラウド破産を回避するAWS実践ガイドでは古いダッシュボードのUIになっている。新しいUIでは [失効しない] をクリックできないので、ロググループ名をクリックする必要がある。
ロググループのアクションメニューから [保持設定を編集] をクリックする。
デフォルトでは [Never Expire] となっているので、プルダウンメニューから [2 weeks (14 days)] に変更、[Save] をクリックする。
⚠:保持期間を短くすると、古いログデータは完全に削除されるので注意。
以上