如果使用 AWS Config 时 AWS 资源不合规,如何通知我?

上次更新时间:2020 年 4 月 24 日

我创建了一个当 AWS 资源不符合时触发通知的 Amazon EventBridge 规则,但响应为 JSON 格式。如何才能收到含有自定义通知的电子邮件?

简短描述

使用包含自定义事件模式和输入转换器的 EventBridge 规则以匹配表示为 NON_COMPLIANT 的 AWS Config 评估规则输出。然后,将响应路由到某个 Amazon Simple Notification Service (Amazon SNS) 主题。

解决方法

在以下示例中,当 ec2-security-group-attached-to-eni 托管规则将 Amazon Elastic Compute Cloud (Amazon EC2) 安全组的 AWS 资源报告为 NON_COMPLIANT 时收到 SNS 通知。

注意:您可以替换特定 AWS 服务和 AWS Config 规则的 AWS Config 资源类型规则

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

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

2.    打开 EventBridge 控制台

3.    选择创建规则

4.    在规则名称中,输入您的规则名称。

5.    在定义模式中,选择事件模式

6.    在事件匹配模式中,选择自定义模式

7.    在事件模式预览窗格中,复制并粘贴以下示例事件模式:

{
    "source": [
        "aws.config"
    ],
    "detail-type": [
        "Config Rules Compliance Change"
    ],
    "detail": {
        "messageType": [
            "ComplianceChangeNotification"
        ],
        "configRuleName": [
            "ec2-security-group-attached-to-eni"
        ],
        "resourceType": [
            "AWS::EC2::SecurityGroup"
        ],
        "newEvaluationResult": {
            "complianceType": [
                "NON_COMPLIANT"
            ]
        }
    }
}

8.    选择保存

9.    在选择目标中,选择 SNS 主题

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

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

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

{
    "awsRegion": "$.detail.awsRegion",
    "resourceId": "$.detail.resourceId",
    "awsAccountId": "$.detail.awsAccountId",
    "compliance": "$.detail.newEvaluationResult.complianceType",
    "rule": "$.detail.configRuleName",
    "time": "$.detail.newEvaluationResult.resultRecordedTime",
    "resourceType": "$.detail.resourceType"
}

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

"On <time> AWS Config rule <rule> evaluated the <resourceType> with Id <resourceId> in the account <awsAccountId> region <awsRegion> as <compliance> For more details open the AWS Config console at https://console.aws.amazon.com/config/home?region=<awsRegion>#/timeline/<resourceType>/<resourceId>/configuration"

14.    选择创建

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

"On ExampleTime AWS Config rule ExampleRuleName evaluated the ExampleResourceType with Id ExampleResource_ID in the account ExampleAccount_Id in Region ExampleRegion as ExamplecomplianceType. For more details open the AWS Config console at https://console.aws.amazon.com/config/home?region=ExampleRegion#/timeline/ExampleResourceType/ExampleResource_ID/configuration"