监控 CloudTrail 日志
编辑监控 CloudTrail 日志
编辑在本节中,您将学习如何使用 Amazon Data Firehose 监控和分析您发送到 Elastic 的 CloudTrail 日志。您将完成以下步骤:
- 在 Kibana 中安装 AWS 集成
- 将 CloudTrail 事件导出到 CloudWatch
- 设置 Firehose 交付流
- 设置订阅筛选器以将 CloudTrail 事件路由到交付流
- 在 Kibana 中可视化您的 CloudTrail 日志
开始之前
编辑我们假设您已拥有:
- 一个 AWS 账户,具有从 AWS 拉取必要数据的权限。
- 一个使用我们在 Elastic Cloud 上托管的 Elasticsearch Service 的部署。该部署包括一个用于存储和搜索数据的 Elasticsearch 集群,以及一个用于可视化和管理数据的 Kibana。AWS Data Firehose 仅适用于在 Elastic Cloud 上运行的 Elastic Stack 7.17 或更高版本。
确保部署在 AWS 上,因为 Amazon Data Firehose 交付流专门连接到需要在 AWS 上的端点。
步骤 1:在 Kibana 中安装 AWS 集成
编辑- 在主菜单中找到 集成,或使用全局搜索字段。
- 浏览目录以找到 Amazon Data Firehose 集成。
- 导航到 设置 选项卡,然后单击 安装 Amazon Data Firehose 资产。
步骤 2:将 CloudTrail 事件导出到 CloudWatch
编辑要将 CloudTrail 日志导出到 CloudWatch,您必须通过以下步骤设置 跟踪:
- 转到 AWS 控制台 并导航到 CloudTrail。
-
单击 创建跟踪,并在 选择跟踪属性 面板上配置常规详细信息,例如:
- 跟踪名称
-
存储位置
默认情况下,CloudTrail 将数据导出到 S3 存储桶。无法选择退出 S3。
-
指定加密选项。
当将数据从 CloudTrail 导出到 S3 时,建议启用 日志文件 SSE-KMS 加密。您可以使用现有的 AWS KMS 密钥,或创建一个新的密钥。
-
启用 CloudWatch 日志 并确认 日志组名称。
CloudTrail 提供了将事件作为日志发送到 CloudWatch 的选项。您必须启用此选项才能将事件转发到 Amazon Data Firehose。
您还需要创建一个 IAM 角色,或选择一个现有的角色,以使 CloudTrail 能够将日志事件放入 CloudWatch 流中。
- 在 选择日志事件 面板中,选择要发送到 Elastic 的事件类型。
- 查看您在之前的步骤中指定的属性和日志事件,然后单击 创建跟踪。
-
验证一切是否按预期工作。
在 CloudWatch 上打开您刚刚创建的日志组,并确保您刚刚创建的 CloudTrail 中有事件。
步骤 3:设置 Firehose 交付流
编辑您现在拥有一个 CloudWatch 日志组,其中包含来自 CloudTrail 的事件。有关如何设置 Amazon Data Firehose 交付流以将数据发送到 Elastic Cloud 的更多信息,您还可以查看设置指南。
-
从您在 Elastic Cloud 上的部署中收集 Elasticsearch 端点和 API 密钥。
- Elasticsearch 端点 URL:输入您的 Elasticsearch 集群的 Elasticsearch 端点 URL。要查找 Elasticsearch 端点,请转到 Elastic Cloud 控制台,然后选择 连接详细信息。
- API 密钥:输入编码的 Elastic API 密钥。要创建 API 密钥,请转到 Elastic Cloud 控制台,选择 连接详细信息,然后单击 创建和管理 API 密钥。如果您使用的是具有 限制权限的 API 密钥,请确保查看索引权限,以便为将与此交付流一起使用的索引至少提供“auto_configure”和“write”权限。
-
通过指定以下数据来设置交付流:
- Elastic 端点 URL
- API 密钥
- 内容编码:gzip
- 重试持续时间:60(默认)
- 备份设置:仅将失败的数据备份到 s3 存储桶
您现在已指定一个 Amazon Data Firehose 交付,其中:
- 源:直接放入
- 目标:elastic
- 参数:es_datastream_name:logs-aws.cloudtrail-default
步骤 4:设置订阅筛选器以将 CloudTrail 事件路由到交付流
编辑Amazon Data Firehose 交付流已准备好将日志发送到您的 Elastic Cloud 部署。
-
访问包含 CloudTrail 事件的日志组。
打开 CloudTrail 服务正在发送事件的日志组。您必须使用 Amazon Data Firehose 交付流将这些事件转发到 Elastic Stack。CloudWatch 日志组提供了一个 订阅筛选器,使您可以从日志组中选择日志事件,并将其转发到其他服务,例如 Amazon Kinesis 流、Amazon Data Firehose 流或 AWS Lambda。
-
按照以下步骤为 Amazon Data Firehose 创建订阅筛选器。
-
选择目标账户。
选择您在步骤 3 中创建的交付流。
-
授予权限。
按照以下步骤使 CloudWatch 服务能够将日志事件发送到 Amazon Data Firehose 中的交付流:
-
创建一个新角色,其中包含允许 CloudWatch 代入该角色的信任策略。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.eu-north-1.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:logs:eu-north-1:<YOUR ACCOUNT ID>:*" } } } ] }
-
为该角色分配一个新的 IAM 策略,该策略允许将记录“放入”Amazon Data Firehose 交付流中。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "firehose:PutRecord", "Resource": "arn:aws:firehose:eu-north-1:<YOUR ACCOUNT ID>:deliverystream/mbranca-dev-cloudtrail-logs" } ] }
-
-
当新角色准备就绪后,您可以在订阅筛选器中选择它。在日志格式选项中选择 Amazon CloudTrail 以配置日志格式和筛选器。
要检查是否存在目标错误日志,请转到 AWS 控制台,访问您的 Amazon Data Firehose 交付流,并检查 目标错误日志 中是否有条目。
如果一切正确,则此列表应为空。如果出现错误,您可以查看详细信息。以下示例显示了一个由于身份验证设置错误而无法将记录发送到 Elastic Stack 的交付流:
Amazon Data Firehose 交付流报告失败的交付次数和失败详细信息。
步骤 5:在 Kibana 中可视化您的 CloudTrail 日志
编辑随着新的订阅筛选器运行,CloudWatch 开始将新的 CloudTrail 日志事件路由到 Firehose 交付流。
导航到 Kibana 并从以下监控选项中选择:
-
使用 Discover 可视化您的日志
-
使用日志浏览器可视化您的日志
-
使用 CloudTrail 仪表板可视化您的日志