

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

# 適用於 AWS 付費日誌的內建處理器
<a name="CloudWatch-Logs-Transformation-BuiltIn"></a>

本節包含有關內建處理器的資訊，您可以將這些處理器與提供日誌 AWS 的服務搭配使用。

**Contents**
+ [

## parseWAF
](#CloudWatch-Logs-Transformation-parseWAF)
+ [

## parsePostgres
](#CloudWatch-Logs-Transformation-parsePostGres)
+ [

## parseCloudfront
](#CloudWatch-Logs-Transformation-parseCloudFront)
+ [

## parseRoute53
](#CloudWatch-Logs-Transformation-parseRoute53)
+ [

## parseVPC
](#CloudWatch-Logs-Transformation-parseVPC)
+ [

# parseToOCSF
](CloudWatch-Logs-Transformation-parseToOCSF.md)

## parseWAF
<a name="CloudWatch-Logs-Transformation-parseWAF"></a>

使用此處理器來剖析已 AWS WAF 結束的日誌，它會採用 的內容，`httpRequest.headers`並從每個標頭名稱建立具有對應值的 JSON 金鑰。它也會對 執行相同的操作`labels`。這些轉換可讓您更輕鬆地查詢 AWS WAF 日誌。如需 AWS WAF 日誌格式的詳細資訊，請參閱 [ Web ACL 流量的日誌範例](https://docs.aws.amazon.com/waf/latest/developerguide/logging-examples.html)。

此處理器僅接受 `@message`做為輸入。

**重要**  
如果您使用此處理器，它必須是轉換器中的第一個處理器。

**範例**

採用下列範例日誌事件：

```
{
  "timestamp": 1576280412771,
  "formatVersion": 1,
  "webaclId": "arn:aws:wafv2:ap-southeast-2:111122223333:regional/webacl/STMTest/1EXAMPLE-2ARN-3ARN-4ARN-123456EXAMPLE",
  "terminatingRuleId": "STMTest_SQLi_XSS",
  "terminatingRuleType": "REGULAR",
  "action": "BLOCK",
  "terminatingRuleMatchDetails": [
    {
      "conditionType": "SQL_INJECTION",
      "sensitivityLevel": "HIGH",
      "location": "HEADER",
      "matchedData": ["10", "AND", "1"]
    }
  ],
  "httpSourceName": "-",
  "httpSourceId": "-",
  "ruleGroupList": [],
  "rateBasedRuleList": [],
  "nonTerminatingMatchingRules": [],
  "httpRequest": {
    "clientIp": "1.1.1.1",
    "country": "AU",
    "headers": [
      { "name": "Host", "value": "localhost:1989" },
      { "name": "User-Agent", "value": "curl/7.61.1" },
      { "name": "Accept", "value": "*/*" },
      { "name": "x-stm-test", "value": "10 AND 1=1" }
    ],
    "uri": "/myUri",
    "args": "",
    "httpVersion": "HTTP/1.1",
    "httpMethod": "GET",
    "requestId": "rid"
  },
  "labels": [{ "name": "value" }]
}
```

處理器組態如下：

```
[
    {
        "parseWAF": {}
    }
]
```

轉換的日誌事件如下。

```
{
  "httpRequest": {
    "headers": {
      "Host": "localhost:1989",
      "User-Agent": "curl/7.61.1",
      "Accept": "*/*",
      "x-stm-test": "10 AND 1=1"
    },
    "clientIp": "1.1.1.1",
    "country": "AU",
    "uri": "/myUri",
    "args": "",
    "httpVersion": "HTTP/1.1",
    "httpMethod": "GET",
    "requestId": "rid"
  },
  "labels": { "name": "value" },
  "timestamp": 1576280412771,
  "formatVersion": 1,
  "webaclId": "arn:aws:wafv2:ap-southeast-2:111122223333:regional/webacl/STMTest/1EXAMPLE-2ARN-3ARN-4ARN-123456EXAMPLE",
  "terminatingRuleId": "STMTest_SQLi_XSS",
  "terminatingRuleType": "REGULAR",
  "action": "BLOCK",
  "terminatingRuleMatchDetails": [
    {
      "conditionType": "SQL_INJECTION",
      "sensitivityLevel": "HIGH",
      "location": "HEADER",
      "matchedData": ["10", "AND", "1"]
    }
  ],
  "httpSourceName": "-",
  "httpSourceId": "-",
  "ruleGroupList": [],
  "rateBasedRuleList": [],
  "nonTerminatingMatchingRules": []
}
```

## parsePostgres
<a name="CloudWatch-Logs-Transformation-parsePostGres"></a>

使用此處理器來剖析 Amazon RDS for PostgreSQL 付費日誌、擷取欄位，並將它們轉換為 JSON 格式。如需 RDS for PostgreSQL 日誌格式的詳細資訊，請參閱 [ RDS for PostgreSQL 資料庫日誌檔案](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.PostgreSQL.html#USER_LogAccess.Concepts.PostgreSQL.Log_Format.log-line-prefix)。

此處理器僅接受 `@message`做為輸入。

**重要**  
如果您使用此處理器，它必須是轉換器中的第一個處理器。

**範例**

採用下列範例日誌事件：

```
2019-03-10 03:54:59 UTC:10.0.0.123(52834):postgres@logtestdb:[20175]:ERROR: column "wrong_column_name" does not exist at character 8
```

處理器組態如下：

```
[
    {
        "parsePostgres": {}
    }
]
```

轉換的日誌事件如下。

```
{
  "logTime": "2019-03-10 03:54:59 UTC",
  "srcIp": "10.0.0.123(52834)",
  "userName": "postgres",
  "dbName": "logtestdb",
  "processId": "20175",
  "logLevel": "ERROR"
}
```

## parseCloudfront
<a name="CloudWatch-Logs-Transformation-parseCloudFront"></a>

使用此處理器來剖析 Amazon CloudFront 付費日誌、擷取欄位，並將它們轉換為 JSON 格式。編碼的欄位值會解碼。整數和雙數的值會被視為這樣。如需 Amazon CloudFront 日誌格式的詳細資訊，請參閱[設定和使用標準日誌 （存取日誌）](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html)。

此處理器僅接受 `@message`做為輸入。

**重要**  
如果您使用此處理器，它必須是轉換器中的第一個處理器。

**範例**

採用下列範例日誌事件：

```
2019-12-04  21:02:31   LAX1   392    192.0.2.24    GET    d111111abcdef8.cloudfront.net  /index.html    200    -  Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36  -  -  Hit    SOX4xwn4XV6Q4rgb7XiVGOHms_BGlTAC4KyHmureZmBNrjGdRLiNIQ==   d111111abcdef8.cloudfront.net  https  23 0.001  -  TLSv1.2    ECDHE-RSA-AES128-GCM-SHA256    Hit    HTTP/2.0   -  -  11040  0.001  Hit    text/html  78 -  -
```

處理器組態如下：

```
[
    {
        "parseCloudfront": {}
    }
]
```

轉換的日誌事件如下。

```
{
  "date": "2019-12-04",
  "time": "21:02:31",
  "x-edge-location": "LAX1",
  "sc-bytes": 392,
  "c-ip": "192.0.2.24",
  "cs-method": "GET",
  "cs(Host)": "d111111abcdef8.cloudfront.net",
  "cs-uri-stem": "/index.html",
  "sc-status": 200,
  "cs(Referer)": "-",
  "cs(User-Agent)": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
  "cs-uri-query": "-",
  "cs(Cookie)": "-",
  "x-edge-result-type": "Hit",
  "x-edge-request-id": "SOX4xwn4XV6Q4rgb7XiVGOHms_BGlTAC4KyHmureZmBNrjGdRLiNIQ==",
  "x-host-header": "d111111abcdef8.cloudfront.net",
  "cs-protocol": "https",
  "cs-bytes": 23,
  "time-taken": 0.001,
  "x-forwarded-for": "-",
  "ssl-protocol": "TLSv1.2",
  "ssl-cipher": "ECDHE-RSA-AES128-GCM-SHA256",
  "x-edge-response-result-type": "Hit",
  "cs-protocol-version": "HTTP/2.0",
  "fle-status": "-",
  "fle-encrypted-fields": "-",
  "c-port": 11040,
  "time-to-first-byte": 0.001,
  "x-edge-detailed-result-type": "Hit",
  "sc-content-type": "text/html",
  "sc-content-len": 78,
  "sc-range-start": "-",
  "sc-range-end": "-"
}
```

## parseRoute53
<a name="CloudWatch-Logs-Transformation-parseRoute53"></a>

使用此處理器來剖析 Amazon Route 53 Public Data Plane 付費日誌、擷取欄位，並將它們轉換為 JSON 格式。編碼的欄位值會解碼。此處理器不支援 Amazon Route 53 Resolver 日誌。

此處理器僅接受 `@message`做為輸入。

**重要**  
如果您使用此處理器，它必須是轉換器中的第一個處理器。

**範例**

採用下列範例日誌事件：

```
1.0 2017-12-13T08:15:50.235Z Z123412341234 example.com AAAA NOERROR TCP IAD12 192.0.2.0 198.51.100.0/24
```

處理器組態如下：

```
[
    {
        "parseRoute53": {}
    }
]
```

轉換的日誌事件如下。

```
{
  "version": 1.0,
  "queryTimestamp": "2017-12-13T08:15:50.235Z",
  "hostZoneId": "Z123412341234",
  "queryName": "example.com",
  "queryType": "AAAA",
  "responseCode": "NOERROR",
  "protocol": "TCP",
  "edgeLocation": "IAD12",
  "resolverIp": "192.0.2.0",
  "ednsClientSubnet": "198.51.100.0/24"
}
```

## parseVPC
<a name="CloudWatch-Logs-Transformation-parseVPC"></a>

使用此處理器剖析 Amazon VPC 提供的日誌、擷取欄位，並將它們轉換為 JSON 格式。編碼的欄位值會解碼。

此處理器僅接受 `@message`做為輸入。

**重要**  
如果您使用此處理器，它必須是轉換器中的第一個處理器。

**範例**

採用下列範例日誌事件：

```
2 123456789010 eni-abc123de 192.0.2.0 192.0.2.24 20641 22 6 20 4249 1418530010 1418530070 ACCEPT OK
```

處理器組態如下：

```
[
    {
        "parseVPC": {}
    }
]
```

轉換的日誌事件如下。

```
{
  "version": 2,
  "accountId": "123456789010",
  "interfaceId": "eni-abc123de",
  "srcAddr": "192.0.2.0",
  "dstAddr": "192.0.2.24",
  "srcPort": 20641,
  "dstPort": 22,
  "protocol": 6,
  "packets": 20,
  "bytes": 4249,
  "start": 1418530010,
  "end": 1418530070,
  "action": "ACCEPT",
  "logStatus": "OK"
}
```

# parseToOCSF
<a name="CloudWatch-Logs-Transformation-parseToOCSF"></a>

`parseToOCSF` 處理器會將日誌轉換為開放網路安全結構描述架構 (OCSF) 事件。OCSF 是一項開放標準，提供常見的安全資料結構描述，可在不同的安全工具和平台上提供更好的互通性和分析。

此處理器特別適用於您需要將各種 AWS 服務的日誌格式標準化為一致結構描述以進行下游分析的安全分析工作流程。

**參數**

`eventSource` (必要)  
指定產生要轉換之日誌事件 AWS 的服務或程序。有效的值如下：  
+ `CloudTrail` - CloudTrail 日誌
+ `Route53Resolver` - Route 53 Resolver 日誌
+ `VPCFlow` - Amazon VPC 流程日誌
+ `EKSAudit` - Amazon EKS 稽核日誌
+ `AWSWAF` - AWS WAF logs

`ocsfVersion` (必要)  
指定要用於轉換日誌事件的 OCSF 結構描述版本。目前支援的版本： `V1.1, V1.5`

`mappingVersion` (選用)  
指定 OCSF 轉換映射版本。控制將日誌轉換為 OCSF 格式時套用哪些轉換邏輯。如果未指定， 會在政策建立時使用最新的可用版本。發佈新的映射版本時，現有的政策不會自動升級。目前最新版本：`v1.5.0`。  
**注意：**當 `ocsfVersion`為 時，不支援 `V1.1`。

`source` (選用)  
您要剖析之日誌事件中 欄位的路徑。如果省略，則會剖析整個日誌訊息。

**範例**

下列範例示範如何使用 `parseToOCSF`將 VPC 流程日誌轉換為 OCSF 格式：

```
{
  "parseToOCSF": {
    "eventSource": "VPCFlow",
    "ocsfVersion": "V1.1"
  }
}
```

下列範例示範如何指定特定映射版本，以實現一致的轉換行為：

```
{
  "parseToOCSF": {
    "eventSource": "CloudTrail",
    "ocsfVersion": "V1.5",
    "mappingVersion": "v1.5.0"
  }
}
```