如何在我的 AWS 账户中使用 AWS Config 服务创建资源时接收自定义电子邮件通知?

上次更新时间:2019 年 11 月 19 日

我创建了一条 Amazon CloudWatch Events 规则,以便在创建新的 AWS 资源时根据服务事件类型触发,但响应为 JSON 格式。如何才能收到含有自定义通知的电子邮件响应?  

简短描述

通过使用 CloudWatch Events 规则的自定义事件模式匹配 AWS Config 支持的资源类型。然后,将响应路由到某个 Amazon Simple Notification Service (Amazon SNS) 主题。

解决方法

在以下示例中,当使用 AWS::EC2::Instance 资源类型创建新的 Amazon Elastic Compute Cloud (Amazon EC2) 实例时会收到 SNS 通知。

注:您可以将资源类型替换为特定的 AWS 服务。

1.    如果您尚未创建 Amazon SNS 主题,请按照 Amazon SNS 入门中的说明创建一个。

注:Amazon SNS 主题必须与您的 AWS Config 服务位于同一区域。

2.    打开 CloudWatch 控制台

3.    在导航窗格中,选择规则,然后选择创建规则

4.    在事件源中,选择事件模式

5.    在创建事件模式以根据服务匹配事件下拉菜单中,选择自定义事件模式

6.    在创建自定义事件模式预览窗格中,复制并粘贴以下示例事件模式:

注:您可以使用其他资源替换 EC2:: Instance 资源类型。如需可用资源类型列表,见 AWS Config 数据类型中的 resourceType 部分。

{
  "source": [
    "aws.config"
  ],
  "detail-type": [
    "Config Configuration Item Change"
  ],
  "detail": {
    "messageType": [
      "ConfigurationItemChangeNotification"
    ],
    "configurationItem": {
      "resourceType": [
        "AWS::EC2::Instance"
      ],
      "configurationItemStatus": [
        "ResourceDiscovered"
      ]
    }
  }
}

7.    在目标下,选择添加目标

8.    选择目标下拉菜单,然后选择 SNS 主题

9.    在主题中,选择您的 SNS 主题。

10.   展开配置输入,然后选择输入转换器

11.   在输入路径文本框中,复制并粘贴以下示例路径:

{
    "awsRegion": "$.detail.configurationItem.awsRegion",
    "awsAccountId": "$.detail.configurationItem.awsAccountId",
    "resource_type": "$.detail.configurationItem.resourceType",
    "resource_ID": "$.detail.configurationItem.resourceId",
    "configurationItemCaptureTime": "$.detail.configurationItem.configurationItemCaptureTime"
}

12.   在输入模板文本框中,复制并粘贴以下示例模板:  

"On <configurationItemCaptureTime> AWS Config service recorded a creation of a new <resource_type> with Id <resource_ID> in the account <awsAccountId> region <awsRegion>. For more details open the AWS Config console at https://console.aws.amazon.com/config/home?region=<awsRegion>#/timeline/<resource_type>/<resource_ID>/configuration"

13.   在名称中,为您的规则输入名称,然后选择创建规则

14.    触发某个事件类型时,您将收到一封 SNS 电子邮件通知,其中的自定义字段将从第 12 步填充,与以下所示类似:

"On ExampleTime AWS Config service recorded a creation of a new AWS::EC2::Instance with Id ExampleID in the account AccountID region ExampleRegion. For more details open the AWS Config console at https://console.aws.amazon.com/config/home?region=*ExampleRegion*#/timeline/AWS::EC2::Instance/*ExampleID*/configuration"