1

下图是我想要实现的。简而言之,要将CloudTrail日志发送到CloudWatch日志组,然后对其进行扫描以查找特定事件,并在发生演唱会事件时最终发送电子邮件警报。如何通过电子邮件发送Cloudwatch日志详细信息?

CloudTrail to send alerts

我下面这个官方文件里面也有一个样品CloudFormation模板:http://docs.aws.amazon.com/awscloudtrail/latest/userguide/use-cloudformation-template-to-create-cloudwatch-alarms.html

使用cloudformation上面我已经能够发送电子邮件警报。但是,警报非常基本,它不会发送关键信息,例如哪个用户启动了此事件,发生的时间等。

逻辑上认为AWS :: Logs :: MetricFilter应将值传递给AWS :: CloudWatch ::然后发送信息的警报。我查看了MetricFilterAlarm服务的文档。 Dimension更接近我想要但尚未能够从日志中读取信息。

我原以为这是一个常见的用例,并且会有文档。我在这里错过了显而易见的东西吗?有没有人在这里解决这个问题?

AWS ::日志:: MetricFilter块:

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

AWS :: CloudWatch的警报::块

"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" 

     } 
    }, 
+1

你不能这样做。这是Amazon真正需要添加的CloudWatch Logs的一项缺失功能。 –

+0

人们会认为这是最常见的用例之一。奇怪的是,它还没有实施。 –

回答

2

这是不可能的。

Amazon CloudWatch Logs将接受来自AWS CloudTrail的信息,并且在查找到与预定义过滤器匹配的消息后,将增加一个度量计数。

安全Amazon CloudWatch警报可以在度量标准超过某个阈值时触发。但是,生成指标的传入数据与基于阈值触发的警报之间没有直接关联。

想象它像一个旋转门计数人谁进入地铁。旋转门计算人数,但不保留关于经过的人的信息。同样,CloudWatch警报计数事件,但没有任何关于计数事件的信息。

+0

谢谢你的答案约翰。我真的很想嗅探CloudTrail日志,并向事件响应团队发送警报,并提供所有可能的细节。你会如何解决这个问题呢? –

+0

您是否想要通知某个特定事件,或者只有在计算的阈值已通过时(例如,在1小时内发生了5次以上的事件)?前者应该很容易,后者很难,因为随着时间的推移,数据分布在许多事件中。 –

+0

我想在事件发生时不需要计算阈值时发送警报。但我所需要的是警报对于调查的详细和有用。 –

相关问题