

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 解析程式查詢日誌記錄
<a name="resolver-query-logs"></a>

您可以記錄下列 DNS 查詢：
+ 源於您指定的 Amazon Virtual Private Cloud VPC 的查詢，以及對這些 DNS 查詢的回應。
+ 來自使用傳入 Resolver 端點的內部部署資源的查詢。
+ 使用傳出 Resolver 端點進行遞迴 DNS 解析的查詢。
+ 使用解析程式 DNS 防火牆規則來封鎖、允許或監控網域清單的查詢。

VPC Resolver 查詢日誌包含的值如下：
+ 建立 VPC AWS 的區域
+ 查詢源自其中的 VPC 的 ID
+ 查詢源自其中的執行個體的 IP 地址
+ 查詢源自其中的資源的執行個體 ID
+ 第一次進行查詢的日期和時間
+ 要求的 DNS 名稱 (例如 prod.example.com)
+ DNS 記錄類型 (例如 A 或 AAAA)
+ DNS 回答代碼，例如 `NoError` 或 `ServFail`
+ DNS 回答資料，例如，在對 DNS 查詢做出的回答中傳回的 IP 地址
+ 對 DNS 防火牆規則動作的回應

如需所有記錄值的詳細清單和範例，請參閱 [VPC Resolver 查詢日誌中出現的值](resolver-query-logs-format.md)。

**注意**  
按照 DNS 解析程式的標準，解析程式快取 DNS 查詢的時間長度由解析程式的存留時間 (TTL) 決定。Route 53 VPC Resolver 會快取源自 VPCs查詢，並盡可能從快取回應以加速回應。VPC Resolver 查詢日誌記錄僅記錄唯一查詢，而不是 VPC Resolver 能夠從快取回應的查詢。  
例如，假設其中一個 VPC 中的 EC2 執行個體正在記錄查詢的查詢，則會提交 account.example.com 的要求。VPC Resolver 會快取該查詢的回應，並記錄查詢。如果相同執行個體的彈性網路介面在 VPC Resolver 快取的 TTL 內對 accounting.example.com 進行查詢，VPC Resolver 會從快取回應查詢。未記錄第二個查詢。

您可以將日誌傳送至下列其中一個 AWS 資源：
+ Amazon CloudWatch Logs (CloudWatch Logs) 日誌群組
+ Amazon S3 (S3) 儲存貯體
+ Firehose 交付串流

如需詳細資訊，請參閱[AWS 您可以將 VPC Resolver 查詢日誌傳送至 的 資源](resolver-query-logs-choosing-target-resource.md)。

**Topics**
+ [AWS 您可以將 VPC Resolver 查詢日誌傳送至 的 資源](resolver-query-logs-choosing-target-resource.md)
+ [管理 Resolver 查詢日誌記錄組態](resolver-query-logging-configurations-managing.md)

# AWS 您可以將 VPC Resolver 查詢日誌傳送至 的 資源
<a name="resolver-query-logs-choosing-target-resource"></a>

**注意**  
如果您希望為每秒高查詢 (QPS) 的工作負載記錄查詢，則應使用 Amazon S3 來確保查詢日誌在寫入目的地時不會受節制。如果您使用 Amazon CloudWatch，則可以為 `PutLogEvents` 操作增加每秒請求數限制。若想進一步了解如何增加 CloudWatch 限制，請參閱 *Amazon CloudWatch 使用者指南*中的 [CloudWatch Logs 配額](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch_limits_cwl.html)。

您可以將 VPC Resolver 查詢日誌傳送至下列 AWS 資源：

