На приведенной ниже диаграмме я пытаюсь достичь. Короче говоря, для отправки журналов CloudTrail в группу журналов CloudWatch, затем сканирование их на наличие определенных событий и, наконец, отправка предупреждений по электронной почте, если есть согласованное событие.
Я слежу за этой официальной документацией, в которой также есть образцы шаблонов CloudFormation: http://docs.aws.amazon.com/awscloudtrail/latest/userguide/use-cloudformation-template-to-create-cloudwatch-alarms.html
Используя указанные выше шаблоны CloudFormation, я смог отправлять оповещения по электронной почте. Однако предупреждения очень простые; он не отправляет ключевую информацию, например, какой пользователь инициировал это событие, когда оно произошло и т. д.
Логически мышление AWS::Logs::MetricFilter
должно передать значение AWS::CloudWatch::Alarm
, который затем отправит информацию. Я просмотрел документацию по MetricFilter
< / a> и службы Alarm
. 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"
}
]
}
},
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"
}
},