如果使用 AWS Config 时 AWS 资源不合规,如何通知我?
上次更新时间:2020 年 4 月 27 日
我创建了一个当 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. 选择 Create rule(创建规则)。
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"