

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

# 监控 Amazon Route 53
<a name="monitoring-overview"></a>

监控是维护 AWS 解决方案可靠性、可用性和性能的重要组成部分。您应该从 AWS 解决方案的所有部分收集监控数据，以便在出现多点故障时可以更轻松地对其进行调试。不过，在开始监控之前，您应制定一个监控计划并在计划中回答下列问题：
+ 监控目的是什么？
+ 您将监控哪些资源？
+ 监控这些资源的频率如何？
+ 您将使用哪些监控工具？
+ 谁负责执行监控任务？
+ 出现错误时应通知谁？

**Topics**
+ [公有 DNS 查询日志记录](query-logs.md)
+ [Resolver 查询日志记录](resolver-query-logs.md)
+ [监控域注册](monitoring-domain-registrations.md)
+ [使用 Amazon Route 53 运行状况检查和亚马逊监控您的资源 CloudWatch](monitoring-cloudwatch.md)
+ [使用 Amazon 监控托管区域 CloudWatch](monitoring-hosted-zones-with-cloudwatch.md)
+ [使用亚马逊监控 Route 53 VPC 解析器终端节点 CloudWatch](monitoring-resolver-with-cloudwatch.md)
+ [使用 Amazon 监控解析器 DNS 防火墙规则组 CloudWatch](monitoring-resolver-dns-firewall-with-cloudwatch.md)
+ [使用管理解析器 DNS 防火墙事件 Amazon EventBridge](dns-firewall-eventbridge-integration.md)
+ [使用记录亚马逊 Route 53 API 调用 AWS CloudTrail](logging-using-cloudtrail.md)

# 公有 DNS 查询日志记录
<a name="query-logs"></a>

您可以配置 Amazon Route 53 以记录有关 Route 53 接收公有 DNS 查询的信息，如下所示：
+ 请求的域名或子域名
+ 请求的日期和时间
+ DNS 记录类型（例如 A 或 AAAA）
+ 响应 DNS 查询的 53 号路边缘站点
+ DNS 响应代码，例如 `NoError` 或 `ServFail`

配置查询日志记录后，Route 53 会将日志发送到 CloudWatch 日志。您可以使用 CloudWatch 日志工具访问查询日志。

查询日志仅包含 DNS 解析程序发送到 Route 53 的查询。如果 DNS 解析程序已缓存对查询 (如 example.com 的负载均衡器的 IP 地址) 的响应，则解析程序将继续返回缓存的响应而不将查询发送到 Route 53，直到相应记录的 TTL 到期为止。

根据为域名 (example.com) 或子域名称 (www.example.com) 提交的 DNS 查询的数量、用户正在使用的解析程序以及记录的 TTL，查询日志可能只包含提交到 DNS 解析程序的数千个查询中的一个查询的信息。有关 DNS 的工作方式的更多信息，请参阅[如何将 Internet 流量路由到您的网站或 Web 应用程序](welcome-dns-service.md)。

如果您不需要详细的日志信息，则可以使用 Amazon CloudWatch 指标来查看 Route 53 响应的托管区域的 DNS 查询总数。有关更多信息，请参阅 [查看公有托管区域的 DNS 查询指标](hosted-zone-public-viewing-query-metrics.md)。

