Amazon web services 当IAM发生更改时发送SNS通知
我设置了SNS通知,以便在IAM策略发生变化时向我发送电子邮件。当发生变化时,CloudTrail会向CloudWatch发送一个日志,触发附加到SNS主题的警报。更多详细信息,请参阅本文 以下是我通过邮件获得的信息示例:Amazon web services 当IAM发生更改时发送SNS通知,amazon-web-services,amazon-iam,amazon-sns,amazon-cloudwatchlogs,amazon-cloudtrail,Amazon Web Services,Amazon Iam,Amazon Sns,Amazon Cloudwatchlogs,Amazon Cloudtrail,我设置了SNS通知,以便在IAM策略发生变化时向我发送电子邮件。当发生变化时,CloudTrail会向CloudWatch发送一个日志,触发附加到SNS主题的警报。更多详细信息,请参阅本文 以下是我通过邮件获得的信息示例: Alarm Details: - Name: PolicyAlarm - Description: This alarm is to monitor IAM Changes - State Change
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帐户ID。是否有办法也包括更改?谁做的,何时何地?或者从cloudwatch日志发送一些信息,比如eventName?有两种方法可以从AWS CloudTrail触发通知: 配置Amazon CloudWatch日志以查找特定字符串。找到后,它会增加一个度量。然后,创建一个警报,当度量在特定时间段内超过特定值时触发。发送通知时,仅发送有关报警的信息。或者 在Amazon CloudWatch事件中创建规则以查找事件。将Amazon SNS主题设置为目标。发送通知时,将传递事件的全部详细信息 您应该使用2,因为它提供了事件的全部细节 以下是我所做的测试: 在us-east-1中创建了一个Amazon SQS队列,所有IAM事件都发生在该队列中 在us-east-1中创建了Amazon CloudWatch事件规则,包括: 服务名称: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,然后通过电子邮件转发。评估AWS配置。它将为您提供当前的配置。编写逻辑以确定更改。关于谁做了更改,您需要查看CloudTrail日志。我正在尝试,我发现IAM在服务名称列表中不可用。你能告诉我该选哪个吗?谢谢你,你是在弗吉尼亚州的美国东1区做的吗?不是。在爱尔兰的欧盟西1区,我也试着做你做的事,但我没有从电子邮件中得到更多信息。事件规则不针对SNS您必须使用us-east-1在CloudWatch事件中配置IAM。您必须在控制台中配置事件规则,例如配置目标。哦,您还必须调整SQS队列上的权限以允许接收消息。我只是允许从任何地方进行所有操作,但对于实际使用,您应该进一步锁定它。