1. 确保用户拥有 AmazonS3FullAccess 和 AmazonAthenaFullAccess 权限。
2. 创建专用 S3 存储桶(如 cloudtrail-logs-
3. 登录 AWS CloudTrail 控制台,创建新跟踪(Trail)。
名称:athena-cloudtrail-demo
日志存储位置:选择上一步创建的 S3 存储桶。
启用多区域日志记录(可选,根据需求)。
等待 15 分钟,确保日志开始写入 S3。
本次采用AWS Console界面完成作业。 示例2,显示在特定时间段内发送 GET 对象请求的所有请求者
注意:根据项目的具体情况,可以采用不同的实施方法。比如使用命令行(CLI)部署、代码部署 (CloudFomation、Terraform等)、以及其它开发语言(SDK)完成作业。
步骤一:在 Athena 中创建表
1. 进入 CloudTrail 控制台,导航至 Event history。
2. 点击 Run advanced queries in Amazon Athena,自动跳转至 Athena 控制台。
3. 选择存储日志的 S3 路径(如 s3://cloudtrail-logs-
4. 点击 Create table,Athena 会自动生成表结构(基于 CloudTrail 的 JSON 格式)。
步骤二:执行查询分析
示例1,显示在特定时间段内发送 PUT 对象请求的所有请求者
SELECT bucket_name, requester, remoteip, key, httpstatus, errorcode, requestdatetime
FROM s3_access_logs_db.mybucket_logs
WHERE operation='REST.PUT.OBJECT'
AND timestamp
BETWEEN '2024/01/29'
AND '2024/01/30'
LIMIT 100;
SELECT bucket_name, requester, remoteip, key, httpstatus, errorcode, requestdatetime
FROM s3_access_logs_db.mybucket_logs
WHERE operation='REST.GET.OBJECT'
AND timestamp
BETWEEN '2024/01/29'
AND '2024/01/30'
LIMIT 100;
1. 检查返回的数据是否符合预期(如时间范围、事件类型)。
2. 使用 LIMIT 子句限制结果集大小,避免高额查询费用。
3. 在 Athena 控制台查看 Query history,监控扫描数据量及费用