**Topics**
+ [为 DNS 查询配置日志记录](#query-logs-configuring)
+ [使用 Amazon CloudWatch 访问 DNS 查询日志](#query-logs-viewing)
+ [更改日志的保留周期并将日志导出到 Amazon S3](#query-logs-changing-retention-period)
+ [停止查询日志记录](#query-logs-deleting-configuration)
+ [显示在 DNS 查询日志中的值](#query-logs-format)
+ [查询日志示例](#query-logs-example)

## 为 DNS 查询配置日志记录
<a name="query-logs-configuring"></a>

要开始记录指定托管区域的 DNS 查询，您需要在 Amazon Route 53 控制台中执行以下任务：
+ 选择您希望 Route 53 向其发布日志的日志组，或者创建一个新的日志组。 CloudWatch 
**注意**  
日志组必须位于美国东部（弗吉尼亚北部）区域。
+ 选择 **Create ** 以完成。

**注意**  
如果用户正在提交对您的域的 DNS 查询，则您会在创建查询日志配置后几分钟内开始看到日志中的查询。<a name="query-logs-configuring-procedure"></a>

**为 DNS 查询配置日志记录**

1. 登录 AWS 管理控制台 并打开 Route 53 控制台，网址为[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 在导航窗格中，选择 **Hosted zones（托管区域）**。

1. 选择要为其配置查询日志记录的托管区域。

1. 在 **Hosted zone details** 窗格中，选择 **Configure query logging**。

1. 选择现有日志组或创建新的日志组。

1. 如果您收到有关权限的提示（如果您之前未使用新控制台配置查询日志记录，则会发生这种情况），请执行以下操作之一：
   +  如果您已经有 10 个资源策略，则无法再创建新策略。选择任何资源策略，然后选择 **Edit**（编辑）。编辑将授予 Route 53 向您的日志组写入日志的权限。选择**保存**。提示会消失，您可以继续下一步。
   + 如果您以前从未配置过查询日志记录（或者您尚未创建 10 个资源策略），则需要向 Route 53 授予将日志写入 CloudWatch 日志组的权限。选择 **Grant permissions**（授予权限）。提示会消失，您可以继续下一步。

1. 选择 P **ermissions-可选**查看一个表，该表显示资源策略是否与 CloudWatch 日志组匹配，以及 Route 53 是否有权向其发布日志 CloudWatch。

1. 选择**创建**。

## 使用 Amazon CloudWatch 访问 DNS 查询日志
<a name="query-logs-viewing"></a>

Amazon Route 53 将查询 CloudWatch 日志直接发送到日志；这些日志永远无法通过 Route 53 访问。相反，您可以使用 CloudWatch 日志近乎实时地查看日志、搜索和筛选数据，以及将日志导出到 Amazon S3。

Route 53 为每个 Route 53 边缘站点创建一个 CloudWatch 日志流，用于响应指定托管区域的 DNS 查询并将查询日志发送到适用的日志流。例如，每个日志流名称的格式均为*hosted-zone-id*/*edge-location-ID*`Z1D633PJN98FT9/DFW3`。

例如，每个边缘位置都由三个字母的代码和一个任意分配的数字来标识。 DFW3三个字母代码通常对应邻近节点位置的机场的国际航空协会机场代码。（这些缩写将来可能会更改。） 有关边缘站点的列表，请参阅 [Route 53 产品详细信息](https://aws.amazon.com/route53/details/)页上的“Route 53 全球网络”。

**注意**  
您可能会看到一些不符合上述惯例的前缀或后缀。这些编码属性仅供内部使用。

有关更多信息，请参阅相应文档：
+ [Amazon CloudWatch 日志用户指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/)
+ [亚马逊 CloudWatch 日志 API 参考](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/)
+ [CloudWatch 《 AWS CLI 命令参考》的 “日志” 部分](https://docs.aws.amazon.com/cli/latest/reference/logs/index.html)
+ [显示在 DNS 查询日志中的值](#query-logs-format)

## 更改日志的保留周期并将日志导出到 Amazon S3
<a name="query-logs-changing-retention-period"></a>

默认情况下， CloudWatch Logs 无限期存储查询日志。您可以选择指定保留期，以便 CloudWatch Logs 删除早于保留期的日志。有关更多信息，请参阅 *Amazon CloudWatch 用户指南*[中的 “ CloudWatch 日志” 中的更改日志数据保留期](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SettingLogRetention.html)。

如果您想保留日志数据，但不需要使用 CloudWatch 日志工具来查看和分析数据，则可以将日志导出到 Amazon S3，这样可以降低存储成本。有关更多信息，请参阅[将日志数据导出至 Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/S3Export.html)。

有关定价的信息，请参阅适用的定价页：
+ [CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing)页面上的 “Amazon CloudWatch 日志”
+ [Amazon S3 定价](https://aws.amazon.com/s3/pricing)

**注意**  
当您配置 Route 53 以记录 DNS 查询时，不会产生任何 Route 53 费用。

## 停止查询日志记录
<a name="query-logs-deleting-configuration"></a>

如果您希望 Amazon Route 53 停止向 CloudWatch 日志发送查询日志，请执行以下步骤删除查询日志配置。<a name="query-logs-deleting-configuration-procedure"></a>

**删除查询日志记录配置**

1. 登录 AWS 管理控制台 并打开 Route 53 控制台，网址为[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 在导航窗格中，选择 **Hosted zones（托管区域）**。

1. 为您要删除其查询日志记录配置的托管区域选择名称。

1. 在 **Hosted zone details**（托管区域详细信息）窗格中，选择 **Delete query logging configuration**（删除查询日志记录配置）。

1. 选择**删除**以确认。

## 显示在 DNS 查询日志中的值
<a name="query-logs-format"></a>

每个日志文件都为 Amazon Route 53 从相应边缘站点中的 DNS 解析程序接收的每个 DNS 查询包含一个日志条目。每个日志条目都包含以下值：

**日志格式版本**  
此查询日志的版本号。如果向日志添加字段或更改现有字段的格式，我们将增大此值。

**查询时间戳**  
Route 53 对请求做出响应的日期和时间，采用 ISO 8601 格式和协调世界时 (UTC)，例如，`2017-03-16T19:20:25.177Z`。  
有关 ISO 8601 格式的信息，请参阅维基百科文章 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)。有关 UTC 的信息，请参阅维基百科文章[协调世界时](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)。

**托管区域 ID**  
与此日志中的所有 DNS 查询关联的托管区域的 ID。

**查询名称**  
在请求中指定的域或子域

**查询类型**  
在请求中指定的 DNS 记录类型，或 `ANY`。有关 Route 53 支持的类型的信息，请参阅 [支持的 DNS 记录类型](ResourceRecordTypes.md)。

**响应代码**  
Route 53 在对 DNS 查询做出的响应中返回的 DNS 响应代码。

**第 4 层协议**  
用于提交查询的协议，即 `TCP` 或 `UDP`。

**Route 53 边缘站点**  
对查询做出响应的 Route 53 边缘站点。例如，每个边缘位置都由三个字母的代码和一个任意数字标识。 DFW3三个字母代码通常对应邻近节点位置的机场的国际航空协会机场代码。（这些缩写将来可能会更改。）  
有关边缘站点的列表，请参阅 [Route 53 产品详细信息](https://aws.amazon.com/route53/details/)页上的“Route 53 全球网络”。

**解析程序 IP 地址**  
向 Route 53 提交请求的 DNS 解析程序的 IP 地址。

**EDNS 客户端子网**  
发起请求的客户端的部分 IP 地址 (如果可从 DNS 解析程序获得)。  
有关更多信息，请参阅 IETF 草案 [Client Subnet in DNS Requests](https://tools.ietf.org/html/draft-ietf-dnsop-edns-client-subnet-08)。

## 查询日志示例
<a name="query-logs-example"></a>

以下是示例查询日志（Region 是占位符）：

```
1.0 2017-12-13T08:16:02.130Z Z123412341234 example.com A NOERROR UDP Region 192.168.1.1 -
1.0 2017-12-13T08:15:50.235Z Z123412341234 example.com AAAA NOERROR TCP Region 192.168.3.1 192.168.222.0/24
1.0 2017-12-13T08:16:03.983Z Z123412341234 example.com ANY NOERROR UDP Region 2001:db8::1234 2001:db8:abcd::/48
1.0 2017-12-13T08:15:50.342Z Z123412341234 bad.example.com A NXDOMAIN UDP Region 192.168.3.1 192.168.111.0/24
1.0 2017-12-13T08:16:05.744Z Z123412341234 txt.example.com TXT NOERROR UDP Region 192.168.1.2 -
```

# Resolver 查询日志记录
<a name="resolver-query-logs"></a>

您可以记录以下 DNS 查询：
+ 源自您指定的 Amazon Virtual Pri VPCs vate Cloud 的查询，以及对这些 DNS 查询的响应。
+ 来自使用入站 Resolver 端点的本地部署资源的查询。
+ 使用出站 Resolver 端点进行递归 DNS 解析的查询。
+ 使用 Resolver DNS 防火墙规则阻止、允许或监控域列表的查询。

VPC 解析器查询日志包含以下值：
+ 创建 VPC 的 AWS 区域
+ 查询源自的 VPC 的 ID
+ 查询源自的实例的 IP 地址
+ 查询源自的资源的实例 ID
+ 首次进行查询的日期和时间
+ 请求的 DNS 名称（例如 prod.example.com）
+ DNS 记录类型 (如 A 或 AAAA)
+ DNS 响应代码，如 `NoError` 或 `ServFail`
+ DNS 响应数据，如在对 DNS 查询做出的响应中返回的 IP 地址
+ 对 DNS Firewall 规则操作的响应

有关记录的所有值的详细列表以及示例，请参阅 [VPC 解析器查询日志中显示的值](resolver-query-logs-format.md)。

**注意**  
按照 DNS 解析器的标准配置，解析器将 DNS 查询缓存一段时间长度由解析器的 time-to-live (TTL) 决定。Route 53 VPC 解析器会缓存源自您的查询 VPCs，并尽可能从缓存中做出响应以加快响应速度。VPC Resolver 查询日志仅记录唯一查询，而不记录 VPC 解析器能够从缓存中响应的查询。  
例如，假设查询日志配置正在记录查询的其中一个 EC2 实例提交了 VPCs 对 accounting.example.com 的请求。VPC 解析器会缓存对该查询的响应，并记录查询。如果同一实例的弹性网络接口在 VPC 解析器缓存的 TTL 内查询 accounting.example.com，则 VPC 解析器会响应来自缓存的查询。未记录第二个查询。

您可以将日志发送到以下 AWS 资源之一：
+ Amazon CloudWatch 日CloudWatch 志（日志）日志组
+ Amazon S3 (S3) 存储桶
+ Firehose 传输流

有关更多信息，请参阅 [AWS 您可以向其发送 VPC 解析器查询日志的资源](resolver-query-logs-choosing-target-resource.md)。

**Topics**
+ [AWS 您可以向其发送 VPC 解析器查询日志的资源](resolver-query-logs-choosing-target-resource.md)
+ [管理 Resolver 查询日志记录配置](resolver-query-logging-configurations-managing.md)

# AWS 您可以向其发送 VPC 解析器查询日志的资源
<a name="resolver-query-logs-choosing-target-resource"></a>

**注意**  
如果您希望记录具有较高每秒查询 (QPS) 的工作负载的查询，则应使用 Amazon S3 确保您的查询日志在写入目标时不会受到节流限制。如果您使用 Amazon CloudWatch，则可以提高该`PutLogEvents`操作的每秒请求次数上限。要了解有关提高 CloudWatch 限制的更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[CloudWatch 日志配额](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch_limits_cwl.html)。

您可以将 VPC 解析器查询日志发送到以下 AWS 资源：

**亚马逊 CloudWatch 日志（亚马逊 CloudWatch 日志）日志组**  
您可以使用 Logs Insights 来分析日志并创建指标与告警。  
有关更多信息，请参阅 [Amazon CloudWatch 日志用户指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/)。

**Amazon S3 (S3) 存储桶**  
S3 存储桶对于长期日志归档来说非常经济。延迟通常较高。  
支持所有 S3 服务器端加密选项。有关更多信息，请参阅《Amazon S3 用户指南》**中的[使用服务器端加密保护数据](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)。  
如果您选择使用 AWS KMS 密钥进行服务器端加密 (SSE-KMS)，则必须更新客户托管密钥的密钥策略，以便日志传输账户可以写入您的 Amazon S3 存储桶。*有关与 SSE-KMS 一起使用的所需密钥策略的更多信息，请参阅[亚马逊用户指南中的 Amazon S3 存储桶服务器端加密](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-infrastructure-V2-S3.html#AWS-logs-SSE-KMS-S3-V2)。 CloudWatch *  
如果 S3 存储桶位于您拥有的账户中，则所需的权限会自动添加到您的存储桶策略中。如果要将日志发送到不属于您的账户中的 S3 存储桶，则 S3 存储桶的拥有者必须在其存储桶策略中为您的账户添加权限。例如：    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "CrossAccountAccess",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::your_bucket_name/AWSLogs/your_caller_account/*"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::your_bucket_name"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "iam_user_arn_or_account_number_for_root"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::your_bucket_name"
        }
    ]
}
```
 如果要将日志存储在组织的中央 S3 存储桶中，我们建议您从集中账户（具有写入中央存储桶的必要权限）设置查询日志记录配置，并使用 [RAM](query-logging-configurations-managing-sharing.md) 以跨账户共享配置。
有关更多信息，请参阅 [Amazon Simple Storage Service 用户指南](https://docs.aws.amazon.com/AmazonS3/latest/userguide/)。

**Firehose 传输流**  
您可以将日志实时流式传输到亚马逊 OpenSearch 服务、Amazon Redshift 或其他应用程序。  
有关更多信息，请参阅[《Amazon Data Firehose 开发人员指南》](https://docs.aws.amazon.com/firehose/latest/dev/)。

有关 Resolver 查询日志的定价信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

CloudWatch 使用 VPC 解析器日志时，即使日志直接发布到 Amazon S3，也会收取销售日志费用。有关更多信息，请参阅按照 [Amazon *定价的日志* CloudWatch 定价](https://aws.amazon.com//cloudwatch/pricing/#Vended_Logs)。

# 管理 Resolver 查询日志记录配置
<a name="resolver-query-logging-configurations-managing"></a>

## 配置（VPC 解析器查询日志）
<a name="resolver-query-logs-configuring"></a>

您可以通过两种方式配置 VPC 解析器查询日志：
+ **直接 VPC 关联**- VPCs 直接关联到查询日志配置。
+ 配置@@ **文件关联**-将查询日志配置关联到 Route 53 配置文件，这会将日志记录应用于与该配置文件 VPCs关联的所有配置。有关更多信息，请参阅 [将 VPC 解析器查询日志配置关联到 Route 53 配置文件](profile-associate-query-logging.md)。

要开始记录源自您的 DNS 查询 VPCs，请在 Amazon Route 53 控制台中执行以下任务：<a name="resolver-query-logs-configuring-procedure"></a>

**要配置 Resolver 查询日志记录**

1. 登录 AWS 管理控制台 并打开 Route 53 控制台，网址为[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 展开 Route 53 控制台菜单。在控制台的左上角，选择三个水平条 (![\[Menu icon\]](http://docs.aws.amazon.com/zh_cn/Route53/latest/DeveloperGuide/images/menu-icon.png)) 图标。

1. 在 Resolver 菜单中，选择 **Query logging**（查询日志记录）。

1. 在区域选择器中，选择要在其中创建查询日志配置的 AWS 区域。该区域必须与您创建要记录 DNS 查询的区域相同。 VPCs 如果您有 VPCs 多个区域，则必须为每个区域创建至少一个查询日志配置。

1. 选择 **Configure query logging**（配置查询日志记录）。

1. 指定以下值：  
**查询日志记录配置名称**  
为查询日志记录配置输入名称。名称会显示在控制台的查询日志配置列表中。输入名称将有助于以后查找此配置。  
**查询日志的目标保存位置**  
选择您希望 VPC 解析器向其发送查询日志的 AWS 资源类型。有关如何在选项（CloudWatch 日志组、S3 存储桶和 Firehose 传输流）中进行选择的信息，请参阅。[AWS 您可以向其发送 VPC 解析器查询日志的资源](resolver-query-logs-choosing-target-resource.md)  
选择资源类型后，您可以创建该类型的另一个资源，也可以选择由当前 AWS 账户创建的现有资源。  
您只能选择在步骤 4 选择的 AWS 区域中创建的资源，也即您创建查询日志记录配置的区域。如果您选择创建新资源，则该资源将在同一区域创建。  
**VPCs 记录对的查询**  
此查询日志配置将记录源自您选择的 DNS 查询。 VPCs 选中当前区域中您希望 VPC 解析器记录查询的每个 VPC 的复选框，然后**选择**选择。  
**备选方案**：您可以将此查询日志配置关联到 Route 53 配置文件，这样可以将日志记录应用于与该配置文件 VPCs关联的所有配置，而不是 VPCs 直接关联。有关更多信息，请参阅 [将 VPC 解析器查询日志配置关联到 Route 53 配置文件](profile-associate-query-logging.md)。  
对于特定目标类型，VPC 日志传输只能启用一次。日志无法传送到同一类型的多个目标，例如，VPC 日志无法传送到 2 个 Amazon S3 目标。

1. 选择 **Configure query logging**（配置查询日志记录）。

**注意**  
您应在成功创建查询日志配置后数分钟内开始在日志中看到 VPC 中的资源执行的 DNS 查询。

# VPC 解析器查询日志中显示的值
<a name="resolver-query-logs-format"></a>

每个日志文件都为 Amazon Route 53 从相应边缘站点中的 DNS 解析程序接收的每个 DNS 查询包含一个日志条目。每个日志条目都包含以下值：

**版本**  
此查询日志格式的版本号。当前版本为 `1.1`。  
版本值包含 **major\$1version.minor\$1version** 格式的主要版本和次要版本。例如，您可以具有为 `1.7` 的 `version` 值，其中，`1 ` 是主要版本，`7` 是次要版本。  
如果 Route 53 对不向后兼容的日志结构进行更改，则主要版本将递增。这包括删除已存在的 JSON 字段，或更改字段内容的表示方式（例如，日期格式）。  
 如果更改将新字段添加到日志文件中，则 Route 53 会增加次要版本。如果新信息可用于 VPC 中的部分或所有现有 DNS 查询，则可能会发生这种情况。

**account\$1id**  
创建 VPC 的 AWS 账户的 ID。

**region**  
您创建 VPC 的 AWS 区域。

**vpc\$1id**  
查询源自的 VPC 的 ID。

**query\$1timestamp**  
提交查询的日期和时间，采用 ISO 8601 格式和协调世界时 (UTC)，例如，`2017-03-16T19:20:177Z`。  
有关 ISO 8601 格式的信息，请参阅维基百科文章 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)。有关 UTC 的信息，请参阅维基百科文章[协调世界时](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)。

**query\$1name**  
查询中指定的域名 (example.com) 或子域名 (www.example.com)。

**query\$1type**  
在请求中指定的 DNS 记录类型，或 `ANY`。有关 Route 53 支持的类型的信息，请参阅 [支持的 DNS 记录类型](ResourceRecordTypes.md)。

**query\$1class**  
查询的类。

**rcode**  
VPC 解析器在响应 DNS 查询时返回的 DNS 响应代码。此响应代码表示查询是否有效。最常见的响应代码是 `NOERROR`，表示查询有效。如果响应无效，则 Resolver 会返回响应代码，该代码可解释无效的原因。如需查看可能的响应代码列表，请参阅 IANA RCODEs 网站上的 [DNS](https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6)。

**answer\$1type**  
VPC 解析器为响应查询而返回的值的 DNS 记录类型（例如 A、MX 或 CNAME）。有关 Route 53 支持的类型的信息，请参阅 [支持的 DNS 记录类型](ResourceRecordTypes.md)。

**rdata**  
VPC 解析器在响应查询时返回的值。例如，对于 A 记录，这是 IPv4 格式化的 IP 地址。对于别名记录，这是别名记录中的域名。

**answer\$1class**  
VPC 解析器对查询的响应的类别。

**srcaddr**  
查询源自的主机的 IP 地址。

**srcport**  
查询源自的实例上的端口。

**transport**  
用于提交 DNS 查询的协议。

**srcids**  
IDs `instance`、`resolver_endpoint`、和 DNS 查询源自或通过的。`resolver_network_interface`

**实例**  
查询源自的实例的 ID。  
 如果您在 Route 53 VPC 解析器查询日志中看到的实例 ID 在您的账户中不可见，则可能是因为 DNS 查询来自您使用的 Amazon EKS 或 Fargate 控制台。 AWS CloudShell AWS Lambda

**resolver\$1endpoint**  
将 DNS 查询传递到本地部署 DNS 服务器的解析程序端点的 ID。  
如果您的 CNAME 记录通过不同的解析程序端点跨越不同的转发规则进行链接，则查询日志仅显示链中使用的最后一个解析程序端点的 ID。要通过多个端点跟踪完整的解析路径，您可以关联不同查询日志记录配置中的日志。

**firewall\$1rule\$1group\$1id**  
查询中与域名匹配的 DNS Firewall 规则组 ID。仅当 DNS Firewall 找到与操作设置为提示或阻止的规则匹配时，才会填充此选项。  
有关防火墙规则组更多信息，请参阅 [DNS Firewall 规则组和规则](resolver-dns-firewall-rule-groups.md)。

**firewall\$1rule\$1action**  
查询中与域名匹配的规则指定的操作。仅当 DNS Firewall 找到与操作设置为提示或阻止的规则匹配时，才会填充此选项。

**firewall\$1domain\$1list\$1id**  
查询中与域名匹配的规则使用的域列表。仅当 DNS Firewall 找到与操作设置为提示或阻止的规则匹配时，才会填充此选项。

**additional\$1properties**  
日志传送事件的其他信息。**is\$1delayed**：日志的传送是否出现延迟。

# Route 53 VPC 解析器查询日志示例
<a name="resolver-query-logs-example-json"></a>

以下是一个解析程序查询日志示例：

```
          
      {
        "srcaddr": "4.5.64.102",
        "vpc_id": "vpc-7example",
        "answers": [
            {
                "Rdata": "203.0.113.9",
                "Type": "PTR",
                "Class": "IN"
            }
        ],
        "firewall_rule_group_id": "rslvr-frg-01234567890abcdef",
        "firewall_rule_action": "BLOCK",
        "query_name": "15.3.4.32.in-addr.arpa.",
        "firewall_domain_list_id": "rslvr-fdl-01234567890abcdef",
        "query_class": "IN",
        "srcids": {
            "instance": "i-0d15cd0d3example"
        },
        "rcode": "NOERROR",
        "query_type": "PTR",
        "transport": "UDP",
        "version": "1.100000",
        "account_id": "111122223333",
        "srcport": "56067",
        "query_timestamp": "2021-02-04T17:51:55Z",
        "region": "us-east-1"
    }
```

# 与其他 AWS 账户共享 Resolver 查询日志配置
<a name="query-logging-configurations-managing-sharing"></a>

您可以与其他账户共享您使用一个 AWS 账户创建的查询日志配置。 AWS 为了共享配置，Route 53 VPC Resolver 控制台与 AWS 资源访问管理器集成。有关 Resource Access Manager 的更多信息，请参阅 [Resource Access Manager 用户指南](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html)。

注意以下几点：

** VPCs 与共享查询日志配置关联**  
如果另一个 AWS 账户与您的账户共享了一个或多个配置，则您可以像 VPCs 关联您创建的配置一样 VPCs 与该配置关联。

**删除或取消共享配置**  
如果您与其他账户共享配置，然后删除该配置或停止共享该配置，并且如果有一个或多个账户与该配置相关联，则 Route 53 VPC Resolver 将停止记录源自 VPCs 这些账户的 DNS 查询。 VPCs

**可以与配置关联的查询日志配置的最大数量 VPCs **  
当一个账户创建配置并与一个或多个其他账户共享配置时，每个账户将应用可与该配置关联的最大数量。 VPCs 例如，如果您的组织中有 10,000 个帐户，则可以在中央账户中创建查询日志配置并通过共享该配置将其共享 AWS RAM 给组织帐户。然后，组织账户会将该配置与其账户的查询日志配置 VPC 关联进行 VPCs 计数，每个 AWS 区域 限制为 100。但是，如果所有账户 VPCs 都在一个账户中，则可能需要提高该账户的服务限制。  
有关当前 VPC 解析器配额，请参阅[Route 53 VPC 解析器的配额](DNSLimitations.md#limits-api-entities-resolver)。

**Permissions**  
要与其他 AWS 账户共享规则，您必须拥有使用该[PutResolverQueryLogConfigPolicy](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_PutResolverQueryLogConfigPolicy.html)操作的权限。

**对与之共享规则的 AWS 账户的限制**  
与其共享了规则的账户无法更改或删除该规则。

**标签**  
只有创建规则的账户可以添加、删除或查看规则上的标签。

要查看规则当前的共享状态（包括共享规则的账户或与其共享了规则的账户），以及将规则与其他账户共享，请执行以下步骤。<a name="resolver-rules-managing-sharing-procedure"></a>

**查看共享状态并与其他 AWS 账户共享查询日志配置**

1. 登录 AWS 管理控制台 并打开 Route 53 控制台，网址为[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 在导航窗格中，选择 **Query Logging**（查询日志记录）。

1. 在导航栏上，选择您在其中创建了规则的区域。

   **Sharing status (共享状态)** 列显示当前账户所创建规则或者与当前账户所共享规则的当前共享状态。
   + **未共享**：当前 AWS 账户创建了规则，但该规则未与任何其他账户共享。
   + **Shared by me (由我共享)**：当前账户创建的规则并且已与一个或多个账户共享。
   + **Shared With me (与我共享)**：其他账户创建的规则并且已与当前账户共享。

1. 选择您要显示共享信息或者您要与其他账户共享的规则的名称。

   在**规则:*rule name***页面上，**所有者**下的值显示创建规则的账户的 ID。除非 **Sharing status (共享状态)** 的值为 **Shared with me (与我共享)**，否则这是当前账户。如果是共享的规则，则 **Owner (所有者)** 是创建该规则并与当前账户进行共享的账户。

   还会显示共享状态。

1. 选择**共享配置**以打开 AWS RAM 控制台

1. 要创建资源共享，请按照*《AWS RAM 用户指南》*中的[在 AWS RAM中创建资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-create.html)的步骤操作。
**注意**  
您无法更新共享设置。如果想要更改任何以下设置，您必须使用新设置重新共享规则，然后删除旧的共享设置。

# 监控域注册
<a name="monitoring-domain-registrations"></a>

Amazon Route 53 控制面板提供有关域注册状态的详细信息，包括：
+ 新域注册的状态
+ 向 Route 53 进行域转移的状态
+ 临近到期日期的域的列表

建议您定期检查 Route 53 控制台中的控制面板（尤其是在注册新域或向 Route 53 转移域之后），以确认没有需要处理的问题。

我们还建议您确认域的联系人信息是最新的。当域到期日期临近时，我们会向域的注册联系人发送电子邮件，其中包含有关域到期时间和续订方法的信息。

# 使用 Amazon Route 53 运行状况检查和亚马逊监控您的资源 CloudWatch
<a name="monitoring-cloudwatch"></a>

您可以通过创建 Amazon Route 53 运行状况检查 CloudWatch 来监控您的资源，该检查用于收集原始数据并将其处理为可读的近乎实时的指标。这些统计数据会保存两周，以便您访问历史信息并更好地了解资源的运行情况。默认情况下，Route 53 运行状况检查的指标数据每隔 CloudWatch 一分钟自动发送到。

有关 Route 53 运行状况检查的详细信息，请参阅 [使用监控运行状况检查 CloudWatch](monitoring-health-checks.md)。有关的更多信息 CloudWatch，请参阅 [Amazon 是什么 CloudWatch？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html) 在《*亚马逊 CloudWatch 用户指南》*中。

## Route 53 运行状况检查的指标和维度
<a name="metrics_dimensions_health_checks"></a>

当您创建运行状况检查时，Amazon Route 53 开始每 CloudWatch 分钟向您指定的资源发送一次指标和维度。通过 Route 53 控制台可以查看运行状况检查的状态。您也可以使用以下过程在 CloudWatch 控制台中查看指标或使用 AWS Command Line Interface (AWS CLI) 查看这些指标。

**使用 CloudWatch 控制台查看指标**

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 在导航窗格中，选择 **Metrics (指标)**。

1. 在 **All Metrics** 选项卡上，选择 **Route 53**。

1. 选择 **Health Check Metrics (运行状况检查指标)**。

**要查看指标，请使用 AWS CLI**
+ 在命令提示符处输入下面的命令：

  ```
  1. aws cloudwatch list-metrics --namespace "AWS/Route53"
  ```

**Topics**
+ [CloudWatch Route 53 运行状况检查的指标](#cloudwatch-metrics)
+ [Route 53 运行状况检查指标的维度](#cloudwatch-dimensions-route-53-metrics)

### CloudWatch Route 53 运行状况检查的指标
<a name="cloudwatch-metrics"></a>

`AWS/Route53` 命名空间包括 Route 53 运行状况检查的以下指标。

**ChildHealthCheckHealthyCount**  
对于计算的运行状况检查，状况良好的运行状况检查的数量。  
有效统计数据：Average（推荐）、Minimum、Maximum  
单位：计数

**ConnectionTime**  
Route 53 运行状况检查程序与端点建立 TCP 连接所用的平均时间（毫秒）。您可以跨所有区域或针对一个选定地理区域查看 `ConnectionTime` 的运行状况检查。  
有效统计数据：Average（推荐）、Minimum、Maximum  
单位：毫秒

**HealthCheckPercentageHealthy**  
将所选端点视为运行状况良好的 Route 53 运行状况检查程序的百分比。  
有效统计数据：Average、Minimum、Maximum  
单位：百分比

**HealthCheckStatus**  
正在检查的运行状况检查端点 CloudWatch 的状态。 **1** 表示健康，**0** 表示不健康。  
有效统计数据：Minimum、Average 和 Maximum  
单位：无

**SSLHandshake时间**  
Route 53 运行状况检查程序完成 SSL 握手所用的平均时间（毫秒）。您可以跨所有区域或针对一个选定地理区域查看 `SSLHandshakeTime` 的运行状况检查。  
有效统计数据：Average（推荐）、Minimum、Maximum  
单位：毫秒

**TimeToFirstByte**  
Route 53 运行状况检查程序接收响应 HTTP 或 HTTPS 请求的第一个字节所用的平均时间（毫秒）。您可以跨所有区域或针对一个选定地理区域查看 `TimeToFirstByte` 的运行状况检查。  
有效统计数据：Average（推荐）、Minimum、Maximum  
单位：毫秒

### Route 53 运行状况检查指标的维度
<a name="cloudwatch-dimensions-route-53-metrics"></a>

Route 53 运行状况检查指标使用 `AWS/Route53` 命名空间并提供了 `HealthCheckId` 的指标。在检索指标时，您必须提供 `HealthCheckId` 维度。

此外，对于 `ConnectionTime`、`SSLHandshakeTime` 和 `TimeToFirstByte`，您可以选择指定 `Region`。如果省略`Region`，则 CloudWatch 返回所有地区的指标。如果包含`Region`，则仅 CloudWatch 返回指定区域的指标。

有关更多信息，请参阅 [使用监控运行状况检查 CloudWatch](monitoring-health-checks.md)。

# 使用 Amazon 监控托管区域 CloudWatch
<a name="monitoring-hosted-zones-with-cloudwatch"></a>

您可以使用 Amazon 收集原始数据并将其处理 CloudWatch 为可读的近乎实时的指标，从而监控您的公共托管区域。在 Route 53 收到指标所依据的 DNS 查询后不久即可获得指标。 CloudWatch Route 53 托管区域的指标数据的粒度为一分钟。

有关更多信息，请参阅以下文档
+ 有关如何在 Amazon CloudWatch 控制台中查看指标以及如何使用 AWS Command Line Interface (AWS CLI) 检索指标的概述和信息，请参阅 [查看公有托管区域的 DNS 查询指标](hosted-zone-public-viewing-query-metrics.md)
+ 有关指标保留期限的信息，请参阅 *Amazon CloudWatch API 参考[GetMetricStatistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html)*中的。
+ 有关的更多信息 CloudWatch，请参阅 [Amazon 是什么 CloudWatch？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html) 在《*亚马逊 CloudWatch 用户指南》*中。
+ 有关 CloudWatch 指标的更多信息，请参阅[亚马逊* CloudWatch 用户指南中的使用亚马逊 CloudWatch *指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)。

**Topics**
+ [CloudWatch Route 53 公共托管区域的指标](#cloudwatch-metrics-route-53-hosted-zones)
+ [CloudWatch Route 53 公共托管区域指标的维度](#cloudwatch-dimensions-route-53-hosted-zones)

## CloudWatch Route 53 公共托管区域的指标
<a name="cloudwatch-metrics-route-53-hosted-zones"></a>

`AWS/Route53` 命名空间包含 Route 53 托管区的以下指标：

**DNSQueries**  
对于托管区，Route 53 在指定时间段内响应的 DNS 查询数。  
有效统计数据：总和， SampleCount  
单位：计数  
区域：Route 53 是一项全球性服务。要获取托管区域指标，您必须为区域指定美国东部（弗吉尼亚北部）。

**DNSSECInternal失败**  
如果托管区域中的任何对象处于 INTERNAL\$1FAILURE 状态，则值为 1。否则，值为 0。  
有效统计数据：Sum  
单位：计数  
卷：每个托管区每 4 小时 1 个  
区域：Route 53 是一项全球性服务。要获取托管区域指标，您必须为区域指定美国东部（弗吉尼亚北部）。

**DNSSECKeySigningKeysNeedingAction**  
处于 ACTION\$1NEEDED 状态的密钥签名密钥 (KSKs) 的数量（由于 KMS 故障）。  
有效统计数据：总和， SampleCount  
单位：计数  
卷：每个托管区每 4 小时 1 个  
区域：Route 53 是一项全球性服务。要获取托管区域指标，您必须为区域指定美国东部（弗吉尼亚北部）。

**DNSSECKeySigningKeyMaxNeedingActionAge**  
密钥签名密钥 (KSK) 设置为 ACTION\$1NEEDED 状态后已过去的时间。  
有效统计数据：Maximum  
单位：秒  
卷：每个托管区每 4 小时 1 个  
区域：Route 53 是一项全球性服务。要获取托管区域指标，您必须为区域指定美国东部（弗吉尼亚北部）。

**DNSSECKeySigningKeyAge**  
自创建密钥签名密钥 (KSK) 以来（而非自激活以来）所经过的时间。  
有效统计数据：Maximum  
单位：秒  
卷：每个托管区每 4 小时 1 个  
区域：Route 53 是一项全球性服务。要获取托管区域指标，您必须为区域指定美国东部（弗吉尼亚北部）。

## CloudWatch Route 53 公共托管区域指标的维度
<a name="cloudwatch-dimensions-route-53-hosted-zones"></a>

托管区域的 Route 53 指标使用 `AWS/Route53` 命名空间并提供了 `HostedZoneId` 的指标。要获取 DNS 查询数量，您必须在 `HostedZoneId` 维度中指定托管区域的 ID。

# 使用亚马逊监控 Route 53 VPC 解析器终端节点 CloudWatch
<a name="monitoring-resolver-with-cloudwatch"></a>

您可以使用 Amazon CloudWatch 来监控由 Route 53 VPC 解析器终端节点转发的 DNS 查询数量。Amazon CloudWatch 收集原始数据并将其处理为可读的近乎实时的指标。这些统计数据会保存两周，以便您访问历史信息并更好地了解资源的运行情况。默认情况下，Resolver 端点的指标数据每隔五分钟自动发送 CloudWatch一次。五分钟间隔也是可以发送指标数据的最小间隔。

有关 VPC 解析器的更多信息，请参阅[什么是 Route 53 VPC 解析器？](resolver.md)。有关的更多信息 CloudWatch，请参阅 [Amazon 是什么 CloudWatch？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html) 在《*亚马逊 CloudWatch 用户指南》*中。

## Route 53 VPC 解析器的指标和维度
<a name="metrics-dimensions-resolver"></a>

当您配置 VPC Resolver 以将 DNS 查询转发到您的网络，反之亦然时，VPC 解析器开始每五分钟发送一次[指标](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/monitoring-resolver-with-cloudwatch.html#cloudwatch-metrics-resolver)和[维度](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/monitoring-resolver-with-cloudwatch.html#cloudwatch-dimensions-resolver)， CloudWatch 大约与转发的查询数量相同。您可以使用以下过程在 CloudWatch 控制台中查看指标或使用 AWS Command Line Interface (AWS CLI) 查看这些指标。

**使用控制台查看 VPC 解析器 CloudWatch 指标**

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 在导航栏上，选择您在其中创建了端点的区域。

1. 在导航窗格中，选择**指标**。

1. 在**全部指标**选项卡上，选择 **Route 53 Resolver (Route 53 解析程序)**。

1. 选择 **By Endpoint (按端点)** 以查看指定端点的查询计数。然后，选择您想要查看其查询数的端点。

   选择 “**跨所有终端节点**” 可查看当前 AWS 账户创建的所有入站终端节点或所有出站终端节点的查询计数。然后选择**InboundQueryVolume**或**OutboundQueryVolume**以查看所需的计数。

**要查看指标，请使用 AWS CLI**
+ 在命令提示符处输入下面的命令：

  ```
  1. aws cloudwatch list-metrics --namespace "AWS/Route53Resolver"
  ```

**Topics**
+ [CloudWatch Route 53 VPC 解析器的基本指标](#cloudwatch-metrics-resolver)
+ [CloudWatch Route 53 VPC 解析器的详细指标](#cloudwatch-detailed-metrics-resolver)
+ [Route 53 VPC 解析器指标的维度](#cloudwatch-dimensions-resolver)

### CloudWatch Route 53 VPC 解析器的基本指标
<a name="cloudwatch-metrics-resolver"></a>

`AWS/Route53Resolver`命名空间包括免费的 Route 53 VPC 解析器终端节点和 IP 地址的基本指标。

**Topics**
+ [Route 53 VPC 解析器终端节点的指标](#cloudwatch-metrics-resolver-endpoint)
+ [Route 53 VPC 解析器 IP 地址的指标](#cloudwatch-metrics-resolver-ip-address)

#### Route 53 VPC 解析器终端节点的指标
<a name="cloudwatch-metrics-resolver-endpoint"></a>

`AWS/Route53Resolver`命名空间包括 Route 53 VPC 解析器终端节点的以下指标。

**EndpointHealthyENICount**  
 处于 `OPERATIONAL` 状态的弹性网络接口数。这表示此端点（由 `EndpointId` 指定）的 Amazon VPC 网络接口配置正确，并能够在您的网络和 Resolver 之间传递入站和出站 DNS 查询。  
有效统计数据：最小值、最大值、平均值  
单位：计数

**EndpointUnhealthyENICount**  
 处于 `AUTO_RECOVERING` 状态的弹性网络接口数。  
这意味着解析程序正在尝试恢复一个或多个与端点关联的 Amazon VPC 网络接口（由 `EndpointId` 指定）。在恢复过程中，端点会工作但容量受限，并且在完全恢复之前无法处理 DNS 查询。  
有效统计数据：最小值、最大值、平均值  
单位：计数

**InboundQueryVolume**  
对于入站终端节点，指 VPCs 通过指定的终端节点从您的网络转发到您的网络的 DNS 查询数量`EndpointId`。  
有效统计数据：Sum  
单位：计数

**OutboundQueryVolume**  
对于出站终端节点，指通过指定的终端节点从您转发 VPCs 到您的网络的 DNS 查询数量`EndpointId`。  
有效统计数据：Sum  
单位：计数

**OutboundQueryAggregateVolume**  
对于出站终端节点，指从 Amazon 转发 VPCs 到您的网络的 DNS 查询总数，包括以下内容：  
+ 通过由指定的终端节点从您的网络转发 VPCs 到您的网络的 DNS 查询数量`EndpointId`。
+ 当当前账户与其他账户共享 Resolver 规则时 VPCs ，由其他账户创建的查询将通过`EndpointId`指定的终端节点转发到您的网络。
有效统计数据：Sum  
单位：计数

**ResolverEndpointCapacityStatus**  
Resolver 端点的容量状态。该指标表示当前的容量利用率状态，其中：0 = 正常（正常运行容量），1 = 警告（至少有一个弹性网络接口的容量利用率超过 50%），2 = 严重（至少有一个弹性网络接口的容量利用率超过 75%）。  
容量状态由多个因素决定，包括查询量、查询延迟、DNS 协议、DNS 数据包大小和连接跟踪状态。  
有效统计数据：Maximum  
单位：无

**VPC 解析器终端节点容量管理的最佳实践**  
为解决容量问题，我们通常建议您增加 Resolver 端点的弹性网络接口数量。但是，以下是针对特定端点类型的重要注意事项：

对于**入站端点**，流量负载平衡取决于客户。因此，容量警告或严重提醒可能表示存在一个“热点”，其中一部分弹性网络接口的利用率不成比例。
+ 要确定潜在的负载平衡问题，请分别检查每个 elastic network interface 的[InboundQueryVolume](#cloudwatch-metrics-resolver-ip-address)指标。

对于**出站端点**，流量将在弹性网络接口之间自动平衡。容量问题可能是由于目标名称服务器出现问题，也可能是由于高延迟的超时查询使 Resolver 网络接口不堪重负。
+ 在这些情况下，仅仅增加弹性网络接口数量可能没有效果，此时我们建议修复目标名称服务器。

#### Route 53 VPC 解析器 IP 地址的指标
<a name="cloudwatch-metrics-resolver-ip-address"></a>

`AWS/Route53Resolver` 命名空间包括与 Resolver 入站或出站端点关联的每个 IP 地址的以下指标。（当您指定终端节点时，VPC 解析器会创建一个 Amazon VPC [弹性网络接口](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)。）

**InboundQueryVolume**  
对于入站端点的每个 IP 地址，从您的网络转发到指定 IP 地址的 DNS 查询数。每个 IP 地址都由 IP 地址 ID 标识。您可以使用 Route 53 控制台获取此值。在适用端点的页面上，在“IP 地址”部分中参阅 **IP address ID (IP 地址 ID)** 列。您也可以使用[ListResolverEndpointIpAddresses](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpointIpAddresses.html)以编程方式获取值。  
有效统计数据：Sum  
单位：计数

**OutboundQueryAggregateVolume**  
对于您的出站终端节点的每个 IP 地址，即从 Amazon 转发 VPCs 到您的网络的 DNS 查询总数，包括以下内容：  
+ 使用指定 IP 地址从您的网络转发 VPCs 到您的网络的 DNS 查询数量。
+ 当当前账户与其他账户共享 Resolver 规则时 VPCs ，来自这些规则的查询由其他账户创建，然后使用指定的 IP 地址转发到您的网络。
每个 IP 地址都由 IP 地址 ID 标识。您可以使用 Route 53 控制台获取此值。在适用端点的页面上，在“IP 地址”部分中参阅 **IP address ID (IP 地址 ID)** 列。您也可以使用[ListResolverEndpointIpAddresses](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpointIpAddresses.html)以编程方式获取值。  
有效统计数据：Sum  
单位：计数

### CloudWatch Route 53 VPC 解析器的详细指标
<a name="cloudwatch-detailed-metrics-resolver"></a>

Route 53 VPC Resolver 提供 RNI 增强版和目标名称服务器指标作为终端节点的选择加入功能。这些指标每隔 1 分钟发送 CloudWatch 一次。

**注意**  
默认情况下，详细指标未启用，但可以在终端节点级别启用。在使用 RniEnhancedMetricsEnabled 和 TargetNameServerMetricsEnabled 标志创建或更新端点时，可以通过编程方式启用这些指标。有关更多信息，请参阅[CreateResolverEndpoint](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html)和[UpdateResolverEndpoint](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_UpdateResolverEndpoint.html)。
使用 Route 53 Resolver 终端节点详细指标需支付标准 CloudWatch 定价和费用。有关更多信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

**Topics**
+ [RNI 增强指标](#cloudwatch-detailed-metrics-resolver-endpoints-ip-addresses)
+ [目标名称服务器指标](#cloudwatch-detailed-metrics-resolver-endpoints-target-nameservers)

#### RNI 增强指标
<a name="cloudwatch-detailed-metrics-resolver-endpoints-ip-addresses"></a>

Route 53 Resolver 向亚马逊发布了 RNI 增强指标， CloudWatch 用于监控解析器终端节点和解析器 IP 地址的性能和运行状况。`AWS/Route53Resolver`命名空间包括以下 Route 53 Resolver 入站和出站终端节点的 RNI 增强指标`EndpointId`，`RniId`维度：

**P90 ResponseTime**  
与解析器终端节点 (`RniId`) 关联的解析器 IP () 收到的 DNS 查询的响应延迟百分位数 () `EndpointId`  
有效统计数据：Maximum  
单位：微秒

**ServFailQueries**  
发送到与解析器终端节点关联的解析器 IP (`RniId`) 的 DNS 查询的 SERVFAIL 响应数 () `EndpointId`  
有效统计数据：Sum  
单位：计数

**NxDomainQueries**  
发送到与解析器终端节点关联的解析器 IP (`RniId`) 的 DNS 查询的 NXDOMAIN 响应数量 () `EndpointId`  
有效统计数据：Sum  
单位：计数

**RefusedQueries**  
发送到与解析器终端节点关联的解析器 IP (`RniId`) 的 DNS 查询的拒绝响应数 () `EndpointId`  
有效统计数据：Sum  
单位：计数

**FormErrorQueries**  
发送到与解析器终端节点关联的解析器 IP (`RniId`) 的 DNS 查询的 FORMERR 响应数 () `EndpointId`  
有效统计数据：Sum  
单位：计数

**TimeoutQueries**  
发送到与解析器终端节点关联的解析器 IP (`RniId`) 的 DNS 查询的超时次数 () `EndpointId`  
有效统计数据：Sum  
单位：计数

#### 目标名称服务器指标
<a name="cloudwatch-detailed-metrics-resolver-endpoints-target-nameservers"></a>

Route 53 Resolver 向 Amazon 发布目标名称服务器指标， CloudWatch 用于监控与解析器终端节点关联的目标名称服务器的性能和可用性。`AWS/Route53Resolver`命名空间包含 Route 53 Resolver 出站终端节点的以下详细指标`EndpointID`，`TargetNameServerIP`维度：

**P90 ResponseTime**  
通过解析器端点发送的 DNS 查询的目标域名服务器 IP (`TargetNameServerIP`) 的响应延迟 () 的第 90 个百分位数 () `EndpointID`  
有效统计数据：Maximum  
单位：微秒

**RequestQueries**  
通过解析器端点 () 发送到目标名称服务器 IP (`TargetNameServerIP`) 的 DNS 查询数。`EndpointID`  
有效统计数据：Sum  
单位：计数

**TimeoutQueries**  
通过解析器端点 (`EndpointID`) 发送的、在目标名称服务器 IP (`TargetNameServerIP`) 处超时的 DNS 查询数。  
有效统计数据：Sum  
单位：计数

**注意**  
在某些情况下，可能会在 VPC 解析器指标 (ResolverEndpointCapacityStatus) 和 RNI 增强型指标中观察到差距。当您的网络接口连续进行定期维护或更新时，可能会出现这些差距。将网络接口返回服务后，我们的服务至少需要 1 分钟才能收集运营数据并发布这些指标。这些差距并不表示您的 VPC 解析器终端节点出现故障。如果您要为这些指标配置 CloudWatch 警报，我们建议您采取以下措施：  
将警报设置为 “将丢失的数据视为忽略”，或者
将报警阈值的评估期配置为超过五分钟。
这些设置将有助于减少正常维护活动期间的错误警报。

### Route 53 VPC 解析器指标的维度
<a name="cloudwatch-dimensions-resolver"></a>

入站和出站终端节点的 Route 53 VPC 解析器指标使用`AWS/Route53Resolver`命名空间并提供以下维度的指标：
+ `EndpointId`：如果您为`EndpointId`维度指定值，则 CloudWatch 返回指定终端节点的 DNS 查询次数。如果您未指定`EndpointId`，则 CloudWatch 返回当前 AWS 账户为所有终端节点创建的 DNS 查询次数。
+ `RniId``OutboundQueryAggregateVolume`和`InboundQueryVolume`指标支持维度。
+ `EndpointId`、、、`P90ResponseTime``ServFailQueries``NxDomainQueries``RefusedQueries``FormErrorQueries`、和与解析器端点关联`TimeoutQueries`的解析器 IP 地址支持`RniId`维度。
+ `EndpointID``P90ResponseTime``RequestQueries`、和与解析器端点关联`TimeoutQueries`的目标名称服务器支持`TargetNameServerIP`维度。

# 使用 Amazon 监控解析器 DNS 防火墙规则组 CloudWatch
<a name="monitoring-resolver-dns-firewall-with-cloudwatch"></a>

您可以使用 Amazon CloudWatch 来监控由解析器 DNS 防火墙规则组筛选的 DNS 查询数量。Amazon CloudWatch 收集原始数据并将其处理为可读的近乎实时的指标。这些统计数据会保存两周，以便您访问历史信息并更好地了解资源的运行情况。默认情况下，DNS 防火墙规则组的指标数据每隔五分钟自动发送 CloudWatch 一次。

有关 DNS Firewall 的更多信息，请参阅 [使用 DNS Firewall 筛选出站 DNS 流量](resolver-dns-firewall.md)。有关的更多信息 CloudWatch，请参阅 [Amazon 是什么 CloudWatch？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html) 在《*亚马逊 CloudWatch 用户指南》*中。

## 解析器 DNS 防火墙的指标和维度
<a name="metrics-dimensions-resolver-dns-firewall"></a>

当您将解析器 DNS 防火墙规则组与 VPC 关联以过滤 DNS 查询时，DNS 防火墙开始每 5 分钟向 CloudWatch 其筛选的查询发送一次指标和维度。有关 DNS Firewall 的指标和维度的信息，请参阅 [CloudWatch 解析器 DNS 防火墙的指标](#cloudwatch-metrics-resolver-dns-firewall)。

您可以使用以下过程在 CloudWatch 控制台中查看指标或使用 AWS Command Line Interface (AWS CLI) 查看这些指标。

**使用 CloudWatch 控制台查看 DNS 防火墙指标**

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 在导航栏上，选择要查看的区域。

1. 在导航窗格中，选择**指标**。

1. 在**所有指标**选项卡上，选择 **Route 53 VPC 解析器**。

1. 选择您感兴趣的指标。

**要查看指标，请使用 AWS CLI**
+ 在命令提示符处输入下面的命令：

  ```
  1. aws cloudwatch list-metrics --namespace "AWS/Route53Resolver"
  ```

**Topics**
+ [CloudWatch 解析器 DNS 防火墙的指标](#cloudwatch-metrics-resolver-dns-firewall)

### CloudWatch 解析器 DNS 防火墙的指标
<a name="cloudwatch-metrics-resolver-dns-firewall"></a>

`AWS/Route53Resolver`命名空间包括解析器 DNS 防火墙规则组的指标。

**Topics**
+ [解析器 DNS 防火墙规则组的指标](#cloudwatch-metrics-resolver-dns-firewall-rule-group)
+ [的指标 VPCs](#cloudwatch-metrics-resolver-vpc)
+ [防火墙规则组和 VPC 关联的指标](#cloudwatch-metrics-resolver-firewall-vpc)
+ [防火墙规则组中域列表的指标](#cloudwatch-metrics-domain-list-firewall)

#### 解析器 DNS 防火墙规则组的指标
<a name="cloudwatch-metrics-resolver-dns-firewall-rule-group"></a>

**FirewallRuleGroupQueryVolume**  
与防火墙规则组（由 `FirewallRuleGroupId` 指定）匹配的 DNS Firewall 查询数。  
维度：`FirewallRuleGroupId`  
有效统计数据：Sum  
单位：计数

#### 的指标 VPCs
<a name="cloudwatch-metrics-resolver-vpc"></a>

**VpcFirewallQueryVolume**  
来自 VPC（由 `VpcId` 指定）的 DNS Firewall 查询数。  
维度：`VpcId`  
有效统计数据：Sum  
单位：计数

#### 防火墙规则组和 VPC 关联的指标
<a name="cloudwatch-metrics-resolver-firewall-vpc"></a>

**FirewallRuleGroupVpcQueryVolume**  
与防火墙规则组（由 `FirewallRuleGroupId` 指定）匹配且来自 VPC（由 `VpcId` 指定）的 DNS Firewall 查询数。  
维度：`FirewallRuleGroupId, VpcId`  
有效统计数据：Sum  
单位：计数

#### 防火墙规则组中域列表的指标
<a name="cloudwatch-metrics-domain-list-firewall"></a>

**FirewallRuleQueryVolume**  
与防火墙规则组（由 `FirewallRuleGroupId` 指定）中的防火墙域列表（（由 `FirewallDomainListId` 指定））匹配的 DNS 防火墙查询数。  
维度：`FirewallRuleGroupId, FirewallDomainListId`  
有效统计数据：Sum  
单位：计数

# 使用管理解析器 DNS 防火墙事件 Amazon EventBridge
<a name="dns-firewall-eventbridge-integration"></a>

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

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

![\[AWS 服务将事件发送到 EventBridge 默认事件总线。如果事件与规则的事件模式匹配，则 EventBridge 将该事件发送到为该规则指定的目标。\]](http://docs.aws.amazon.com/zh_cn/Route53/latest/DeveloperGuide/images/eventbridge-integration-how-it-works.png)


**Topics**
+ [解析器 DNS 防火墙事件](#supported-events)
+ [使用 EventBridge 规则发送解析器 DNS 防火墙事件](#eventbridge-using-events-rules)
+ [Amazon EventBridge 权限](#eventbridge-permissions)
+ [其他 EventBridge 资源](#eventbridge-additonal-resources)
+ [解析器 DNS 防火墙事件详细信息参考](events-detail-reference.md)

## 解析器 DNS 防火墙事件
<a name="supported-events"></a>

VPC 解析器会自动将 DNS 防火墙事件发送到默认 EventBridge 事件总线。可以在事件总线上创建规则；每个规则都包括一个事件模式以及一个或多个目标。与规则的事件模式相匹配的事件会[尽力](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html#eb-service-event-delivery-level)传送给指定的目标。事件可能不按顺序传送。

以下事件由 DNS Firewall 生成。有关更多信息，请参阅*《Amazon EventBridge 用户指南》*中的 [EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)。


| 事件详细信息类型 | 说明 | 
| --- | --- | 
|  [DNS Firewall 阻止](events-detail-reference.md#dns-firewall-alert)  |  对域执行的任何阻止操作。 | 
|  [DNS Firewall 警报](events-detail-reference.md#dns-firewall-block)  |  对域执行的任何警报操作。 | 

## 使用 EventBridge 规则发送解析器 DNS 防火墙事件
<a name="eventbridge-using-events-rules"></a>

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

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

1. 为指定的规则创建事件模式：
   + VPC 解析器是规则评估的事件来源。
   + （可选）：要匹配的任何其他事件数据。

   有关更多信息，请参阅 [为解析器 DNS 防火墙事件创建事件模式](#eventbridge-using-events-rules-patterns)。

1. （可选）：创建*输入转换器*，在将信息 EventBridge 传递给规则目标之前，对事件中的数据进行自定义。

   有关更多信息，请参阅《EventBridge 用户指南》**中的[输入转换](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-transform-target-input.html)。

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

   目标可以是其他 AWS 服务、 software-as-a-service (SaaS) 应用程序、API 目标或其他自定义终端节点。有关更多信息，请参阅 *EventBridge 用户指南*中的[目标](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html)。

有关创建事件总线规则的全面说明，请参阅《EventBridge 用户指南》**中的[创建对事件作出反应的规则](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html)。

### 为解析器 DNS 防火墙事件创建事件模式
<a name="eventbridge-using-events-rules-patterns"></a>

当 DNS Firewall 将事件传送到默认事件总线时，会 EventBridge 使用为每条规则定义的事件模式来确定是否应将事件传送到规则的目标。事件模式与所需 DNS Firewall 事件中的数据相匹配。每个事件模式是一个 JSON 对象，其中包含：
+ 标识发送事件的服务的 `source` 属性。对于 DNS Firewall 事件，其源为 `aws.route53resolver`。
+ （可选）：包含要匹配的事件类型数组的 `detail-type` 属性。
+ （可选）：包含要匹配的其他事件数据的 `detail` 属性。

例如，以下事件模式与来自 DNS Firewall 的警报和阻止事件相匹配：

```
{
  "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 时间发送了 exampledomain.com 的 DNS 查询。DNS Firewall 在首次发生时发送了警报或阻止事件。

1. 实例 i-123 在 T1\$130 分钟内发送了一 DNSquery 个 exampledomain.com。DNS Firewall 未发送警报或阻止事件，因为这是在 6 小时内重复发生的。

1. 实例 i-123 在 T1\$17 小时的时间发送了 exampledomain.com 的 DNS 查询。DNS Firewall 发送了警报或阻止事件，因为这是在 6 小时之外发生的。

有关写入事件模式的更多信息，请参阅《EventBridge 用户指南》**中的[事件模式](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)。

### 正在测试 DNS 防火墙事件的事件模式 EventBridge
<a name="eventbridge-using-events-testing"></a>

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

有关更多信息，请参阅《*EventBridge 用户指南*[》中的使用 EventBridge 沙盒测试事件模式](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-pattern-sandbox.html)。

### 为 DNS 防火墙创建 EventBridge 规则和目标
<a name="dns-firewall-rule-to-lambda-example"></a>

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

1.  AWS CLI 用于创建 EventBridge 规则：

   ```
   aws events put-rule \
   --event-pattern "{\"source\":
   [\"aws.route53resolver\"],\"detail-type\":
   [\"DNS Firewall Block\", \"DNS Firewall Alert\"]}" \
   --name dns-firewall-rule
   ```

1. 附加 Lambda 函数作为规则的目标：

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

1. 要添加调用目标所需的权限，请运行以下 Lambda AWS CLI 命令：

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

## Amazon EventBridge 权限
<a name="eventbridge-permissions"></a>

DNS Firewall 不需要任何其他权限即可向 Amazon EventBridge传输事件。

您指定的目标可能需要特定的权限或配置。有关为目标使用特定服务的更多详细信息，请参阅《Amazon EventBridge 用户指南》**中的 [Amazon EventBridge 目标](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html)。

## 其他 EventBridge 资源
<a name="eventbridge-additonal-resources"></a>

有关如何使用 EventBridge 来处理和管理事件的更多信息，请参阅[https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)中的以下主题。
+ 有关事件总线工作原理的详细信息，请参阅 [Amazon EventBridge 事件总线](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-bus.html)。
+ 有关事件结构的信息，请参阅[事件](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)。
+ 有关构造事件模式 EventBridge 以便在将事件与规则进行匹配时使用的信息，请参阅[事件模式](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)。
+ 有关创建规则以指定 EventBridge 所处理事件的信息，请参阅[规则](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)。
+ 有关指定向哪些服务或其他[目标 EventBridge 发送匹配事件的信息，请参阅 Targets](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html)。

# 解析器 DNS 防火墙事件详细信息参考
<a name="events-detail-reference"></a>

来自 AWS 服务的所有事件都有一组公共字段，其中包含有关事件的元数据，例如作为事件来源的 AWS 服务、事件的生成时间、事件发生的账户和区域等。有关这些常规字段的定义，请参阅《Amazon EventBridge 用户指南》**中的[事件结构参考](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events-structure.html)。

此外，每个事件都有一个 `detail` 字段，其中包该特定事件专有的数据。下面的参考定义了各种 DNS Firewall 事件的详细信息字段。

使用 EventBridge 选择和管理 DNS 防火墙事件时，请记住以下几点：
+ 来自 DNS Firewall 的所有事件的 `source` 字段都设置为 `aws.route53resolver`。
+ `detail-type` 字段指定事件类型。

  例如，`DNS Firewall Block` 或 `DNS Firewall Alert`。
+ `detail` 字段包含该特定事件专有的数据。

有关如何构造使规则能够匹配 DNS Firewall 事件的事件模式的信息，请参阅*《Amazon EventBridge 用户指南》*中的[事件模式](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)。

有关事件及其 EventBridge 处理方式的更多信息，请参阅《*Amazon EventBridge 用户指南*》中的[Amazon EventBridge 事件](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)。

**Topics**
+ [DNS Firewall 警报事件详细信息](#dns-firewall-alert)
+ [DNS Firewall 阻止事件详细信息](#dns-firewall-block)

## DNS Firewall 警报事件详细信息
<a name="dns-firewall-alert"></a>

以下是警报状态事件的详细信息字段。

之所以包含 `source` 和 `detail-type` 字段，是因为其包含 Route 53 事件的特定值。

```
{...,
 "detail-type": "DNS Firewall Alert",
  "source": "aws.route53resolver",
 ...,
 "detail": {
      "account-id": "string",
      "last-observed-at": "string",
      "query-name": "string",
      "query-type": "string",
      "query-class": "string",
      "transport": "string",
      "firewall-rule-action": "string",
      "firewall-rule-group-id": "string",
      "firewall-domain-list-id": "string",
      "firewall-protection": "string",
      "resources": [{
         "resource-type": "string",
         "instance-details": {
             "id": "string",
       }
     },
     { 
         "resource-type": "string",
         "resolver-endpoint-details": {
         "id": "string"
       }
     }
 ]
```

`detail-type`  
标识事件的类型。  
对于这一事件，此值为 `DNS Firewall Alert`。

`source`  
标识生成事件的服务。对于 DNS Firewall 事件，此值为 `aws.route53resolver`。

`detail`  
包含关于事件信息的 JSON 对象。生成事件的服务决定该字段的内容。  
对于此事件，此数据包括：    
`account-id`  
创建 VPC 的 ID。 AWS 账户   
`last-observed-at`  
在 VPC 中进行 Alert/Block 查询的时间戳。  
`query-name`  
查询中指定的域名 (example.com) 或子域名 (www.example.com)。  
`query-type`  
在请求中指定的 DNS 记录类型，或 ANY。有关 Route 53 支持的类型的信息，请参阅 [支持的 DNS 记录类型](ResourceRecordTypes.md)。  
`query-class`  
查询的类。  
`transport`  
用于提交 DNS 查询的协议。  
`firewall-rule-action`  
查询中与域名匹配的规则指定的操作。`ALERT` 或 `BLOCK`。  
`firewall-rule-group-id`  
查询中与域名匹配的 DNS Firewall 规则组 ID。有关防火墙规则组更多信息，请参阅 DNS Firewall [DNS Firewall 规则组和规则](resolver-dns-firewall-rule-groups.md)。  
`firewall-domain-list-id`  
查询中与域名匹配的规则使用的域列表。  
`firewall-protection`  
DNS 防火墙高级保护：DGA、DICTIONARY\$1DGA 或 DNS\$1TUNNELING。有关更多信息，请参阅 DNS Firewall [解析器 DNS 防火墙高级](firewall-advanced.md)。  
`resourcese`  
包含资源类型以及与其有关的其他详细信息。  
`resource-type`  
指定资源类型，例如解析程序端点或 VPC 实例。  
`resource-type-detail`  
有关该资源的其他详细信息。

**Example DNS Firewall 警报事件**  <a name="dns-firewall-alert.example"></a>
以下是示例警报事件。  

```
{
 "version": "1.0",
 "id": "8e5622f9-d81c-4d81-612a-9319e7ee2506",
 "detail-type": "DNS Firewall Alert",
 "source": "aws.route53resolver",
 "account": "123456789012",
 "time": "2023-05-30T21:52:17Z",
 "region": "us-west-2",
 "resources": [],
 "detail": {
 "account-id": "123456789012",
 "last-observed-at": "2023-05-30T20:15:15.900Z",
 "query-name": "15.3.4.32.in-addr.arpa.",
 "query-type": "A",
 "query-class": "IN",
 "transport": "UDP",
 "firewall-rule-action": "ALERT",
 "firewall-rule-group-id": "rslvr-frg-01234567890abcdef",
 "firewall-domain-list-id": "rslvr-fdl-01234567890abcdef",
 "firewall-protection": "DGA",
 "resources": [{
      "resource-type": "instance",
      "instance-details": {
         "id": "i-05746eb48123455e0",
       }
     },
     { 
      "resource-type": "resolver-endpoint",
      "resolver-endpoint-details": {
         "id": "i-05746eb48123455e0"
       }
     }
 ],
"src-addr": "4.5.64.102",
"src-port": "56067",
"vpc-id": "vpc-7example"
 }
}
```

## DNS Firewall 阻止事件详细信息
<a name="dns-firewall-block"></a>

以下是的详细信息字段*event name*。

之所以包含 `source` 和 `detail-type` 字段，是因为其包含 Route 53 事件的特定值。

```
{...,
 "detail-type": "DNS Firewall Block",
  "source": "aws.route53resolver",
 ...,
 "detail": {
      "account-id": "string",
      "last-observed-at": "string",
      "query-name": "string",
      "query-type": "string",
      "query-class": "string",
      "transport": "string",
      "firewall-rule-action": "string",
      "firewall-rule-group-id": "string",
      "firewall-domain-list-id": "string",
      "firewall-protection": "string",
      "resources": [{
         "resource-type": "string",
         "instance-details": {
             "id": "string",
       }
     },
     { 
         "resource-type": "string",
         "resolver-endpoint-details": {
         "id": "string"
       }
     }
 ]
```

`detail-type`  
标识事件的类型。  
对于这一事件，此值为 `DNS Firewall Alert`。

`source`  
标识生成事件的服务。对于 DNS Firewall 事件，此值为 `aws.route53resolver`。

`detail`  
包含关于事件信息的 JSON 对象。生成事件的服务决定该字段的内容。  
对于此事件，此数据包括：    
`account-id`  
创建 VPC 的 ID。 AWS 账户   
`last-observed-at`  
在 VPC 中进行 Alert/Block 查询的时间戳。  
`query-name`  
查询中指定的域名 (example.com) 或子域名 (www.example.com)。  
`query-type`  
在请求中指定的 DNS 记录类型，或 ANY。有关 Route 53 支持的类型的信息，请参阅 [支持的 DNS 记录类型](ResourceRecordTypes.md)。  
`query-class`  
查询的类。  
`transport`  
用于提交 DNS 查询的协议。  
`firewall-rule-action`  
查询中与域名匹配的规则指定的操作。`ALERT` 或 `BLOCK`。  
`firewall-rule-group-id`  
查询中与域名匹配的 DNS Firewall 规则组 ID。有关防火墙规则组更多信息，请参阅 DNS Firewall [DNS Firewall 规则组和规则](resolver-dns-firewall-rule-groups.md)。  
`firewall-domain-list-id`  
查询中与域名匹配的规则使用的域列表。  
`firewall-protection`  
DNS 防火墙高级保护：DGA、DICTIONARY\$1DGA 或 DNS\$1TUNNELING。有关更多信息，请参阅 DNS Firewall [解析器 DNS 防火墙高级](firewall-advanced.md)。  
`resourcese`  
包含资源类型以及与其有关的其他详细信息。  
`resource-type`  
指定资源类型，例如解析程序端点或 VPC 实例。  
`resource-type-detail`  
有关该资源的其他详细信息。

**Example 事件示例**  <a name="dns-firewall-block.example"></a>
以下是示例阻止事件。  

```
{
 "version": "1.0",
 "id": "8e5622f9-d81c-4d81-612a-9319e7ee2506",
 "detail-type": "DNS Firewall Block",
 "source": "aws.route53resolver",
 "account": "123456789012",
 "time": "2023-05-30T21:52:17Z",
 "region": "us-west-2",
 "resources": [],
 "detail": {
 "account-id": "123456789012",
 "last-observed-at": "2023-05-30T20:15:15.900Z",
 "query-name": "15.3.4.32.in-addr.arpa.",
 "query-type": "A",
 "query-class": "IN",
 "transport": "UDP",
 "firewall-rule-action": "BLOCK",
 "firewall-rule-group-id": "rslvr-frg-01234567890abcdef",
 "firewall-domain-list-id": "rslvr-fdl-01234567890abcdef",
 "firewall-protection": "DNS_TUNNELING",
 "resources": [{
      "resource-type": "instance",
      "instance-details": {
         "id": "i-05746eb48123455e0"
       }
     },
     { 
      "resource-type": "resolver-endpoint",
      "resolver-endpoint-details": {
         "id": "i-05746eb48123455e0",
       }
     }
 ],
"src-addr": "4.5.64.102",
"src-port": "56067",
"vpc-id": "vpc-7example"
 }
}
```

# 使用记录亚马逊 Route 53 API 调用 AWS CloudTrail
<a name="logging-using-cloudtrail"></a>

Route 53 与 AWS CloudTrail一项服务集成，该服务提供用户、角色或 AWS 服务在 Route 53 中采取的操作的记录。 CloudTrail 将 Route 53 的所有 API 调用捕获为事件，包括来自 Route 53 控制台的调用和对 Route 53 的代码调用 APIs。如果您创建了跟踪，则可以将 CloudTrail 事件持续传输到 Amazon S3 存储桶，包括 Route 53 的事件。如果您未配置跟踪，您仍然可以在 CloudTrail 控制台的 “事件**历史记录” 中查看最新的事件**。使用收集的信息 CloudTrail，您可以确定向 Route 53 发出的请求、发出请求的 IP 地址、谁发出了请求、何时发出请求以及其他详细信息。

**Topics**
+ [53 号公路的信息在 CloudTrail](#route-53-info-in-cloudtrail)
+ [在事件历史记录中查看 Route 53 事件](#route-53-events-in-cloudtrail-event-history)
+ [了解 Route 53 日志文件条目](#understanding-route-53-entries-in-cloudtrail)

## 53 号公路的信息在 CloudTrail
<a name="route-53-info-in-cloudtrail"></a>

CloudTrail 在您创建 AWS 账户时已在您的账户上启用。当 Route 53 中发生活动时，该活动会与其他 AWS 服务CloudTrail 事件一起记录在**事件历史**记录中。您可以在自己的 AWS 账户中查看、搜索和下载最近发生的事件。有关更多信息，请参阅[使用事件历史查看 CloudTrail 事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)。

要持续记录您的 AWS 账户中的事件，包括 Route 53 的事件，请创建跟踪。跟踪允许 CloudTrail 将日志文件传输到 Amazon S3 存储桶。默认情况下，在控制台中创建跟踪记录时，此跟踪记录应用于所有区域。跟踪记录 AWS 分区中所有区域的事件，并将日志文件传送到您指定的 Amazon S3 存储桶。此外，您可以配置其他 AWS 服务，以进一步分析和处理 CloudTrail 日志中收集的事件数据。有关更多信息，请参阅: 
+ [创建跟踪概览](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail 支持的服务和集成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ [配置 Amazon SNS 通知 CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)
+ [接收来自多个区域的 CloudTrail 日志文件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)和[接收来自多个账户的 CloudTrail 日志文件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

所有 Route 53 操作均由《[亚马逊 Route 53 API 参考](https://docs.aws.amazon.com/Route53/latest/APIReference/)》记录 CloudTrail 并记录在案。例如，对`CreateHostedZone``CreateHealthCheck`、和`RegisterDomain`操作的调用会在 CloudTrail 日志文件中生成条目。

每个事件或日志条目都包含有关生成请求的人员信息。身份信息可帮助您确定以下内容：
+ 请求是使用根用户凭证还是 IAM 用户凭证发出的。
+ 请求是使用角色还是联合用户的临时安全凭证发出的。
+ 请求是否由其他 AWS 服务发出。

有关更多信息，请参阅 [CloudTrail userIdentity 元素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)。

## 在事件历史记录中查看 Route 53 事件
<a name="route-53-events-in-cloudtrail-event-history"></a>

CloudTrail 允许您在事件**历史记录中查看最近的事件**。要查看 Route 53 API 请求的事件，您必须在控制台顶部的区域选择器中选择**美国东部（弗吉尼亚北部）**。有关更多信息，请参阅《*AWS CloudTrail 用户指南》*中的[使用 CloudTrail 事件历史查看事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)。

## 了解 Route 53 日志文件条目
<a name="understanding-route-53-entries-in-cloudtrail"></a>

跟踪是一种配置，允许将事件作为日志文件传输到您指定的 Amazon S3 存储桶。 CloudTrail 日志文件包含一个或多个日志条目。事件代表来自任何来源的单个请求，包括有关请求的操作、操作的日期和时间、请求参数等的信息。 CloudTrail 日志文件不是公共 API 调用的有序堆栈跟踪，因此它们不会按任何特定的顺序出现。

`eventName` 元素可标识发生的操作。（在 CloudTrail 日志中，域名注册操作的第一个字母是小写的，尽管操作名称中的首字母是大写的。 例如，`UpdateDomainContact`如日志`updateDomainContact`中所示）。 CloudTrail 支持所有 Route 53 API 操作。以下示例显示了一个演示以下操作的 CloudTrail 日志条目：
+ 列出与 AWS 账户关联的托管区域
+ 创建运行状况检查
+ 创建两个记录
+ 删除托管区域
+ 为已注册的域更新信息
+ 创建 Route 53 VPC 解析器出站终端节点

```
{
    "Records": [
        {
            "apiVersion": "2013-04-01",
            "awsRegion": "us-east-1",
            "eventID": "1cdbea14-e162-43bb-8853-f9f86d4739ca",
            "eventName": "ListHostedZones",
            "eventSource": "route53.amazonaws.com",
            "eventTime": "2015-01-16T00:41:48Z",
            "eventType": "AwsApiCall",
            "eventVersion": "1.02",
            "recipientAccountId": "444455556666",
            "requestID": "741e0df7-9d18-11e4-b752-f9c6311f3510",
            "requestParameters": null,
            "responseElements": null,
            "sourceIPAddress": "192.0.2.92",
            "userAgent": "Apache-HttpClient/4.3 (java 1.5)",
            "userIdentity": {
                "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
                "accountId": "111122223333",
                "arn": "arn:aws:iam::111122223333:user/smithj",
                "principalId": "A1B2C3D4E5F6G7EXAMPLE",
                "type": "IAMUser",
                "userName": "smithj"
            }
        },
        {
            "apiVersion": "2013-04-01",
            "awsRegion": "us-east-1",
            "eventID": "45ec906a-1325-4f61-b133-3ef1012b0cbc",
            "eventName": "CreateHealthCheck",
            "eventSource": "route53.amazonaws.com",
            "eventTime": "2018-01-16T00:41:57Z",
            "eventType": "AwsApiCall",
            "eventVersion": "1.02",
            "recipientAccountId": "444455556666",
            "requestID": "79915168-9d18-11e4-b752-f9c6311f3510",
            "requestParameters": {
                "callerReference": "2014-05-06 64832",
                "healthCheckConfig": {
                    "iPAddress": "192.0.2.249",
                    "port": 80,
                    "type": "TCP"
                }
            },
            "responseElements": {
                "healthCheck": {
                    "callerReference": "2014-05-06 64847",
                    "healthCheckConfig": {
                        "failureThreshold": 3,
                        "iPAddress": "192.0.2.249",
                        "port": 80,
                        "requestInterval": 30,
                        "type": "TCP"
                    },
                    "healthCheckVersion": 1,
                    "id": "b3c9cbc6-cd18-43bc-93f8-9e557example"
                },
                "location": "https://route53.amazonaws.com/2013-04-01/healthcheck/b3c9cbc6-cd18-43bc-93f8-9e557example"
            },
            "sourceIPAddress": "192.0.2.92",
            "userAgent": "Apache-HttpClient/4.3 (java 1.5)",
            "userIdentity": {
                "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
                "accountId": "111122223333",
                "arn": "arn:aws:iam::111122223333:user/smithj",
                "principalId": "A1B2C3D4E5F6G7EXAMPLE",
                "type": "IAMUser",
                "userName": "smithj"
            }
        },
        {
            "additionalEventData": {
                "Note": "Do not use to reconstruct hosted zone"
            },
            "apiVersion": "2013-04-01",
            "awsRegion": "us-east-1",
            "eventID": "883b14d9-2f84-4005-8bc5-c7bf0cebc116",
            "eventName": "ChangeResourceRecordSets",
            "eventSource": "route53.amazonaws.com",
            "eventTime": "2018-01-16T00:41:43Z",
            "eventType": "AwsApiCall",
            "eventVersion": "1.02",
            "recipientAccountId": "444455556666",
            "requestID": "7081d4c6-9d18-11e4-b752-f9c6311f3510",
            "requestParameters": {
                "changeBatch": {
                    "changes": [
                        {
                            "action": "CREATE",
                            "resourceRecordSet": {
                                "name": "prod.example.com.",
                                "resourceRecords": [
                                    {
                                        "value": "192.0.1.1"
                                    },
                                    {
                                        "value": "192.0.1.2"
                                    },
                                    {
                                        "value": "192.0.1.3"
                                    },
                                    {
                                        "value": "192.0.1.4"
                                    }
                                ],
                                "tTL": 300,
                                "type": "A"
                            }
                        },
                        {
                            "action": "CREATE",
                            "resourceRecordSet": {
                                "name": "test.example.com.",
                                "resourceRecords": [
                                    {
                                        "value": "192.0.1.1"
                                    },
                                    {
                                        "value": "192.0.1.2"
                                    },
                                    {
                                        "value": "192.0.1.3"
                                    },
                                    {
                                        "value": "192.0.1.4"
                                    }
                                ],
                                "tTL": 300,
                                "type": "A"
                            }
                        }
                    ],
                    "comment": "Adding subdomains"
                },
                "hostedZoneId": "Z1PA6795UKMFR9"
            },
            "responseElements": {
                "changeInfo": {
                    "comment": "Adding subdomains",
                    "id": "/change/C156SRE0X2ZB10",
                    "status": "PENDING",
                    "submittedAt": "Jan 16, 2018 12:41:43 AM"
                }
            },
            "sourceIPAddress": "192.0.2.92",
            "userAgent": "Apache-HttpClient/4.3 (java 1.5)",
            "userIdentity": {
                "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
                "accountId": "111122223333",
                "arn": "arn:aws:iam::111122223333:user/smithj",
                "principalId": "A1B2C3D4E5F6G7EXAMPLE",
                "type": "IAMUser",
                "userName": "smithj"
            }
        },
        {
            "apiVersion": "2013-04-01",
            "awsRegion": "us-east-1",
            "eventID": "0cb87544-ebee-40a9-9812-e9dda1962cb2",
            "eventName": "DeleteHostedZone",
            "eventSource": "route53.amazonaws.com",
            "eventTime": "2018-01-16T00:41:37Z",
            "eventType": "AwsApiCall",
            "eventVersion": "1.02",
            "recipientAccountId": "444455556666",
            "requestID": "6d5d149f-9d18-11e4-b752-f9c6311f3510",
            "requestParameters": {
                "id": "Z1PA6795UKMFR9"
            },
            "responseElements": {
                "changeInfo": {
                    "id": "/change/C1SIJYUYIKVJWP",
                    "status": "PENDING",
                    "submittedAt": "Jan 16, 2018 12:41:36 AM"
                }
            },
            "sourceIPAddress": "192.0.2.92",
            "userAgent": "Apache-HttpClient/4.3 (java 1.5)",
            "userIdentity": {
                "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
                "accountId": "111122223333",
                "arn": "arn:aws:iam::111122223333:user/smithj",
                "principalId": "A1B2C3D4E5F6G7EXAMPLE",
                "type": "IAMUser",
                "userName": "smithj"
            }
        },
        {
            "eventVersion": "1.05",
            "userIdentity": {
                "type": "IAMUser",
                "principalId": "A1B2C3D4E5F6G7EXAMPLE",
                "arn": "arn:aws:iam::111122223333:user/smithj",
                "accountId": "111122223333",
                "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
                "userName": "smithj",
                "sessionContext": {
                    "attributes": {
                        "mfaAuthenticated": "false",
                        "creationDate": "2018-11-01T19:43:59Z"
                    }
                },
                "invokedBy": "test"
            },
            "eventTime": "2018-11-01T19:49:36Z",
            "eventSource": "route53domains.amazonaws.com",
            "eventName": "updateDomainContact",
            "awsRegion": "us-west-2",
            "sourceIPAddress": "192.0.2.92",
            "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0",
            "requestParameters": {
                "domainName": {
                    "name": "example.com"
                }
            },
            "responseElements": {
                "requestId": "034e222b-a3d5-4bec-8ff9-35877ff02187"
            },
            "additionalEventData": "Personally-identifying contact information is not logged in the request",
            "requestID": "015b7313-bf3d-11e7-af12-cf75409087f6",
            "eventID": "f34f3338-aaf4-446f-bf0e-f72323bac94d",
            "eventType": "AwsApiCall",
            "recipientAccountId": "444455556666"
        },
        {
            "eventVersion": "1.05",
            "userIdentity": {
                "type": "IAMUser",
                "principalId": "A1B2C3D4E5F6G7EXAMPLE",
                "arn": "arn:aws:iam::111122223333:user/smithj",
                "accountId": "111122223333",
                "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
                "sessionContext": {
                    "attributes": {
                        "mfaAuthenticated": "false",
                        "creationDate": "2018-11-01T14:33:09Z"
                    },
                    "sessionIssuer": {
                        "type": "Role",
                        "principalId": "AROAIUZEZLWWZOEXAMPLE",
                        "arn": "arn:aws:iam::123456789012:role/Admin",
                        "accountId": "123456789012",
                        "userName": "Admin"
                    }
                }
            },
            "eventTime": "2018-11-01T14:37:19Z",
            "eventSource": "route53resolver.amazonaws.com",
            "eventName": "CreateResolverEndpoint",
            "awsRegion": "us-west-2",
            "sourceIPAddress": "192.0.2.176",
            "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0",
            "requestParameters": {
                "creatorRequestId": "123456789012",
                "name": "OutboundEndpointDemo",
                "securityGroupIds": [
                    "sg-05618b249example"
                ],
                "direction": "OUTBOUND",
                "ipAddresses": [
                    {
                        "subnetId": "subnet-01cb0c4676example"
                    },
                    {
                        "subnetId": "subnet-0534819b32example"
                    }
                ],
                "tags": []
            },
            "responseElements": {
                "resolverEndpoint": {
                    "id": "rslvr-out-1f4031f1f5example",
                    "creatorRequestId": "123456789012",
                    "arn": "arn:aws:route53resolver:us-west-2:123456789012:resolver-endpoint/rslvr-out-1f4031f1f5example",
                    "name": "OutboundEndpointDemo",
                    "securityGroupIds": [
                        "sg-05618b249example"
                    ],
                    "direction": "OUTBOUND",
                    "ipAddressCount": 2,
                    "hostVPCId": "vpc-0de29124example",
                    "status": "CREATING",
                    "statusMessage": "[Trace id: 1-5bd1d51e-f2f3032eb75649f71example] Creating the Resolver Endpoint",
                    "creationTime": "2018-11-01T14:37:19.045Z",
                    "modificationTime": "2018-11-01T14:37:19.045Z"
                }
            },
            "requestID": "3f066d98-773f-4628-9cba-4ba6eexample",
            "eventID": "cb05b4f9-9411-4507-813b-33cb0example",
            "eventType": "AwsApiCall",
            "recipientAccountId": "123456789012"
        }
    ]
}
```