1

我设置了SNS通知,在IAM策略发生变化时向我发送电子邮件。发生更改时,CloudTrail会将日志发送到CloudWatch,从而触发附加到SNS主题的警报。在此link的更多详细信息。发生IAM更改时发送SNS通知

下面是我通过邮件得到一个例子:

Alarm Details: 
- Name:      PolicyAlarm 
- Description:    This alarm is to monitor IAM Changes 
- State Change:    INSUFFICIENT_DATA -> ALARM 
- Reason for State Change: Threshold Crossed: 1 datapoint [1.0 (31/08/17 09:15:00)] was greater than or equal to the threshold (1.0). 
- Timestamp:     Thursday 31 August, 2017 09:20:39 UTC 
- AWS Account:    00011100000 

Threshold: 
- The alarm is in the ALARM state when the metric is GreaterThanOrEqualToThreshold 1.0 for 300 seconds. 

这里唯一的相关信息是AWS Account ID。有没有办法可以包含更改?谁做的,何时何地?或者可能从"eventName"这样的Cloudwatch日志中发送很少的信息?

+0

评估AWS Config。它会给你当前的配置。编写一个逻辑来确定更改。关于谁进行了更改,您需要查看CloudTrail日志。 –

回答

1

有两种方法可以从AWS CloudTrail触发通知:

  1. 配置亚马逊CloudWatch的日志查找特定字符串。找到后,它将增加度量标准。然后,创建一个警报,在指标超过特定时间段内的某个特定值时触发。发送通知时,仅发送关于闹钟的信息。或...

  2. Amazon CloudWatch Events中创建规则以查找事件。将Amazon SNS主题设置为目标。当通知发送时,事件的全部细节通过传递。

您应该使用#2,因为它提供了事件的全部细节。

这里就是我所做的测试:

  • 创建一个Amazon SQS队列us-east-1(所有IAM事件发生)
  • 创建一个亚马逊CloudWatch的活动规则us-east-1有:
    • 服务名称: IAM
    • 事件类型:通过CloudTrail的AWS API调用
    • 具体操作: PutUserPolicy
  • 编辑的IAM政策

在很短的时间内,事件出现了SQS:

下面是政策的相关部分:

{ 
    "detail-type": "AWS API Call via CloudTrail", 
    "source": "aws.iam", 
    "region": "us-east-1", 
    "detail": { 
    "eventSource": "iam.amazonaws.com", 
    "eventName": "PutUserPolicy", 
    "awsRegion": "us-east-1", 
    "requestParameters": { 
     "policyDocument": "{\n \"Version\": \"2012-10-17\",\n ... }", 
     "policyName": "my-policy", 
     "userName": "my-user" 
    }, 
    "eventType": "AwsApiCall" 
    } 
} 

我将邮件发送给SQS,但您也可以将其发送给SNS,然后通过电子邮件转发。

+0

我在尝试,我看到IAM在**服务名称**列表中不可用。你能告诉我哪个选择?谢谢 – Somar

+0

你在'us-east-1'(N.Virginia)做了吗? –

+0

No. In eu-west-1(Irlande) – Somar