【问题标题】:Sending SNS notifications when there is an IAM Change有 IAM 更改时发送 SNS 通知
【发布时间】:2017-08-31 09:33:24
【问题描述】:

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

这是我通过邮件收到的示例:

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。有没有办法也包括变化?谁制作的,何时何地?或者可能从 cloudwatch 日志中发送少量信息,例如 "eventName"

【问题讨论】:

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

标签: amazon-web-services amazon-iam amazon-sns amazon-cloudwatchlogs amazon-cloudtrail


【解决方案1】:

有两种方法可以触发来自 AWS CloudTrail 的通知:

  1. 配置 Amazon CloudWatch Logs 以查找特定字符串。找到后,它会增加一个指标。然后,创建一个警报,当指标在特定时间段内超过特定值时触发。发送通知时,仅发送有关警报的信息。或者...

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

您应该使用 #2,因为它提供了事件的完整详细信息。

这是我为测试所做的:

  • us-east-1(所有 IAM 事件发生的地方)中创建了一个 Amazon SQS 队列
  • us-east-1 中创建了一个Amazon CloudWatch Events 规则
    • 服务名称: 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,然后通过电子邮件转发。

【讨论】:

  • 我正在尝试,我发现 IAM 在 服务名称 列表中不可用。你能告诉我选择哪个吗?谢谢
  • 你是在us-east-1 (N.Virginia) 做的吗?
  • 没有。在 eu-west-1(爱尔兰)
  • 另外,我尝试按照您的做法进行操作,但我没有在电子邮件中获得更多信息。事件规则未针对 SNS
  • 您必须使用 us-east-1 在 CloudWatch Events 中配置 IAM。您必须配置事件规则(例如在控制台中)才能配置目标。哦,您还必须调整 SQS 队列的权限以允许接收消息。我只是允许来自任何地方的所有操作,但对于实际使用,您应该进一步锁定它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-06
  • 2019-07-10
相关资源
最近更新 更多