如何在我的 Route 53 托管区记录发生更改时收到通知?

2 分钟阅读
0

我想在从 Amazon Route 53 中创建或删除资源记录集时收到包含自定义通知的电子邮件响应。

简短描述

将自定义事件模式与 Amazon EventBridge 规则或 Amazon CloudWatch 事件规则结合使用,该规则在进行 ChangeResourceRecordSets API 调用时触发。然后,将响应路由到 Amazon Simple Notification Service (Amazon SNS) 主题。

**注意:**如果您没有包含电子邮件订阅的 Amazon SNS 主题,请创建一个 Amazon SNS 主题以及 SNS 主题订阅

解决方法

先决条件:要监控通过 CloudTrail 进行 AWS API 调用 事件,请在创建规则的 AWS 区域激活自定义 CloudTrail 跟踪。要记录包含 CloudTrail 详细信息类型值之一的事件,必须为跟踪启用日志记录。您可以在多个区域中创建跟踪,也可以仅在 us-east-1 区域中创建跟踪。有关详细信息,请参阅使用 CloudTrail 跟踪

创建 EventBridge 规则

**注意:**Route 53 是一项 AWS 全球服务,仅在美国东部(弗吉尼亚州北部)AWS 区域提供。您必须在美国东部(弗吉尼亚州北部)区域创建 EventBridge 规则。

完成以下步骤:

  1. 打开 EventBridge 控制台
  2. 在导航窗格中,选择 Rules(规则)。
  3. 选择 Create rule(创建规则)。
  4. Name(名称)和 Description(描述)字段中,输入规则的名称和描述。
  5. 选择 Enable the rule on the selected eventbus(在所选事件总线上启用规则)。
  6. 选择 Rule with an event pattern(带有事件模式的规则)。
  7. 选择 Next(下一步)。
  8. 选择 AWS Events(AWS 事件)或 EventBridge partner events(EventBridge 合作伙伴事件)。
  9. Event pattern(事件模式)下,选择以下选项:
    Event source(事件源)下拉列表中,选择 AWS services(AWS 服务)。
    AWS service(AWS 服务)下拉列表中,选择 Route 53
    Event type(事件类型)下拉列表中,选择 AWS API Call via CloudTrail(通过 CloudTrail 进行 AWS API 调用)。
  10. 选择 Specific operation(s)(特定操作)。
  11. Specific operation(s)(特定操作)中,输入 ChangeResourceRecordSets,以便将事件限制为仅与资源记录集的创建、删除或更新相匹配。
    将显示以下事件模式:
{  
  "source": ["aws.route53"],  
  "detail-type": ["AWS API Call via CloudTrail"],  
  "detail": {  
    "eventSource": ["route53.amazonaws.com"],  
    "eventName": ["ChangeResourceRecordSets"]  
  }  
}
  1. 选择 Next(下一步)。

将 Amazon SNS 目标与 EventBridge 规则相关联

完成以下步骤:

  1. 打开 EventBridge 控制台
  2. Target types(目标类型)部分中,选择 AWS service(AWS 服务)。
  3. Select a target(选择目标)下拉列表中,选择 SNS topic(SNS 主题)。
  4. Topic(主题)下拉列表中,选择您的 Amazon SNS 主题。

配置输入转换器选项以自定义 SNS 通知

默认情况下,EventBridge 会将整个 CloudTrail 事件转发到目标。然后,Amazon SNS 主题会以未格式化的 JSON 文本形式发送通知。

当您在 EventBridge 控制台上使用 Input transformer(输入转换器)选项时,您可以指定入站事件中的字段。然后,Input transformer(输入转换器)会将事件转换为更易于理解的消息。

在以下步骤中,示例 Input path(输入路径)字段包含 eventTimehostedZoneusernameeventID。更改字段,使其与您的使用案例保持一致。EventBridge 会自动将 Input template(输入模板)中的字段占位符更新为您在 Input transformer(输入转换器)中配置的字段。

要自定义 Amazon SNS 通知,请完成以下步骤:

  1. 打开 EventBridge 控制台

  2. 展开 Additional settings(其他设置)下拉列表。

  3. Configure target input(配置目标输入)下拉列表中,选择 Input transformer(输入转换器)。

  4. 选择 Configure input transformer(配置输入转换器)。

  5. Input path(输入路径)字段中,输入以下代码:

    {  
        "eventTime": "$.detail.eventTime",  
        "hostedZone": "$.detail.requestParameters.hostedZoneId",  
        "userName": "$.detail.userIdentity.sessionContext.sessionIssuer.userName",  
        "eventID": "$.detail.eventID"  
    }
  6. Template(模板)字段中,输入以下文本:
    “在 eventTime,用户 userName 修改了托管区 HostedZone 内的一条或多条 Route 53 记录。要直接在“事件历史记录”中查看该事件并查看这些更改,请使用以下链接。请注意,该事件最多可能需要 15 分钟才会显示在“事件历史记录”中:https://console.aws.amazon.com/cloudtrail/home?region=us-east-1#/events?EventId=eventID”
    **注意:**请将 userName 替换为您的用户名。

  7. 选择 Confirm(确认)。

  8. (可选)向 EventBridge 规则添加标签,然后选择 Next(下一步)。

  9. 查看规则配置,然后选择 Create rule(创建规则)。

当您更改 Route 53 资源集时,您会收到一条类似于以下内容的通知:

“在 2022-08-16T21:02:46Z,用户 Admin 修改了托管区 ZB3A123456789 内的一条或多条 Route 53 记录。要直接在“事件历史记录”中查看该事件并查看这些更改,请使用以下链接。请注意,该事件最多可能需要 15 分钟才会显示在“事件历史记录”中:https://console.aws.amazon.com/cloudtrail/home?region=us-east-1#/events?EventId=04d08662-537e-4424-97c2-8bc796943b75”

相关信息

如何为 EventBridge 规则创建自定义事件模式?

如何创建一条 EventBridge 规则,通过使用输入转换器使 Amazon SNS 通知变得易于理解?

教程: 使用输入转换器在 EventBridge 中转换事件

教程: 创建通过 CloudTrail 对 AWS API 调用做出反应的 EventBridge 规则