CloudTrail SerDe - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

CloudTrail SerDe

Amazon CloudTrail是一个记录Amazon针对 Amazon Web Services 账户的 API 调用和事件。CloudTrail 会生成加密日志并将其存储在 Amazon S3 中。您可以使用 Athena 从 Amazon S3 直接查询这些日志,指定LOCATION的日志。

要在 Athena 中查询 CloudTrail 日志,请从日志创建表,并使用 CloudTrail SerDe 反序列化日志数据。

除了使用 CloudTrail SerDe 外,实例存在于您需要使用不同的 SerDe 或从 JSON 中提取数据的地方。CloudTrail 日志中的某些字段是可能具有可变数据格式(这取决于服务)的 STRING 值。因此,CloudTrail SerDe 无法预先对其进行反序列化。要查询以下字段,请确定数据模式,然后使用不同的 SerDe,例如 OpenX JSON SerDe。或者,要将数据移出这些字段,请使用 JSON_EXTRACT 函数。有关更多信息,请参阅从 JSON 中提取数据

  • requestParameters

  • responseElements

  • additionalEventData

  • serviceEventDetails

SerDe 名称

CloudTrail SerDe

库名称

com.amazon.emr.hive.serde.CloudTrailSerde

Examples

以下示例对一组虚构的日志使用 CloudTrail SerDe,以创建基于它们的表。

在本示例中,字段 requestParametersresponseElementsadditionalEventData 作为在 JSON 中使用的 STRUCT 数据类型的一部分而包括进来。要从这些字段中获取数据,请使用 JSON_EXTRACT 函数。有关更多信息,请参阅从 JSON 中提取数据

CREATE EXTERNAL TABLE cloudtrail_logs ( eventversion STRING, userIdentity STRUCT< type:STRING, principalid:STRING, arn:STRING, accountid:STRING, invokedby:STRING, accesskeyid:STRING, userName:STRING, sessioncontext:STRUCT< attributes:STRUCT< mfaauthenticated:STRING, creationdate:STRING>, sessionIssuer:STRUCT< type:STRING, principalId:STRING, arn:STRING, accountId:STRING, userName:STRING>>>, eventTime STRING, eventSource STRING, eventName STRING, awsRegion STRING, sourceIpAddress STRING, userAgent STRING, errorCode STRING, errorMessage STRING, requestParameters STRING, responseElements STRING, additionalEventData STRING, requestId STRING, eventId STRING, resources ARRAY<STRUCT< ARN:STRING, accountId:STRING, type:STRING>>, eventType STRING, apiVersion STRING, readOnly STRING, recipientAccountId STRING, serviceEventDetails STRING, sharedEventID STRING, vpcEndpointId STRING ) ROW FORMAT SERDE 'com.amazon.emr.hive.serde.CloudTrailSerde' STORED AS INPUTFORMAT 'com.amazon.emr.cloudtrail.CloudTrailInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://cloudtrail_bucket_name/AWSLogs/Account_ID/';

以下查询将返回 24 小时的时间段内发生的登录数:

SELECT useridentity.username, sourceipaddress, eventtime, additionaleventdata FROM default.cloudtrail_logs WHERE eventname = 'ConsoleLogin' AND eventtime >= '2017-02-17T00:00:00Z' AND eventtime < '2017-02-18T00:00:00Z';

有关更多信息,请参阅 。查询Amazon CloudTrail日志