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