如果使用 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": ,
    "detail-type": ,
    "detail": {
        "messageType": ,
        "configRuleName": ,
        "resourceType": ,
        "newEvaluationResult": {
            "complianceType": 
        }
    }
}

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"