

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

# 查詢 AWS Network Firewall 日誌
<a name="querying-network-firewall-logs"></a>

AWS Network Firewall 是一項受管服務，可用來部署 Amazon Virtual Private Cloud 執行個體的基本網路保護。 與 搭配 AWS Network Firewall 運作 AWS Firewall Manager ，讓您可以根據 AWS Network Firewall 規則建置政策，然後將這些政策集中套用至您的 VPCs和帳戶。如需 的詳細資訊 AWS Network Firewall，請參閱 [AWS Network Firewall](https://aws.amazon.com/network-firewall/)。

您可以為轉送至防火牆具狀態規則引擎的流量設定 AWS Network Firewall 記錄。記錄功能提供詳細的網路流量資訊，包括有狀態引擎接收封包的時間、詳細的封包資訊，以及對封包採取的任何有狀態規則動作。日誌會發佈至您已設定的日誌目的地，其中您可以擷取並檢視它們。如需詳細資訊，請參閱《AWS Network Firewall 開發人員指南》**中的[記錄來自 AWS Network Firewall的網路流量](https://docs.aws.amazon.com/network-firewall/latest/developerguide/firewall-logging.html)。

**Topics**
+ [建立並查詢提醒日誌的資料表](querying-network-firewall-logs-sample-alert-logs-table.md)
+ [建立並查詢 Netflow 日誌的資料表](querying-network-firewall-logs-sample-netflow-logs-table.md)

# 建立並查詢提醒日誌的資料表
<a name="querying-network-firewall-logs-sample-alert-logs-table"></a>

1. 修改下列範例 DDL 陳述式，以符合提醒日誌的結構。您可能需要更新陳述式，以加入最新版本日誌的資料欄。如需詳細資訊，請參閱《AWS Network Firewall 開發人員指南》**中的[防火牆日誌內容](https://docs.aws.amazon.com/network-firewall/latest/developerguide/firewall-logging.html#firewall-logging-contents)。

   ```
   CREATE EXTERNAL TABLE network_firewall_alert_logs (
     firewall_name string,
     availability_zone string,
     event_timestamp string,
     event struct<
       timestamp:string,
       flow_id:bigint,
       event_type:string,
       src_ip:string,
       src_port:int,
       dest_ip:string,
       dest_port:int,
       proto:string,
       app_proto:string,
       sni:string,
       tls_inspected:boolean,
       tls_error:struct<
         error_message:string>,
       revocation_check:struct<
         leaf_cert_fpr:string,
         status:string,
         action:string>,
       alert:struct<
         alert_id:string,
         alert_type:string,
         action:string,
         signature_id:int,
         rev:int,
         signature:string,
         category:string,
         severity:int,
         rule_name:string,
         alert_name:string,
         alert_severity:string,
         alert_description:string,
         file_name:string,
         file_hash:string,
         packet_capture:string,
         reference_links:array<string>
       >, 
       src_country:string, 
       dest_country:string, 
       src_hostname:string, 
       dest_hostname:string, 
       user_agent:string, 
       url:string
      >
   )
    ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
    LOCATION 's3://amzn-s3-demo-bucket/path_to_alert_logs_folder/';
   ```

1. 修改 `LOCATION` 子句，以在 Amazon S3 中指定日誌的資料夾。

1. 在 Athena 查詢編輯器中，執行 `CREATE TABLE` 查詢。查詢完成之後，Athena 會註冊 `network_firewall_alert_logs` 資料表，讓其所指向的資料可供您查詢。

## 查詢範例
<a name="querying-network-firewall-logs-alert-log-sample-query"></a>

本節中的範例提醒日誌查詢會篩選執行 TLS 檢查且提醒嚴重等級為 2 或更高級別的事件。

查詢會使用別名來建立輸出資料欄標題，以顯示資料欄所屬的 `struct`。例如，`event.alert.category` 欄位的資料欄標題是 `event_alert_category` 而不只是 `category`。若要進一步自訂資料欄名稱，您可以依照您的偏好設定修改別名。例如，您可以使用底線或其他分隔符號來分隔 `struct` 名稱和欄位名稱。

請記得根據您的資料表定義和查詢結果中要包含的欄位來修改資料欄名稱和 `struct` 參考。

```
SELECT 
  firewall_name,
  availability_zone,
  event_timestamp,
  event.timestamp AS event_timestamp,
  event.flow_id AS event_flow_id,
  event.event_type AS event_type,
  event.src_ip AS event_src_ip,
  event.src_port AS event_src_port,
  event.dest_ip AS event_dest_ip,
  event.dest_port AS event_dest_port,
  event.proto AS event_protol,
  event.app_proto AS event_app_proto,
  event.sni AS event_sni,
  event.tls_inspected AS event_tls_inspected,
  event.tls_error.error_message AS event_tls_error_message,
  event.revocation_check.leaf_cert_fpr AS event_revocation_leaf_cert,
  event.revocation_check.status AS event_revocation_check_status,
  event.revocation_check.action AS event_revocation_check_action,
  event.alert.alert_id AS event_alert_alert_id,
  event.alert.alert_type AS event_alert_alert_type,
  event.alert.action AS event_alert_action,
  event.alert.signature_id AS event_alert_signature_id,
  event.alert.rev AS event_alert_rev,
  event.alert.signature AS event_alert_signature,
  event.alert.category AS event_alert_category,
  event.alert.severity AS event_alert_severity,
  event.alert.rule_name AS event_alert_rule_name,
  event.alert.alert_name AS event_alert_alert_name,
  event.alert.alert_severity AS event_alert_alert_severity,
  event.alert.alert_description AS event_alert_alert_description,
  event.alert.file_name AS event_alert_file_name,
  event.alert.file_hash AS event_alert_file_hash,
  event.alert.packet_capture AS event_alert_packet_capture,
  event.alert.reference_links AS event_alert_reference_links,
  event.src_country AS event_src_country,
  event.dest_country AS event_dest_country,
  event.src_hostname AS event_src_hostname,
  event.dest_hostname AS event_dest_hostname,
  event.user_agent AS event_user_agent,
  event.url AS event_url
FROM 
  network_firewall_alert_logs 
WHERE 
  event.alert.severity >= 2
  AND event.tls_inspected = true 
LIMIT 10;
```

# 建立並查詢 Netflow 日誌的資料表
<a name="querying-network-firewall-logs-sample-netflow-logs-table"></a>

1. 修改下列範例 DDL 陳述式，以符合 Netflow 日誌的結構。您可能需要更新陳述式，以加入最新版本日誌的資料欄。如需詳細資訊，請參閱《AWS Network Firewall 開發人員指南》**中的[防火牆日誌內容](https://docs.aws.amazon.com/network-firewall/latest/developerguide/firewall-logging.html#firewall-logging-contents)。

   ```
   CREATE EXTERNAL TABLE network_firewall_netflow_logs (
     firewall_name string,
     availability_zone string,
     event_timestamp string,
     event struct<
       timestamp:string,
       flow_id:bigint,
       event_type:string,
       src_ip:string,
       src_port:int,
       dest_ip:string,
       dest_port:int,
       proto:string,
       app_proto:string,
       tls_inspected:boolean,
       netflow:struct<
         pkts:int,
         bytes:bigint,
         start:string,
         `end`:string,
         age:int,
         min_ttl:int,
         max_ttl:int,
         tcp_flags:struct<
           syn:boolean,
           fin:boolean,
           rst:boolean,
           psh:boolean,
           ack:boolean,
           urg:boolean
           >
         >
       >
   )
   ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' 
   LOCATION 's3://amzn-s3-demo-bucket/path_to_netflow_logs_folder/';
   ```

1. 修改 `LOCATION` 子句，以在 Amazon S3 中指定日誌的資料夾。

1. 在 Athena 查詢編輯器中，執行 `CREATE TABLE` 查詢。查詢完成之後，Athena 會註冊 `network_firewall_netflow_logs` 資料表，讓其所指向的資料可供您查詢。

## 查詢範例
<a name="querying-network-firewall-logs-netflow-log-sample-query"></a>

本節中的範例 Netflow 日誌查詢會篩選執行 TLS 檢查的事件。

查詢會使用別名來建立輸出資料欄標題，以顯示資料欄所屬的 `struct`。例如，`event.netflow.bytes` 欄位的資料欄標題是 `event_netflow_bytes` 而不只是 `bytes`。若要進一步自訂資料欄名稱，您可以依照您的偏好設定修改別名。例如，您可以使用底線或其他分隔符號來分隔 `struct` 名稱和欄位名稱。

請記得根據您的資料表定義和查詢結果中要包含的欄位來修改資料欄名稱和 `struct` 參考。

```
SELECT
  event.src_ip AS event_src_ip,
  event.dest_ip AS event_dest_ip,
  event.proto AS event_proto,
  event.app_proto AS event_app_proto,
  event.tls_inspected AS event_tls_inspected,
  event.netflow.pkts AS event_netflow_pkts,
  event.netflow.bytes AS event_netflow_bytes,
  event.netflow.tcp_flags.syn AS event_netflow_tcp_flags_syn 
FROM network_firewall_netflow_logs 
WHERE event.tls_inspected = true
```