0Pricing
Cloud & IT Cert Prep · 课时

基于 CloudTrail 数据构建表

定义架构,以便直接查询审计事件。

基于 CloudTrail 数据构建表 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。

为什么需要表

在告诉 Athena 如何读取原始 S3 文件之前,Athena 无法查询这些文件。表会将 S3 存储桶中的 CloudTrail JSON 文件映射到具有名称和类型的列。表创建后,CloudTrail 事件的丰富结构就可以通过普通 SQL 进行访问。

CloudTrail 日志结构

CloudTrail 以 JSON 格式传送事件,每条记录描述一次 API 调用,并包含 userIdentity、eventName、sourceIPAddress 和 requestParameters 等嵌套字段。表架构必须镜像这种嵌套结构,包括用于表示对象的 struct 类型,这样查询才能访问 userIdentity.arn 等字段。

使用 AWS 提供的 DDL

您不必手动编写架构。AWS 会发布适用于 CloudTrail 的标准 CREATE TABLE 语句,CloudTrail 控制台和 Athena 也可以为您生成该语句。使用 AWS 提供的 DDL 可以确保每个字段(包括深层嵌套字段)都得到正确映射,从而避免查询遗漏数据。

SerDe

SerDe(序列化器/反序列化器)用于告诉 Athena 如何解析每个文件。CloudTrail 表使用专为 CloudTrail JSON 布局设计的 SerDe,它能够识别 records 数组和嵌套结构。选择正确的 SerDe 至关重要;错误的 SerDe 会导致解析错误或列值为 null。

ROW FORMAT SERDE
  'com.amazon.emr.hive.serde.CloudTrailSerde'
STORED AS INPUTFORMAT
  'com.amazon.emr.cloudtrail.CloudTrailInputFormat'

指向 S3 位置

表的 LOCATION 子句指向 CloudTrail 存储日志的 S3 前缀,通常是包含账户 ID 和区域的路径。正确设置此前缀非常重要:范围过大会扫描无关数据,范围过小则会漏掉您想要查询的事件。

查询嵌套字段

创建表后,您可以使用点表示法查询嵌套字段,例如 userIdentity.arn 或 requestParameters.bucketName。SQL 函数可以帮助展开数组和 JSON 字符串。这正是 Athena 在调查中发挥优势的地方:您可以精确地按照任意 API 调用的事件名称、主体和参数进行筛选。

将 Glue 爬虫作为替代方案

无需手动编写 DDL,AWS Glue 爬虫可以扫描 S3 数据,并自动推断架构写入数据目录。对于 CloudTrail 这类已知格式,所提供的 DDL 通常更加简洁;但如果日志格式是自定义的或不断变化的,而您又不想手动编写架构,爬虫会很有帮助。

处理 JSON 的特殊情况

CloudTrail JSON 中有些字段本身就是 JSON 字符串,例如值会因服务而异的 requestParameters。您通常会在查询时使用 JSON 函数解析这些字段。了解某些列是需要解析的字符串,而不是预先构建好的列,可以避免在字段表现得不像普通列时产生困惑。

组织跟踪表

对于组织跟踪,所有账户的日志都会存放在同一个存储桶下,并按账户使用不同的前缀。您可以针对整个前缀创建一个表,一次查询所有账户;也可以为每个账户创建独立的表以实现隔离。统一表非常适合通过一次查询在整个组织范围内进行威胁搜寻。

验证表

创建表后,使用较小的 LIMIT 运行一个快速的 SELECT,确认能够返回行,并且列能按预期填充。如果列值为 null,通常说明 SerDe、位置或架构设置有误。这个合理性检查可以避免您在一张悄悄失效的表上开展调查。

从表到调查

CloudTrail 表确认无误后,您就拥有了一条涵盖所有已记录历史、可供查询的审计轨迹。每次控制台登录、API 调用和错误现在都是一行数据,您可以对其进行筛选和聚合。这张表是您接下来要编写的事件查询的基础。

快速检查

测试您构建表的知识。

回顾

要在 Athena 中查询 CloudTrail,您需要创建一个表,将 JSON 文件映射到各列,并使用 AWS 提供的 CREATE TABLE DDL、正确的 SerDe 和正确的 S3 LOCATION。使用点表示法查询嵌套字段,在查询时解析 JSON 字符串列,并通过较小的 SELECT 进行验证。组织跟踪可以使用一张表来进行整个组织范围的威胁搜寻。

常见问题解答

「基于 CloudTrail 数据构建表」课时是免费的吗?

是的 — 「基于 CloudTrail 数据构建表」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。

「基于 CloudTrail 数据构建表」这节课中我会学到什么?

定义架构,以便直接查询审计事件。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cloud & IT Cert Prep 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「基于 CloudTrail 数据构建表」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?

能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 使用 Athena 查询 S3 日志
  2. 基于 CloudTrail 数据构建表
  3. 使用 SQL 查询调查事件
  4. 对日志分区以提升速度并降低成本
← 返回 Cloud & IT Cert Prep