如何通过电子邮件发送 Cloudwatch 日志详细信息?

Sus*_*ire 5 amazon-web-services aws-cloudformation amazon-cloudwatch amazon-cloudtrail amazon-cloudwatchlogs

下图是我想要实现的目标。简而言之,将 CloudTrail 日志发送到 CloudWatch 日志组,然后扫描其中的某些事件,最后在发生一致事件时发送电子邮件警报。

CloudTrail 发送警报

我正在关注这个官方文档,它也有一个示例 CloudFormation 模板: http //docs.aws.amazon.com/awscloudtrail/latest/userguide/use-cloudformation-template-to-create-cloudwatch-alarms.html

使用上面的 CloudFormation 模板,我已经能够发送电子邮件警报。然而,警报是非常基本的;它不会发送关键信息,比如哪个用户发起了这个事件,什么时候发生的等等。

逻辑思维AWS::Logs::MetricFilter应该传递值AWS::CloudWatch::Alarm,然后将信息发送到该值。我已经查看了两者MetricFilterAlarm服务的文档。Dimension更接近我想要的但还不能从日志中读取信息。

我会认为这是一个常见的用例,并且会有文档。我在这里遗漏了一些明显的东西吗?这里有人解决过这个问题吗?

AWS::Logs::MetricFilter 堵塞:

"AuthorizationFailuresMetricFilter": {
    "Type": "AWS::Logs::MetricFilter",
    "Properties": {
        "LogGroupName": { "Ref" : "LogGroupName" },
        "FilterPattern": "{ ($.errorCode = \"*UnauthorizedOperation\") || ($.errorCode = \"AccessDenied*\") }",
        "MetricTransformations": [
            {
                "MetricNamespace": "CloudTrailMetrics",
                "MetricName": "AuthorizationFailureCount",
                "MetricValue": "1"
            }
        ]
    }
},
Run Code Online (Sandbox Code Playgroud)

AWS::CloudWatch::Alarm 堵塞

  "AuthorizationFailuresAlarm": {
      "Type": "AWS::CloudWatch::Alarm",
      "Properties": {
          "AlarmName" : "CloudTrailAuthorizationFailures",
          "AlarmDescription" : "Alarms when an unauthorized API call is made.",
          "AlarmActions" : [{ "Ref" : "AlarmNotificationTopic" }],
          "Dimensions": [
             {
                "Name": "errorCode",
                "Value": ""
             },
             {
                "Name": "userIdentity",
                "Value": ""
             }
          ],
          "MetricName" : "AuthorizationFailureCount",
          "Namespace" : "CloudTrailMetrics",
          "ComparisonOperator" : "GreaterThanOrEqualToThreshold",
          "EvaluationPeriods" : "1",
          "Period" : "300",
          "Statistic" : "Sum",
          "Threshold" : "1"

      }
  },
Run Code Online (Sandbox Code Playgroud)

Joh*_*ein 6

这不可能。

Amazon CloudWatch Logs将接受来自 AWS CloudTrail 的信息,并且在找到与预定义过滤器匹配的消息时,将增加指标计数。

一个亚马逊CloudWatch的警报在公制超过某个阈值可以再被触发。但是,生成指标的传入数据与基于阈值触发的警报之间没有直接联系。

把它想象成一个旋转门,计算进入地铁的人数。闸机统计人数,但不保留经过人员的信息。同样,CloudWatch 警报对事件进行计数,但没有关于所计数事件的任何信息。