Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 当IAM发生更改时发送SNS通知_Amazon Web Services_Amazon Iam_Amazon Sns_Amazon Cloudwatchlogs_Amazon Cloudtrail - Fatal编程技术网

Amazon web services 当IAM发生更改时发送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

我设置了SNS通知,以便在IAM策略发生变化时向我发送电子邮件。当发生变化时,CloudTrail会向CloudWatch发送一个日志,触发附加到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帐户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队列上的权限以允许接收消息。我只是允许从任何地方进行所有操作,但对于实际使用,您应该进一步锁定它。