**Amazon CloudWatch Logs (Amazon CloudWatch Logs) 日誌群組**  
您可以使用 Logs Insights 來分析日誌，並建立指標和警示。  
如需詳細資訊，請參閱 [Amazon CloudWatch Logs 使用者指南](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 CloudWatch 使用者指南》中的 Amazon S3 儲存貯體伺服器端加密](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-infrastructure-V2-S3.html#AWS-logs-SSE-KMS-S3-V2)。 *Amazon 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 交付串流**  
您可以即時串流日誌至 Amazon OpenSearch Service、Amazon Redshift 或其他應用程式。  
如需詳細資訊，請參閱 [Amazon Data Firehose 開發人員指南](https://docs.aws.amazon.com/firehose/latest/dev/)。

如需 Resolver 查詢日誌記錄定價的資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。

使用 VPC Resolver 日誌時，即使日誌直接發佈至 Amazon S3，CloudWatch 已終止日誌也會產生費用。如需詳細資訊，請參閱[以 Amazon CloudWatch *定價記錄*定價](https://aws.amazon.com//cloudwatch/pricing/#Vended_Logs)。

# 管理 Resolver 查詢日誌記錄組態
<a name="resolver-query-logging-configurations-managing"></a>

## 設定 (VPC Resolver 查詢記錄）
<a name="resolver-query-logs-configuring"></a>

您可以透過兩種方式設定 VPC Resolver 查詢記錄：
+ **直接 VPC 關聯** - 將 VPCs直接關聯至查詢記錄組態。
+ **設定檔關聯** - 將查詢記錄組態關聯至 Route 53 設定檔，這會將記錄套用至與該設定檔相關聯的所有 VPCs。如需詳細資訊，請參閱[將 VPC Resolver 查詢記錄組態與 Route 53 設定檔建立關聯](profile-associate-query-logging.md)。

若要開始記錄源自 VPC 的 DNS 查詢，您需要在 Amazon Route 53 主控台執行下列任務：<a name="resolver-query-logs-configuring-procedure"></a>

**若要設定 Resolver 查詢日誌記錄**

1. 登入 AWS 管理主控台 並開啟 Route 53 主控台，網址為 https：//[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 展開 Route 53 主控台選單。在主控台的左上角，選擇三個水平橫條 (![\[Menu icon\]](http://docs.aws.amazon.com/zh_tw/Route53/latest/DeveloperGuide/images/menu-icon.png)) 圖示。

1. 在 Resolver 選單中，選擇 **Query logging (查詢日誌記錄)**。

1. 在區域選取器中，選擇您要建立查詢記錄組態 AWS 的區域。這必須是與您建立要為其記錄 DNS 查詢的 VPC 的相同區域。如果您在多個區域擁有 VPC，務必為每個區域至少建立一項查詢日誌記錄組態。

1. 選擇 **Configure query logging (設定查詢日誌記錄)**。

1. 指定下列值：  
**查詢日誌記錄組態**  
輸入查詢日誌記錄組態的名稱。名稱會顯示在主控台中的查詢日誌記錄組態清單。輸入稍後可以協助您尋找此組態的名稱。  
**查詢日誌目的地**  
選擇您希望 VPC Resolver 傳送查詢日誌 AWS 的資源類型。如需如何選擇選項 (CloudWatch Logs 日誌群組、S3 儲存貯體和 Firehose 交付串流） 的詳細資訊，請參閱 [AWS 您可以將 VPC Resolver 查詢日誌傳送至 的 資源](resolver-query-logs-choosing-target-resource.md)。  
選擇資源類型後，您可以建立該類型的另一個資源，或選擇目前 AWS 帳戶建立的現有資源。  
您只能選擇在步驟 4 中選取的 AWS 區域中建立的資源，即您要建立查詢日誌記錄組態的區域。如果您選擇建立新資源，則會在相同的區域中建立該資源。  
**要記錄查詢的 VPC**  
此查詢日誌記錄組態會記錄源自所選擇之 VPC 的 DNS 查詢。勾選目前區域中每個 VPC 的核取方塊，讓 VPC Resolver 記錄查詢，然後選擇**選擇**。  
**替代方法**：您可以將此查詢記錄組態與 Route 53 設定檔建立關聯，而不是直接關聯 VPCs，這會套用記錄到與該設定檔關聯的所有 VPCs。如需詳細資訊，請參閱[將 VPC Resolver 查詢記錄組態與 Route 53 設定檔建立關聯](profile-associate-query-logging.md)。  
針對特定目的地類型，只能啟用一次 VPC 日誌交付。日誌無法交付到相同類型的多個目的地，例如，VPC 日誌無法交付至 2 個 Amazon S3 目的地。

1. 選擇 **Configure query logging (設定查詢日誌記錄)**。

**注意**  
您應該會在成功建立查詢日誌記錄組態後幾分鐘內開始看到由 VPC 資源進行的 DNS 查詢。

# VPC Resolver 查詢日誌中出現的值
<a name="resolver-query-logs-format"></a>

針對 Amazon Route 53 從對應節點中的 DNS 解析程式收到的每個 DNS 查詢，每個日誌檔案都會包含一個日誌項目。每個日誌項目包含以下值：

**version**  
此查詢日誌格式的版本編號。目前版本是 `1.1`。  
版本值是以 **major\$1version.minor\$1version** 形式的主要和次要版本。例如，您可以有一個值為 `version` 的 `1.7`，其中 `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 格式的資訊，請參閱 Wikipedia 文章 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)。如需有關 UTC 的資訊，請參閱 Wikipedia 文章[國際標準時間](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 Resolver 在回應 DNS 查詢時傳回的 DNS 回應碼。此回應代碼指出查詢是否有效。最常見的回應代碼是 `NOERROR`，表示查詢有效。如果回應無效，Resolver 會傳回說明無效原因的回應代碼。如需可能的回應代碼清單，請參閱 IANA 網站上的 [DNS RCODES](https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6)。

**answer\$1type**  
VPC Resolver 回應查詢時傳回之值的 DNS 記錄類型 （例如 A、MX 或 CNAME)。如需有關 Route 53 支援的類型的資訊，請參閱 [支援的 DNS 記錄類型](ResourceRecordTypes.md)。

**rdata**  
VPC Resolver 回應查詢時傳回的值。例如，對於 A 記錄，這是 IPv4 格式的 IP 地址。對於 CNAME 記錄，這是 CNAME 記錄中的網域名稱。

**answer\$1class**  
查詢的 VPC Resolver 回應類別。

**srcaddr**  
產生查詢之主機的 IP 地址。

**srcport**  
查詢源自其中的執行個體上的連接埠。

**transport**  
用來提交 DNS 查詢的通訊協定。

**scids**  
DNS 查詢來源其中或通過其中的 `instance`、`resolver_endpoint` 和 `resolver_network_interface` 的 ID。

**instance**  
查詢來源其中的執行個體的 ID。  
 如果您在 Route 53 VPC Resolver 查詢日誌中看到不可見的執行個體 ID，這可能是因為 DNS 查詢來自您所使用的 AWS CloudShell AWS Lambda Amazon EKS 或 Fargate 主控台。

**resolver\$1endpoint**  
將 DNS 查詢傳遞至內部部署 DNS 伺服器的解析程式端點的 ID。  
如果您有使用不同解析程式端點跨不同轉送規則鏈結的 CNAME 記錄，查詢日誌只會顯示鏈結中最後一個解析程式端點的 ID。若要透過多個端點追蹤完整的解析路徑，您可以關聯不同查詢記錄組態的日誌。

**firewall\$1rule\$1group\$1id**  
符合查詢中網域名稱的 DNS 防火墻規則群組的 ID。只有當 DNS 防火牆找到符合動作設定為警示或封鎖的規則時，才會填入此選項。  
如需防火墻規則群組的詳細資訊，請參閱 [DNS 防火墻規則群組與規則](resolver-dns-firewall-rule-groups.md)。

**firewall\$1rule\$1action**  
由符合查詢中網域名稱的規則指定的動作。只有當 DNS 防火牆找到符合動作設定為警示或封鎖的規則時，才會填入此選項。

**firewall\$1domain\$1list\$1id**  
由符合查詢中網域名稱的規則使用的網域清單。只有當 DNS 防火牆找到符合動作設定為警示或封鎖的規則時，才會填入此選項。

**additional\$1properties**  
日誌交付事件的其他資訊。**is\$1delayed**：如果交付日誌時發生延遲。

# Route 53 VPC Resolver 查詢日誌範例
<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 帳戶共用解析程式查詢記錄組態
<a name="query-logging-configurations-managing-sharing"></a>

您可以與其他帳戶共用使用一個 AWS 帳戶建立的查詢記錄組態 AWS 。若要共用組態，Route 53 VPC Resolver 主控台會與 AWS Resource Access Manager 整合。如需 Resource Access Manager 的詳細資訊，請參閱 [Resource Access Manager 使用者指南](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html)。

注意下列事項：

**將 VPC 與共用查詢日誌記錄組態建立關聯**  
如果另一個 AWS 帳戶已與您的帳戶共用一或多個組態，您可以將 VPCs與組態建立關聯，方法與您建立VPCs組態建立關聯。

**刪除或解除共用組態**  
如果您與其他帳戶共用組態，然後刪除組態或停止共用，而且如果一或多個 VPCs與組態相關聯，Route 53 VPC Resolver 會停止記錄源自這些 VPCs的 DNS 查詢。

**查詢日誌記錄組態以及可以這些組態建立關聯的 VPC 數量上限**  
當某個帳戶建立了組態並與一或多個其他帳戶共用此組態時，可與該組態建立關聯的 VPC 數量上限會套用至相關帳戶。例如，如果您的組織中有 10，000 個帳戶，您可以在中央帳戶中建立查詢記錄組態，並透過 共用 AWS RAM ，以將其分享給組織帳戶。然後，組織帳戶會建立組態與其 VPC 之間的關聯，根據其帳戶的查詢日誌組態來計算所建立的 VPC 關聯數量，每個 AWS 區域 建立的 VPC 關聯數量最多不能超過 100。但是，如果所有 VPC 都在單一帳戶中，則可能需要提高帳戶的服務上限。  
如需目前的 VPC Resolver 配額，請參閱 [Route 53 VPC 解析程式的配額](DNSLimitations.md#limits-api-entities-resolver)。

**許可**  
若要與其他 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 管理主控台 ，並在 https：//[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/) 開啟 Route 53 主控台。

1. 在導覽窗格中，選擇 **Query Logging (查詢日誌記錄)**。

1. 在導覽列上，選擇您建立規則的區域。

   **Sharing status (共用狀態)** 欄顯示規則目前的共享狀態，它們是目前帳戶建立的規則或與目前帳戶共用的規則：
   + **未共用**：目前 AWS 帳戶已建立規則，且規則不會與任何其他帳戶共用。
   + **Shared by me (由我共用)**：目前的帳戶建立了規則，且與一或多個帳戶共用。
   + **Shared with me (與我共用)**：另一個帳戶建立了規則，且與目前的帳戶共用。

1. 選擇您想要顯示共用資訊的規則名稱，或您想要與其他帳戶共用的規則名稱。

   在 **Rule: *rule name* (規則：規則名稱)** 頁面中，**Owner (擁有者)** 下的值會顯示建立規則的帳戶 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)中的步驟。
**注意**  
您無法更新共用設定。如果您想要變更以下任一設定，您必須重新共用使用新設定的規則，然後移除舊的共用設定。