https://aws.amazon.com/jp/cloudtrail/
クラウドトレイルは、AWSの操作履歴を記録するサービスで
現在はデフォルトで全リージョン有効になっています。
保管する理由
有効期限が90日間となっていて、以降のログは自動的に削除してしまうため
以降も保持できるようS3などに保管して置くのがより良いです。
保管時に合わせて確認したい
・S3のライフサイクルでGlacierに移すことで課金を多少抑えられる
・保存先バケットやオブジェクトは削除不可のポリシを全ユーザに設定する
(監査担当のみ読み取り可能にしておくなど)
追加課金が必要だができること
・S3のオブジェクトに対するAPI経由のGet/Putログを取得できる
ほぼ同等機能としてS3のアクセスログがあり、そちらと比較すると・・・。
より優れている点
最大15分程度の遅延でログ出力できる
データロストの心配がない
悪い点
とくに思い当たりません
※インターネット経由のパブリックアクセスでもログは出ます
・リソース登録/更新のふるまい監視ができる(CloudTrailInsights)
https://aws.amazon.com/jp/blogs/news/announcing-cloudtrail-insights-identify-and-respond-to-unusual-api-activity/
参考
CloudTrailのログ例(S3のオブジェクトをGetしたものを一部抜粋)
パブリックアクセスはCloudTrailのログは出ないと思っていたが入るようです
# public access
"userIdentity":{
"type":"AWSAccount",
"principalId":"",
"accountId":"ANONYMOUS_PRINCIPAL"
}
# console access
"userIdentity":{
"type":"AssumedRole",
"principalId":"user:user",
"arn":"arn:aws:sts::accountid:assumed-role/admin/user",
"accountId":"accountid",
"accessKeyId":"user",
"sessionContext":{
"sessionIssuer":{
"type":"Role",
"principalId":"user",
"arn":"arn:aws:iam::accountid:role/admin",
"accountId":"accountid",
"userName":"user"
}
S3のアクセスログとCloudTrailのログのフォーマット差分
S3のアクセスログの配信が来ないため比較できません・・・。
のちほど配信が来たら追記いたします。
GuardDutyの検知
今回検証目的でCloudTrailの監査ログ停止やS3のパブリックアクセスブロックを無効にしたところ、インシデントとして上がりました。