

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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 로그 형식에 대한 자세한 내용은 [ 웹 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 형식으로 변환합니다. 인코딩된 필드 값은 디코딩됩니다. 정수 및 2배인 값은 이와 같이 처리됩니다. 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(Open Cybersecurity Schema Framework) 이벤트로 변환합니다. OCSF는 보안 데이터에 대한 공통 스키마를 제공하는 개방형 표준으로, 다양한 보안 도구 및 플랫폼에서 보다 나은 상호 운용성과 분석을 지원합니다.

이 프로세서는 다양한 AWS 서비스의 로그 형식을 다운스트림 분석을 위한 일관된 스키마로 표준화해야 하는 보안 분석 워크플로에 특히 유용합니다.

**파라미터**

`eventSource`(필수)  
변환할 로그 이벤트를 생성하는 AWS 서비스 또는 프로세스를 지정합니다. 유효값은 다음과 같습니다.  
+ `CloudTrail` - CloudTrail 로그
+ `Route53Resolver` - Route 53 Resolver 로그
+ `VPCFlow` - Amazon VPC Flow Logs
+ `EKSAudit` - Amazon EKS 감사 로그
+ `AWSWAF` - AWS WAF 로그

`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"
  }
}
```