Amazon Security Lake 将您的数据存储在 S3 中作为 OCSF 模式的 Parquet 文件,因此您不会直接下载它。您查询它。使用 Amazon Athena 和 UNLOAD 语句,格式为 ‘JSON’:Athena 将结果写入您选择的 S3 前缀中,并以 JSON 行格式写入,随后您下载该文件。Security Lake 表位于名为 amazon_security_lake_glue_db_<region> 的 Glue 数据库中,每个源一个表。
Security Lake 将 CloudTrail、VPC Flow Logs、Route 53、Security Hub findings、EKS 审计日志和第三方来源集中在一种标准化格式中。Prime Core 拥有超过 24,000 条独特的检测规则,映射到 676 个 MITRE ATT&CK 技术。以下是如何免费导出、清理和调查数据的方法,使用 LogTotal。
开始之前
查询访问权限。 使用 Security Lake 的委托管理员账户,或拥有查询访问权限的订阅者。访问由 Lake Formation 管理,因此您需要对表的 SELECT 权限,另外还需拥有 Athena 的权限以及对导出到的 S3 桶的写入权限。
查找表。 在 Athena 中,打开对应区域的数据库。表名遵循模式 amazon_security_lake_table_<region>_<source>_<version>,例如 amazon_security_lake_table_eu_west_1_cloud_trail_mgmt_2_0。区域使用下划线分隔。
分区降低成本。 表按区域、accountid 和 eventday (YYYYMMDD) 分区。Athena 按扫描的数据量计费,因此总是要过滤 eventday。
使用 Athena UNLOAD 导出
在 Athena 控制台中,或使用 aws athena start-query-execution:
UNLOAD (
SELECT *
FROM amazon_security_lake_glue_db_eu_west_1.amazon_security_lake_table_eu_west_1_cloud_trail_mgmt_2_0
WHERE eventday = '20261019'
AND accountid = '123456789012'
)
TO 's3://my-athena-exports/security-lake/ct-20261019/'
WITH (format = 'JSON', compression = 'NONE')
目标前缀必须为空。当查询成功时,下载并合并文件:
aws s3 cp s3://my-athena-exports/security-lake/ct-20261019/ ./ct-20261019/ --recursive
cat ./ct-20261019/* > securitylake_ct_20261019.jsonl
每行是一个 OCSF 事件。要进一步缩小范围,请过滤 OCSF 字段,如 api.operation、actor.user.uid 或 src_endpoint.ip。
在 LogTotal 中上传、清理和审核
- 上传。 打开 logtotal.com 并拖入 .jsonl 文件。
- 清理。
- 审核。
当出了问题
| 症状 | 可能的原因 | Fix |
|---|---|---|
| Lake Formation 权限不足 | 没有表的 SELECT 授权 | 请求 Security Lake 管理员提供 Lake Formation 授权 |
| 未找到表 | 数据库或表名中的区域错误 | 使用下划线:eu_west_1 |
| HIVE_PATH_ALREADY_EXISTS 或类似 | 目标前缀不为空 | 使用新的、空的前缀 |
| 扫描成本巨大 | 没有 eventday 过滤器 | 总是过滤分区 |
| 文件是 gzipped 的 | 压缩保留为默认值 | 设置 compression = ‘NONE’,或使用 zcat |
FAQ
我可以直接读取 Parquet 文件吗?
可以,使用读取 Parquet 的工具,但 Athena 为您处理模式和分区。对于 LogTotal,从 UNLOAD 导出的 JSON 行是最简单的路线。
OCSF 和原始 CloudTrail 相同吗?
不,Security Lake 将事件标准化为 OCSF,因此字段名称与原始来源不同。