New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
如何在 Amazon Athena 中自动创建表以搜索 AWS CloudTrail 日志?
我想搜索大量 AWS CloudTrail 日志。为了避免错误,我不想手动创建 Amazon Athena 表。
解决方法
使用 CloudTrail 控制台自动创建 Athena 表。有关更多信息,请参阅使用 Amazon Athena 搜索 AWS CloudTrail 日志。
创建 Athena 表
1.打开 CloudTrail 控制台,然后从导航窗格中选择跟踪记录。记下 S3 存储桶名称。
2.在导航窗格中,选择事件历史记录,然后选择创建 Athena 表。
3.打开在 Amazon Athena 中创建表窗口中的存储位置菜单,然后选择包含 CloudTrail 日志文件的 Amazon Simple Storage Service(Amazon S3)存储桶。
注意:使用 Athena 对 CloudTrail 日志进行分区投影,您可以提高单个 AWS 区域中特定时间范围内的搜索性能。
4.选择创建表。
5.选择转至 Athena。
**注意:**您可能会收到错误“Your account does not have sufficient permissions to create tables in Amazon Athena”。 如果收到此错误,请按照添加 AWS Identity and Access Management(IAM)策略(控制台)中的说明附加 AmazonAthenaFullAccess 托管策略。
您可以针对您的日志使用以下一项或多项示例查询。将 your_athena_tablename 替换为您的 Athena 表名称,并将 access_key_id 替换为您的 20 个字符的访问密钥。您的访问密钥通常以字符 AKIA 或 ASIA 开头。
运行 Athena 查询
1.打开 Athena 控制台,选择新查询,然后选择对话框以清除示例查询。
2.输入您的查询,然后选择运行查询。
显示特定访问密钥的所有记录的 AWS API 活动
SELECT eventTime, eventName, userIdentity.principalId FROM your_athena_tablename WHERE userIdentity.accessKeyId like 'access_key_id'
确定您的 EC2 实例的所有安全组更改
SELECT eventname, useridentity.username, sourceIPAddress, eventtime, requestparameters FROM your_athena_tablename WHERE (requestparameters like '%sg-5887f224%' or requestparameters like '%sg-e214609e%' or requestparameters like '%eni-6c5ca5a8%') and eventtime > '2017-02-15T00:00:00Z' order by eventtime asc;
显示过去 24 小时内的所有控制台登录信息
SELECT useridentity.username, sourceipaddress, eventtime, additionaleventdata FROM your_athena_tablename WHERE eventname = 'ConsoleLogin' and eventtime >= '2017-02-17T00:00:00Z' and eventtime < '2017-02-18T00:00:00Z';
显示过去 24 小时内所有失败的控制台登录尝试
SELECT useridentity.username, sourceipaddress, eventtime, additionaleventdata FROM your_athena_tablename WHERE eventname = 'ConsoleLogin' and useridentity.username = 'HIDDEN_DUE_TO_SECURITY_REASONS' and eventtime >= '2017-02-17T00:00:00Z' and eventtime < '2017-02-18T00:00:00Z';
确定 CloudTrail 每月成本增长情况
SELECT eventName,count(eventName) AS NumberOfChanges,eventSource FROM your_athena_tablename WHERE eventtime >= '2019-01-01T00:00:00Z'and eventtime < '2019-01-31T00:00:00Z' GROUP BY eventName, eventSource ORDER BY NumberOfChanges DESC
**注意:**eventtime 定义值限制为一个月。要获取多个月份的结果,请运行其他查询。
确定缺少的 IAM 权限
SELECT count (*) as TotalEvents, useridentity.arn, eventsource, eventname, errorCode, errorMessage FROM your_athena_tablename WHERE (errorcode like '%Denied%' or errorcode like '%Unauthorized%') AND eventtime >= '2019-10-28T00:00:00Z' AND eventtime < '2019-10-29T00:00:00Z' GROUP by eventsource, eventname, errorCode, errorMessage, useridentity.arn ORDER by eventsource, eventname
如果结果未显示失败的 API 调用,则通过类似于下面这样的方法扩大查询范围:
SELECT count (*) as TotalEvents, useridentity.arn, eventsource, eventname, errorCode, errorMessage FROM your_athena_tablename WHERE errorcode <> '' AND eventtime >= '2019-10-28T00:00:00Z' AND eventtime < '2019-10-29T00:00:00Z' GROUP by eventsource, eventname, errorCode, errorMessage, useridentity.arn ORDER by eventsource, eventname
相关信息
相关内容
- AWS 官方已更新 1 年前
- AWS 官方已更新 3 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 3 年前