使用管理 Route 53 解析器 DNS 防火墙事件 Amazon EventBridge - Amazon Route 53
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用管理 Route 53 解析器 DNS 防火墙事件 Amazon EventBridge

Amazon EventBridge 是一项无服务器服务,它使用事件将应用程序组件连接在一起,使您可以更轻松地构建可扩展的事件驱动应用程序。事件驱动型架构是一种构建松耦合软件系统的风格,这些系统通过发出和响应事件来协同工作。事件代表资源或环境中的变化。

与许多 Amazon 服务一样,DNS Firewall 生成事件并将其发送到 EventBridge 默认事件总线。(默认事件总线会在每个 Amazon 账户中自动预置。) 事件总线是接收事件并将其传送到零个或多个目的地或目标的路由器。为事件总线指定的规则会在事件到达时进行评估。每条规则都会检查事件是否与规则的事件模式相匹配。如果事件确实匹配,事件总线会将事件发送到指定的目标。

Amazon 服务将事件发送到 EventBridge 默认事件总线。如果事件与规则的事件模式匹配,则 EventBridge 将该事件发送到为该规则指定的目标。

Route 53 解析器 DNS 防火墙事件

Route 53 解析器会自动将 DNS 防火墙事件发送到默认 EventBridge 事件总线。您可以在事件总线上创建规则;每个规则都包括一个事件模式和一个或多个目标。与规则的事件模式相匹配的事件会尽力交付给指定的目标。活动可能无法按顺序交付。

以下事件由 DNS 防火墙生成。有关更多信息,请参阅EventBridgeAmazon EventBridge 用户指南》。

活动详情类型 描述

DNS 防火墙块

对域名执行的任何屏蔽操作。

DNS 防火墙通知

对域名执行的任何警报操作。

使用 EventBridge 规则发送 Route 53 解析器 DNS 防火墙事件

要让 EventBridge 默认事件总线向目标发送 DNS 防火墙事件,必须创建一个规则,其中包含与所需 DNS 防火墙事件中的数据匹配的事件模式。

创建规则包含以下一般步骤:

  1. 为指定的规则创建事件模式:

    • Route 53 Resolver 是该规则正在评估的事件的来源。

    • (可选):要匹配的任何其他事件数据。

    有关更多信息,请参阅 为 Route 53 解析器 DNS 防火墙事件创建事件模式

  2. (可选):创建输入转换器,在将信息 EventBridge 传递给规则目标之前,对事件中的数据进行自定义。

    有关更多信息,请参阅《EventBridge 用户指南》中的输入转换

  3. 指定要 EventBridge 向其发送与事件模式匹配的事件的目标。

    目标可以是其他 Amazon 服务、 software-as-a-service (SaaS) 应用程序、API 目标或其他自定义终端节点。有关更多信息,请参阅《EventBridge 用户指南》中的目标

有关创建事件总线规则的全面说明,请参阅《EventBridge 用户指南》中的创建对事件作出反应的规则

为 Route 53 解析器 DNS 防火墙事件创建事件模式

当 DNS Firewall 将事件传送到默认事件总线时,会 EventBridge 使用为每条规则定义的事件模式来确定是否应将事件传送到规则的目标。事件模式与所需的 DNS 防火墙事件中的数据相匹配。每个事件模式是一个 JSON 对象,其中包含:

  • 标识发送事件的服务的 source 属性。对于 DNS 防火墙事件,源为aws.route53resolver

  • (可选):包含要匹配的事件类型数组的 detail-type 属性。

  • (可选):包含要匹配的其他事件数据的 detail 属性。

例如,以下事件模式与来自 DNS 防火墙的警报和屏蔽事件相匹配:

{ "source": ["aws.route53resolver"], "detail-type": ["DNS Firewall Block", "DNS Firewall Alert"] }

而以下事件模式与 BLOCK 操作相匹配:

{ "source": ["aws.route53resolver"], "detail-type": ["DNS Firewall Block"] }

DNS Firewall 在 6 小时内仅为同一个域发送一次相同的事件。例如:

  1. 实例 i-123 在 T1 时发送了 DNS 查询 exampledomain.com。DNS 防火墙会发送警报或屏蔽事件,因为这是第一次发生。

  2. 实例 i-123 在 T1+30 分钟内发送了一个 dnsQuery exampledomain.com。DNS Firewall 不会发送警报或屏蔽事件,因为这是在 6 小时内重复发生的。

  3. 实例 i-123 在 T1+7 小时内发送了 DNS 查询 exampledomain.com。DNS Firewall 会发送警报或屏蔽事件,因为这发生在 6 小时窗口以外。

有关写入事件模式的更多信息,请参阅《EventBridge 用户指南》中的事件模式

正在测试 DNS 防火墙事件的事件模式 EventBridge

您可以使用 EventBridge 沙盒快速定义和测试事件模式,而不必完成创建或编辑规则的更大过程。使用沙盒,您可以定义事件模式,并使用示例事件来确认该模式与所需事件相匹配。 EventBridge 您可以选择直接从沙箱中使用该事件模式创建新规则。

有关更多信息,请参阅《EventBridge 用户指南》中的使用 EventBridge 沙盒测试事件模式

为 DNS 防火墙创建 EventBridge 规则和目标

以下过程向您展示如何创建允许 EventBridge 为所有 DNS 防火墙警报和阻止操作发送事件的规则,以及如何添加 Amazon Lambda 功能作为规则的目标。

  1. Amazon CLI 用于创建 EventBridge 规则:

    aws events put-rule \ --event-pattern "{\"source\": [\"aws.route53resolver\"],\"detail-type\": [\"DNS Firewall Block\", \"DNS Firewall Alert\"]}" \ --name dns-firewall-rule
  2. 附加一个 Lambda 函数作为规则的目标:

    AWS events put-targets --rule dns-firewall-rule --targets Id=1,Arn=arn:aws:lambda:us-east-1:111122223333:function:<your_function>

  3. 要添加调用目标所需的权限,请运行以下 Lambda Amazon CLI 命令:

    AWS lambda add-permission --function-name <your_function> --statement-id 1 --action 'lambda:InvokeFunction' --principal events.amazonaws.com

Amazon EventBridge 权限

DNS 防火墙不需要任何其他权限即可将事件传送到 Amazon EventBridge。

您指定的目标可能需要特定的权限或配置。有关为目标使用特定服务的更多详细信息,请参阅《Amazon EventBridge 用户指南》中的 Amazon EventBridge 目标

其他 EventBridge 资源

有关如何使用 EventBridge 来处理和管理事件的更多信息,请参阅《Amazon EventBridge 用户指南》中的以下主题。