监控 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 集成
编辑
  1. 在主菜单中找到 集成,或使用全局搜索字段
  2. 浏览目录以找到 Amazon Data Firehose 集成。
  3. 导航到 设置 选项卡,然后单击 安装 Amazon Data Firehose 资产
步骤 2:将 CloudTrail 事件导出到 CloudWatch
编辑
Cloudtrail to CloudWatch

要将 CloudTrail 日志导出到 CloudWatch,您必须通过以下步骤设置 跟踪

  1. 转到 AWS 控制台 并导航到 CloudTrail。
  2. 单击 创建跟踪,并在 选择跟踪属性 面板上配置常规详细信息,例如:

    • 跟踪名称
    • 存储位置

      默认情况下,CloudTrail 将数据导出到 S3 存储桶。无法选择退出 S3。

  3. 指定加密选项。

    当将数据从 CloudTrail 导出到 S3 时,建议启用 日志文件 SSE-KMS 加密。您可以使用现有的 AWS KMS 密钥,或创建一个新的密钥。

  4. 启用 CloudWatch 日志 并确认 日志组名称

    CloudTrail 提供了将事件作为日志发送到 CloudWatch 的选项。您必须启用此选项才能将事件转发到 Amazon Data Firehose。

    您还需要创建一个 IAM 角色,或选择一个现有的角色,以使 CloudTrail 能够将日志事件放入 CloudWatch 流中。

  5. 选择日志事件 面板中,选择要发送到 Elastic 的事件类型。
  6. 查看您在之前的步骤中指定的属性和日志事件,然后单击 创建跟踪
  7. 验证一切是否按预期工作。

    在 CloudWatch 上打开您刚刚创建的日志组,并确保您刚刚创建的 CloudTrail 中有事件。

    Verify events in CloudWatch
步骤 3:设置 Firehose 交付流
编辑
Firehose delivery stream

您现在拥有一个 CloudWatch 日志组,其中包含来自 CloudTrail 的事件。有关如何设置 Amazon Data Firehose 交付流以将数据发送到 Elastic Cloud 的更多信息,您还可以查看设置指南

  1. 从您在 Elastic Cloud 上的部署中收集 Elasticsearch 端点和 API 密钥。

    • Elasticsearch 端点 URL:输入您的 Elasticsearch 集群的 Elasticsearch 端点 URL。要查找 Elasticsearch 端点,请转到 Elastic Cloud 控制台,然后选择 连接详细信息
    • API 密钥:输入编码的 Elastic API 密钥。要创建 API 密钥,请转到 Elastic Cloud 控制台,选择 连接详细信息,然后单击 创建和管理 API 密钥。如果您使用的是具有 限制权限的 API 密钥,请确保查看索引权限,以便为将与此交付流一起使用的索引至少提供“auto_configure”和“write”权限。
  2. 通过指定以下数据来设置交付流:

    • Elastic 端点 URL
    • API 密钥
    • 内容编码:gzip
    • 重试持续时间:60(默认)
    • 备份设置:仅将失败的数据备份到 s3 存储桶

您现在已指定一个 Amazon Data Firehose 交付,其中:

  • 源:直接放入
  • 目标:elastic
  • 参数:es_datastream_name:logs-aws.cloudtrail-default
步骤 4:设置订阅筛选器以将 CloudTrail 事件路由到交付流
编辑
Firehose subscription filter

Amazon Data Firehose 交付流已准备好将日志发送到您的 Elastic Cloud 部署。

  1. 访问包含 CloudTrail 事件的日志组。

    打开 CloudTrail 服务正在发送事件的日志组。您必须使用 Amazon Data Firehose 交付流将这些事件转发到 Elastic Stack。CloudWatch 日志组提供了一个 订阅筛选器,使您可以从日志组中选择日志事件,并将其转发到其他服务,例如 Amazon Kinesis 流、Amazon Data Firehose 流或 AWS Lambda。

  2. 按照以下步骤为 Amazon Data Firehose 创建订阅筛选器。

    1. 选择目标账户。

      选择您在步骤 3 中创建的交付流。

    2. 授予权限。

      按照以下步骤使 CloudWatch 服务能够将日志事件发送到 Amazon Data Firehose 中的交付流:

      1. 创建一个新角色,其中包含允许 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>:*"
                        }
                    }
                }
            ]
        }
      2. 为该角色分配一个新的 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 的交付流:

Firehose failed delivery stream

Amazon Data Firehose 交付流报告失败的交付次数和失败详细信息。

步骤 5:在 Kibana 中可视化您的 CloudTrail 日志
编辑

随着新的订阅筛选器运行,CloudWatch 开始将新的 CloudTrail 日志事件路由到 Firehose 交付流。

Firehose monitor CloudTrail logs

导航到 Kibana 并从以下监控选项中选择:

  • 使用 Discover 可视化您的日志

    Visualize CloudTrail logs with Disocver
  • 使用日志浏览器可视化您的日志

    Visualize CloudTrail logs with Logs explorer
  • 使用 CloudTrail 仪表板可视化您的日志

    Visualize CloudTrail logs with CloudTrail Dashboard