> For the complete documentation index, see [llms.txt](https://docs.panther.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.panther.com/ko/detections/rules/writing-simple-detections/match-expression.md).

# 간단한 디택션 일치 표현식 참조

## 개요

match expression은 YAML로 정의된 조건 논리식으로, 다음을 반환합니다 `true` 또는 `false`. Match expression은 여러 곳에서 사용됩니다. 예:

* 다음의 [`디택션`](/ko/detections/rules/writing-simple-detections.md#detection) YAML로 작성된 Simple 디택션의 key
* 다음의 [`인라인 필터`](/ko/detections/rules/inline-filters.md#yaml-inlinefilter-syntax) Python 또는 Simple 디택션의 key
* 다음의 `표현식` 다음의 key [List Comprehension match expression](#list-comprehension-match-expressions) (사실상 match expression 안에 match expression을 만드는 것과 같습니다)
* 다음의 `조건` 다음의 [`DynamicSeverities`](/ko/detections/rules/writing-simple-detections.md#dynamicseverities) Simple 디택션의 key

7개의 [match expression 유형](#types-of-match-expressions), 구조가 각각 다릅니다. 다음을 사용하여 match expression을 그룹화할 수 있습니다: [결합자](#combinators) 복잡한 조건을 형성할 수 있습니다.

Simple 디택션에서 enrichment를 다음과 함께 사용할 수 있습니다 [enrichment match expression](#enrichment-match-expressions).

### match expression의 작동 방식

match expression은 대략 다음과 같이 작동합니다:

* 들어오는 이벤트의 key는 다음을 사용해 식별됩니다: [key 지정자](#key-specifiers)
* 하나의 [조건](#condition) 가 제공되며, 이는 검사의 성격을 설명합니다
* 하나의 [값](#value-s) (또는 값 목록)가 비교 대상으로 제공됩니다

(이 패턴에는 예외가 있으며, 비교를 위해 0개 또는 여러 이벤트 key가 식별되거나 값이 필요하지 않을 수 있습니다.)

## match expression의 유형

7가지 유형이 있으며, 각각 고유한 구문 또는 구조를 가집니다.

다음 섹션의 match expression 예시는 이 JSON 이벤트를 참조합니다:

<details>

<summary>예시 이벤트</summary>

이 섹션의 예시 match expression에서 이 이벤트를 참조할 수 있습니다.

```json
{
  "audit_event": "RECLASSIFICATION",
  "status": "success",
  "date": "2006-08-24",
  "actor": "International Astronomical Union",
  "old_classification": "PLANET",
  "new_classification": "DWARF_PLANET",
  "entity": {
    "name": "Pluto",
    "diameter": {
      "distance": 2370,
      "unit": "km"
    },
    "moons": [
      {
        "name": "Charon",
        "year_discovered": 1978,
        "discovered_by": ["James W. Christy"],
        "diameter": {
          "distance": 1212,
          "unit": "km"
        }
      },
      {
        "name": "Nix",
        "year_discovered": 2005,
        "discovered_by": [
          "H. A. Weaver",
          "S. A. Stern",
          "M. J. Mutchler",
          "A. J. Steffl",
          "M. W. Buie",
          "W. J. Merline",
          "J. R. Spencer",
          "E. F. Young",
          "L. A. Young"
        ],
        "diameter": {
          "distance": 49.8,
          "unit": "km"
        }
      },
      {
        "name": "Hydra",
        "year_discovered": 2005,
        "discovered_by": ["A. J. Steffl", "M. J. Mutchler"],
        "diameter": {
          "distance": 51
          "unit": "km"
        }
      },
      {
        "name": "Kerberos",
        "year_discovered": 2011,
        "discovered_by": ["M. R. Showalter", "D. P. Hamilton"]
        "diameter": {
          "distance": 19,
          "unit": "km",
        }
      },
      {
        "name": "Styx",
        "year_discovered": 2012,
        "discovered_by": ["M. R. Showalter", "D. P. Hamilton"]
        "diameter": {
          "distance": 25
          "unit": "km" 
        }
      }
    ],
    "single_year_in_earth_years": 247.94,
    "year_discovered": 1930,
    "discovered_by": "Clyde Tombaugh",
    "orbit_region": "Kuiper belt",
    "atmosphere": {
      "composition": ["nitrogen", "methane", "carbon monoxide"],
      "surface_pressure": {
        "number": 1,
        "unit": "pascals"
      }
    }
  },
  "p_enrichment": {
    "discoverer_info": {
        "discovered_by": {
            "p_match": "Clyde Tombaugh",
	    "year_born": 1906,
	    "year_died": 1997
	}
    }
  } 
}
```

</details>

{% hint style="info" %}
아래의 각 예시 match expression에서는 하나의 [key 지정자](#key-specifiers) 가 이벤트 key(들)를 식별하는 데 사용되지만, key 지정자(예: `키`, `DeepKey` 또는 `KeyPath`)를 대부분의 경우 사용할 수 있습니다.
{% endhint %}

### 키/값 match expression

키/값 match expression은 특정 이벤트 key의 값을 주어진 값과 비교합니다.

다음의 허용되는 모든 값을 확인할 수 있습니다: `조건` 다음에서 [아래의 스칼라 일치 조건 표](#scalar-matching-conditions), 여기서 "Applicable Match Expressions" 열에는 "Key/value"가 포함됩니다.

예:

```yaml
- 키: audit_event
  조건: 같음
  값: reclassification
```

### 키/값들 match expression

키/값들 match expression은 일부 이벤트 값이 주어진 목록의 멤버인지 평가합니다.

키/값들 match expression에 허용되는 `조건` 값은 `IsIn` 및 `IsNotIn`, 다음에서 볼 수 있습니다 [아래의 목록 일치 조건 표](#list-matching-conditions).

예:

```yaml
- KeyPath: entity.name
  조건: IsIn
  값:
    - Mercury
    - Venus
    - Earth
    - Mars
    - Jupiter
    - Saturn
    - Uranus
    - Neptune
```

### 다중 key match expression

{% hint style="info" %}
다중 key match expression은 Panther Console의 Simple 디택션 빌더에서 보고 편집할 수 없으며, Inline Filter에서도 사용할 수 없습니다. 전체 목록은 [여기에서 Simple 디택션 빌더 제한 사항](/ko/detections/rules/simple-detection-builder.md#limitations-of-the-simple-detection-builder), 그리고 [여기에서 Inline Filter 제한 사항](/ko/detections/rules/inline-filters.md#limitations-of-yaml-inline-filters).
{% endhint %}

다중 key match expression을 사용하면 두 이벤트 key의 값을 비교할 수 있습니다. 다음을 포함하여 다중 key match expression을 만들 수 있습니다 `조건` 및 값 목록 `값` 을 포함하는

다음의 허용되는 모든 값을 확인할 수 있습니다 `조건` 다음에서 [아래의 스칼라 일치 조건 표](#scalar-matching-conditions), 여기서 "Applicable Match Expressions" 열에는 "Multi-key"가 포함됩니다.

```yaml
- 조건: IsGreaterThan
  값: # 이러한 값은 `Key`, 'DeepKey' 또는 'KeyPath'의 조합일 수 있으며, 최대 두 개의 절까지 가능합니다.
    - KeyPath: entity.diameter.distance # Pluto is bigger than...
    - KeyPath: entity.moons[0].diameter.distance # Charon
```

### 리스트 컴프리헨션 match expression

{% hint style="info" %}
리스트 컴프리헨션 match expression은 Panther Console의 Simple 디택션 빌더에서 보고 편집할 수 없으며, Inline Filter에서도 사용할 수 없습니다. 전체 목록은 [여기에서 Simple 디택션 빌더 제한 사항](/ko/detections/rules/simple-detection-builder.md#limitations-of-the-simple-detection-builder), 그리고 [여기에서 Inline Filter 제한 사항](/ko/detections/rules/inline-filters.md#limitations-of-yaml-inline-filters).
{% endhint %}

리스트 컴프리헨션 match expression은 목록 값이 있는 key를 가져와 목록의 각 항목에 대해 match expression 목록과 비교합니다. match expression 목록은 다음 아래에 저장됩니다 `표현식` key.

리스트 컴프리헨션 match expression의 경우, 다음 `조건` 값이 유효합니다:

* `임의 요소`
* `모든 요소`
* `하나만 요소`
* `요소 없음`

이러한 `조건` 값에 대해 자세히 알아보세요. [아래의 리스트 컴프리헨션 조건 표에서 확인하세요.](#list-comprehension-conditions)

다음을 사용하는 예 `임의 요소`:

```yaml
- KeyPath: entity.moons
  조건: AnyElement
  표현식:
    - 키: name
      조건: 같음
      값: "Death Star"
    - 키: year_discovered
      조건: IsGreaterThan
      값: 2000
```

다음의 `표현식` key에는 다음 중 하나를 추가할 수 있습니다:

* 중첩된 리스트 컴프리헨션 match expression. 각 중첩 수준에는 리스트 컴프리헨션 match expression 하나만 포함될 수 있습니다. 이 구조는 사실상 중첩된 for 루프를 만듭니다. 가장 안쪽 리스트 컴프리헨션에는 리스트 컴프리헨션 match expression가 아닌 match expression이라면 원하는 만큼 넣을 수 있습니다. 예:

  ```yaml
  - KeyPath: entity.moons
    조건: AnyElement
    표현식:
      - 키: discovered_by
        조건: AllElements
        표현식:
          - 키: $Element$
            조건: 같음
            값: "James W. Christy"
  ```
* 리스트 컴프리헨션 match expression이 아닌 match expression의 임의 조합. 예:

  ```yaml
  - 키: someKey
    조건: AnyElement
    표현식:
      - 키: a
        조건: 같음
        값: 123
      - 키: b
        조건: IsIn
        값:
        - 345
        - 678
  ```

### 존재 match expression

존재 match expression은 특정 key가 지정된 존재 조건과 일치하는지 판별합니다.

다음의 허용되는 모든 값을 확인할 수 있습니다 `조건` 다음에서 [아래의 스칼라 일치 조건 표](#scalar-matching-conditions), 여기서 "Applicable Match Expressions" 열에는 "Existence"가 포함됩니다.

예:

```yaml
- 키: entity.atmosphere
  조건: Exists
```

### 절대 match expression

{% hint style="info" %}
절대 match expression은 Panther Console의 Simple 디택션 빌더에서 보고 편집할 수 없으며, Inline Filter에서도 사용할 수 없습니다. 전체 목록은 [여기에서 Simple 디택션 빌더 제한 사항](/ko/detections/rules/simple-detection-builder.md#limitations-of-the-simple-detection-builder), 그리고 [여기에서 Inline Filter 제한 사항](/ko/detections/rules/inline-filters.md#limitations-of-yaml-inline-filters).
{% endhint %}

경우에 따라 match expression이 항상 다음으로 평가되길 원할 수 있습니다 `True` 또는 `False`. 이는 단순히 다음을 포함하는 match expression을 만들어 수행할 수 있습니다 `조건` key를 다음으로 설정한 `AlwaysTrue` 또는 `AlwaysFalse`.

```yaml
- 조건: AlwaysTrue
```

### enrichment match expression

{% hint style="info" %}
enrichment match expression은 Panther Console의 Simple 디택션 빌더에서 보고 편집할 수 없으며, Inline Filter에서도 사용할 수 없습니다. 전체 목록은 [여기에서 Simple 디택션 빌더 제한 사항](/ko/detections/rules/simple-detection-builder.md#limitations-of-the-simple-detection-builder), 그리고 [여기에서 Inline Filter 제한 사항](/ko/detections/rules/inline-filters.md#limitations-of-yaml-inline-filters).
{% endhint %}

enrichment match expression은 JSON 이벤트의 다음과 상호작용하는 데에만 사용됩니다 `p_enrichment` 구조체로, 다음에 일치가 있을 경우 존재합니다 [Lookup Table](/ko/enrichment/custom.md), [Enrichment Provider](/ko/enrichment.md#enrichment-providers), 또는 [Identity Provider Profile](https://github.com/panther-labs/panther-docs/blob/main/docs/gitbook/detections/rules/writing-simple-detections/broken-reference/README.md).

enrichment match expression을 만들려면 다음을 포함하세요 `Enrichment` key. 다음의 내용은 `Enrichment` 조건을 구성할 이벤트 key의 경로를 나타냅니다. 다음 내부에서는 `Enrichment`, 다음 필드를 포함하세요:

* `테이블`: Lookup Table, Enrichment Provider 테이블, 또는 Identity Provider Profile 테이블의 이름입니다.
  * 이 이름은 Lookup Table의 경우 사용자가 정의하며, Enrichment Provider와 Identity Provider Profile의 경우 Panther가 정의합니다.
* `선택자`: 다음의 이름입니다 [선택자 필드](/ko/enrichment/custom.md#overview) 들어오는 로그에서
* `FieldPath`: 다음 내 이벤트 필드 중 하나의 이름입니다 `선택자` 필드. 이 key는 JSON 경로 표기를 사용하므로, 필요하면 중첩된 필드를 나타낼 수 있습니다.

다음을 정의한 후에는 `Enrichment` 및 하위 필드를 정의한 후에는, 나머지 match expression은 다음의 구조를 따르도록 구성할 수 있습니다 *다른* match expression 유형 중 다음을 제외하고는— [리스트 컴프리헨션 match expression](#list-comprehension-match-expressions) (이 표현식들은 enrichment와 함께 사용할 수 없으며) 그리고 [절대 match expression](#absolute-match-expressions) (이 표현식들은 어떤 이벤트 값도 참조하지 않습니다.)

예를 들어, 아래의 enrichment match expression에는 `조건` 및 `값` key들—은 다음과 유사합니다 [키/값](#key-value-match-expressions) match expression:

```yaml
- Enrichment:
    테이블: discoverer_info
    선택자: discovered_by
    FieldPath: p_match
  조건: 같음
  값: "Clyde Tombaugh"
```

## 결합자

{% hint style="info" %}
해당 `하나만` 및 `없음` 결합자는 Panther Console의 Simple 디택션 빌더에서 보고 편집할 수 없으며, Inline Filter에서도 사용할 수 없습니다. 전체 목록은 [여기에서 Simple 디택션 빌더 제한 사항](/ko/detections/rules/simple-detection-builder.md#limitations-of-the-simple-detection-builder), 그리고 [여기에서 Inline Filter 제한 사항](/ko/detections/rules/inline-filters.md#limitations-of-yaml-inline-filters).
{% endhint %}

결합자는 match expression 또는 match expression 그룹 간의 관계를 설명하는 YAML key입니다. 결합자는 4가지가 있습니다: `모든`, `임의`, `하나만`, 그리고 `없음`.

match expression을 받는 key 바로 아래에 match expression이 하나보다 많이 제공되면(예: `디택션`, `인라인 필터` 또는 `표현식`), 결합자가 지정되지 않으면 `모든` 로 간주됩니다.

CLI 워크플로에서 Simple 디택션을 작성할 때는 결합자로 만들 수 있는 중첩 수준의 수에 제한이 없습니다. ( [Simple 디택션 빌더](/ko/detections/rules/simple-detection-builder.md) Panther Console에서는 3단계 제한이 있습니다.) 로컬에서 작업할 때 match expression이 3단계보다 더 깊게 중첩되면 Panther Console은 이를 Simple 디택션 빌더에 렌더링하지 않으며, raw YAML에서만 볼 수 있습니다.

<table><thead><tr><th width="154.33333333333331">결합자</th><th width="216">불리언 연산자 이름</th><th>설명</th></tr></thead><tbody><tr><td><code>모든</code></td><td>논리 AND</td><td>목록의 모든 match expression이 true로 평가됩니다. 처음 실패한 match가 목록 평가를 종료합니다.</td></tr><tr><td><code>임의</code></td><td>논리 OR</td><td>목록의 어느 하나의 match expression이라도 true로 평가되면 됩니다. 처음 true가 된 match가 목록 평가를 종료합니다.</td></tr><tr><td><code>하나만</code></td><td>논리 XOR</td><td>목록의 match expression 중 단 하나만 true로 평가됩니다.<br><br>다음에서는 사용할 수 없습니다 <a href="/pages/826d24763bf187089b1b759da66af0b58b95c92a#limitations-of-yaml-inline-filters">인라인 필터</a> 또는 다음에서 보고/편집할 수 없습니다 <a href="/pages/41dd034ed11bdfe1e47bfbcfc10c080b92f72d95#limitations-of-the-simple-detection-builder">Simple 디택션 빌더</a> Console에서.</td></tr><tr><td><code>없음</code></td><td>논리 NOT AND</td><td>목록의 어느 match expression도 true로 평가되지 않습니다.<br><br>Inline Filter에서는 사용할 수 없으며, Console의 Simple 디택션 빌더에서 보고/편집할 수도 없습니다.</td></tr></tbody></table>

다음을 사용한 1단계 중첩 예시 `하나만`:

```yaml
# 나열된 표현식 중 정확히 하나만 평가되어야 
# `OnlyOne` 블록이 true로 평가되려면
- OnlyOne:
  - 키: someKey
    조건: DoesNotEqual
    값: 1234
  - 키: someOtherKey
    조건: Contains
    값: "invalid login"
  - 키: someOtherOtherKey
    조건: IsIn
    값:
      - 314
      - 567
```

다음을 사용한 여러 단계 중첩 예시 `임의` 및 `모든`:

```yaml
- Any:
      - All:
          - 키: eventSource
            조건: StartsWith
            값: 'dynamodb'
          - Any:
              - 키: eventName
                조건: StartsWith
                값: List
              - 키: eventName
                조건: StartsWith
                값: Describe
              - 키: eventName
                조건: StartsWith
                값: Get
      - All:
          - 키: eventSource
            조건: StartsWith
            값: 'ec2'
          - Any:
              - 키: eventName
                조건: StartsWith
                값: Describe
              - 키: eventName
                조건: StartsWith
                값: Get
```

## Key 지정자

Key 지정자는 로그 이벤트 JSON의 특정 key를 지정할 수 있게 해주는 YAML key의 그룹입니다. key 지정자는 3가지가 있습니다: `키`, `DeepKey`, 그리고 `KeyPath`.

key 지정자의 값으로 제공된 이벤트 속성이 존재하지 않으면 match expression의 평가는 중단되고 false를 반환합니다.

### `키`

`키` 를 사용하면 최상위 이벤트 속성에 액세스할 수 있습니다. 예:

```yaml
키: username
```

### `DeepKey`

`DeepKey` 를 사용하면 중첩된 이벤트 속성에 액세스할 수 있습니다. `DeepKey` 목록을 허용합니다. 또한 다음을 사용할 수도 있습니다 `DeepKey` 절대 인덱스를 알고 있을 때 배열 요소에 액세스하는 데 사용할 수 있습니다.

다음을 사용하는 예 `DeepKey`는 깊은 필드 `foo.bar.baz`, 그다음 배열 인덱스 2를 지정합니다:

```yaml
- DeepKey:
  - foo
  - bar
  - baz
  - 2
```

### `KeyPath`

`KeyPath` 다음에 액세스할 수 있습니다:

* 최상위 필드
* 다음을 사용한 중첩 필드

  * 하위 필드 인덱싱 (`.`)
  * 배열 인덱싱: 다음을 사용 `[*]` 를 배열 전체의 와일드카드로 사용하거나 `[x]` 를 특정 인덱스에 사용합니다. [객체 배열의 인덱싱에 대해 자세히 알아보세요](/ko/detections/rules/inline-filters.md#indexing-an-array-of-objects).

  추가 JSON 경로 기능은 지원되지 않습니다.

예:

```yaml
KeyPath: foo[*].bar
# 또는
KeyPath: foo.bar[2]
# 또는
KeyPath: foo.bar[2].baz
# 또는
KeyPath: foo.bar.baz
# 또는 
KeyPath: foo
```

## `조건`

다양한 유형의 `조건` 값을 선택할 수 있으며, 여기에는 [스칼라](#scalar-matching-conditions), [목록](#list-matching-conditions), 그리고 [리스트 컴프리헨션](#list-comprehension-conditions) 그룹화가 포함됩니다.

{% hint style="info" %}
특정 `조건` 값은 Panther Console의 Simple 디택션 빌더에서 보고 편집할 수 없으며, Inline Filter에서도 사용할 수 없습니다. 전체 목록은 [여기에서 Simple 디택션 빌더 제한 사항](/ko/detections/rules/simple-detection-builder.md#limitations-of-the-simple-detection-builder), 그리고 [여기에서 Inline Filter 제한 사항](/ko/detections/rules/inline-filters.md#limitations-of-yaml-inline-filters).
{% endhint %}

### 스칼라 일치 조건

스칼라 일치 조건을 다음과 함께 사용하세요 `값` key(가 아닌 `값`). match expression의 [key 지정자](#key-specifiers) 는 목록 또는 단일 값을 참조할 수 있지만 `값` 는 단일이어야 합니다.

다음에서는 사용할 수 없습니다 [인라인 필터](/ko/detections/rules/inline-filters.md#limitations-of-yaml-inline-filters) 또는 다음에서 보고/편집할 수 없습니다 [Simple 디택션 빌더](/ko/detections/rules/simple-detection-builder.md#limitations-of-the-simple-detection-builder) Console에서.

<table data-full-width="false"><thead><tr><th width="161.18359375">조건</th><th width="101.7265625">Key의 값 유형</th><th width="320.6015625">설명</th><th width="197.12109375">적용 가능한 match expression</th></tr></thead><tbody><tr><td><code>존재함</code></td><td>임의</td><td>지정된 key가 존재하는지 확인합니다<br><br>다음에서는 사용할 수 없습니다 <a href="/pages/826d24763bf187089b1b759da66af0b58b95c92a#limitations-of-yaml-inline-filters">인라인 필터</a> 또는 다음에서 보고/편집할 수 없습니다 <a href="/pages/41dd034ed11bdfe1e47bfbcfc10c080b92f72d95#limitations-of-the-simple-detection-builder">Simple 디택션 빌더</a> Console에서.</td><td>Existence, Enrichment</td></tr><tr><td><code>존재하지 않음</code></td><td>임의</td><td>지정된 key가 존재하지 않는지 확인합니다<br><br>다음에서는 사용할 수 없습니다 <a href="/pages/826d24763bf187089b1b759da66af0b58b95c92a#limitations-of-yaml-inline-filters">인라인 필터</a> 또는 다음에서 보고/편집할 수 없습니다 <a href="/pages/41dd034ed11bdfe1e47bfbcfc10c080b92f72d95#limitations-of-the-simple-detection-builder">Simple 디택션 빌더</a> Console에서.</td><td>Existence, Enrichment</td></tr><tr><td><code>널임</code></td><td>임의</td><td>key가 null인지 확인합니다. 예: <code>{"key": null}</code><br><br>다음에서는 사용할 수 없습니다 <a href="/pages/826d24763bf187089b1b759da66af0b58b95c92a#limitations-of-yaml-inline-filters">인라인 필터</a> 또는 다음에서 보고/편집할 수 없습니다 <a href="/pages/41dd034ed11bdfe1e47bfbcfc10c080b92f72d95#limitations-of-the-simple-detection-builder">Simple 디택션 빌더</a> Console에서.</td><td>Existence, Enrichment</td></tr><tr><td><code>널이 아님</code></td><td>임의</td><td>key가 null이 아닌지 확인합니다. 예: <code>{"key": 1234}</code><br><br>다음에서는 사용할 수 없습니다 <a href="/pages/826d24763bf187089b1b759da66af0b58b95c92a#limitations-of-yaml-inline-filters">인라인 필터</a> 또는 다음에서 보고/편집할 수 없습니다 <a href="/pages/41dd034ed11bdfe1e47bfbcfc10c080b92f72d95#limitations-of-the-simple-detection-builder">Simple 디택션 빌더</a> Console에서.</td><td>Existence, Enrichment</td></tr><tr><td><code>IsNullOrEmpty</code></td><td>임의</td><td>key가 null이거나 비어 있지 않은 값을 가졌는지 확인합니다. 빈 값에는 다음이 포함됩니다: 빈 목록 (<code>[]</code>), 빈 문자열 (<code>""</code>), 그리고 숫자 <code>0</code></td><td>Existence, Enrichment</td></tr><tr><td><code>IsNotNullOrEmpty</code></td><td>임의</td><td>키가 null이 아니거나 비어 있지 않은 값인지 확인합니다. 빈 값에는 빈 목록(<code>[]</code>), 빈 문자열 (<code>""</code>), 그리고 숫자 <code>0</code>.</td><td>Existence, Enrichment</td></tr><tr><td><code>같음</code></td><td>임의</td><td>키의 값이 지정된 값과 같은지 확인합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>같지 않음</code></td><td>임의</td><td>키의 값이 지정된 값과 같지 않은지 확인합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>대소문자 구분 없이 같음</code></td><td>문자열</td><td>키의 문자열 값이 지정된 문자열과 같은지 확인합니다. 대소문자 구분 안 함</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>대소문자 구분 없이 같지 않음</code></td><td>문자열</td><td>키의 문자열 값이 지정된 문자열과 같지 않은지 확인합니다. 대소문자 구분 안 함</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>시작함</code></td><td>문자열</td><td>키의 문자열 값이 지정된 값으로 시작하는지 확인합니다. 키가 문자열이 아니면 false를 반환합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>대소문자 구분 없이 시작함</code></td><td>문자열</td><td>키의 문자열 값이 지정된 값으로 시작하는지 확인합니다. 대소문자 구분 안 함. 키가 문자열이 아니면 false를 반환합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>시작하지 않음</code></td><td>문자열</td><td>키의 문자열 값이 지정된 값으로 시작하지 않는지 확인합니다. 키가 문자열이 아니면 false를 반환합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>대소문자 구분 없이 시작하지 않음</code></td><td>문자열</td><td>키의 문자열 값이 지정된 값으로 시작하지 않는지 확인합니다. 대소문자 구분 안 함. 키가 문자열이 아니면 false를 반환합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>끝남</code></td><td>문자열</td><td>키의 문자열 값이 지정된 값으로 끝나는지 확인합니다. 키가 문자열이 아니면 false를 반환합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>대소문자 구분 없이 끝남</code></td><td>문자열</td><td>키의 문자열 값이 지정된 값으로 끝나는지 확인합니다. 대소문자 구분 안 함. 키가 문자열이 아니면 false를 반환합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>끝나지 않음</code></td><td>문자열</td><td>키의 문자열 값이 지정된 값으로 끝나지 않는지 확인합니다. 키가 문자열이 아니면 false를 반환합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>대소문자 구분 없이 끝나지 않음</code></td><td>문자열</td><td>키의 문자열 값이 지정된 값으로 끝나지 않는지 확인합니다. 대소문자 구분 안 함. 키가 문자열이 아니면 false를 반환합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>포함</code></td><td>문자열 또는 목록</td><td>키의 문자열 값이 지정된 값을 포함하는지 확인합니다. 키가 문자열이 아니면 false를 반환합니다<br><br>또는<br><br>문자열 배열(대소문자 구분)/정수/실수/불리언이 값을 포함하는지 확인합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>대소문자 구분 없이 포함</code></td><td>문자열</td><td>키의 문자열 값이 지정된 값을 포함하는지 확인합니다. 대소문자 구분 안 함. 키가 문자열이 아니면 false를 반환합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>포함하지 않음</code></td><td>문자열 또는 목록</td><td>키의 문자열 값이 지정된 값을 포함하지 않는지 확인합니다. 키가 문자열이 아니면 false를 반환합니다<br><br>또는<br><br>문자열 배열(대소문자 구분)/정수/실수/불리언이 값을 포함하지 않는지 확인합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>대소문자 구분 없이 포함하지 않음</code></td><td>문자열</td><td>키의 문자열 값이 지정된 값을 포함하지 않는지 확인합니다. 대소문자 구분 안 함. 키가 문자열이 아니면 false를 반환합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>IP 주소인지 여부</code></td><td>문자열 또는 정수</td><td>키의 문자열 또는 정수 값이 IP 주소로 해석될 수 있는지 확인합니다. 기능적으로 ANY(<code>IPv4 주소인지 여부</code>, <code>IPv6 주소인지 여부</code>)<br><br>다음에서는 사용할 수 없습니다 <a href="/pages/826d24763bf187089b1b759da66af0b58b95c92a#limitations-of-yaml-inline-filters">인라인 필터</a> 또는 다음에서 보고/편집할 수 없습니다 <a href="/pages/41dd034ed11bdfe1e47bfbcfc10c080b92f72d95#limitations-of-the-simple-detection-builder">Simple 디택션 빌더</a> Console에서.</td><td>키 존재 일치, 보강</td></tr><tr><td><code>IPv4 주소인지 여부</code></td><td>문자열 또는 정수</td><td>키의 문자열 또는 정수 값이 IPv4 주소로 해석될 수 있는지 확인합니다<br><br>다음에서는 사용할 수 없습니다 <a href="/pages/826d24763bf187089b1b759da66af0b58b95c92a#limitations-of-yaml-inline-filters">인라인 필터</a> 또는 다음에서 보고/편집할 수 없습니다 <a href="/pages/41dd034ed11bdfe1e47bfbcfc10c080b92f72d95#limitations-of-the-simple-detection-builder">Simple 디택션 빌더</a> Console에서.</td><td>키 존재 일치, 보강</td></tr><tr><td><code>IPv6 주소인지 여부</code></td><td>문자열 또는 정수</td><td>키의 문자열 또는 정수 값이 IPv6 주소로 해석될 수 있는지 확인합니다<br><br>다음에서는 사용할 수 없습니다 <a href="/pages/826d24763bf187089b1b759da66af0b58b95c92a#limitations-of-yaml-inline-filters">인라인 필터</a> 또는 다음에서 보고/편집할 수 없습니다 <a href="/pages/41dd034ed11bdfe1e47bfbcfc10c080b92f72d95#limitations-of-the-simple-detection-builder">Simple 디택션 빌더</a> Console에서.</td><td>키 존재 일치, 보강</td></tr><tr><td><code>IP주소가사설인지</code></td><td>문자열 또는 정수</td><td>키의 문자열 또는 정수 값이 사설 IP 주소로 해석될 수 있는지 확인합니다</td><td>키 존재 일치, 보강</td></tr><tr><td><code>IP주소가공개인지</code></td><td>문자열 또는 정수</td><td>키의 문자열 또는 정수 값이 공개 IP 주소로 해석될 수 있는지 확인합니다</td><td>키 존재 일치, 보강</td></tr><tr><td><code>IP주소가CIDR범위내인지</code></td><td>문자열 또는 정수</td><td>IP 주소로 렌더링된 키의 문자열 또는 정수 값이 CIDR 범위 안에 있는지 확인합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>IP주소가CIDR범위밖인지</code></td><td>문자열 또는 정수</td><td>IP 주소로 렌더링된 키의 문자열 또는 정수 값이 CIDR 범위 안에 없는지 확인합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>CIDR이IP주소를포함하는지</code></td><td>문자열로 된 IP 목록</td><td>CIDR 범위로 렌더링된 키의 문자열 값이 지정된 IP 주소를 포함하는지 확인합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>CIDR이IP주소를포함하지않는지</code></td><td>문자열로 된 IP 목록</td><td>키의 값을 IP 주소 목록으로 해석했을 때 지정된 CIDR 범위 안에 있는지 확인합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>보다큼</code></td><td>정수 또는 실수</td><td>키의 값이 지정된 값보다 큰지 확인합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>이상인지</code></td><td>정수 또는 실수</td><td>키의 값이 지정된 값보다 크거나 같은지 확인합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>보다작은지</code></td><td>정수 또는 실수</td><td>키의 값이 지정된 값보다 작은지 확인합니다</td><td>키/값, 다중 키, 보강</td></tr><tr><td><code>이하인지</code></td><td>정수 또는 실수</td><td>키의 값이 지정된 값보다 작거나 같은지 확인합니다</td><td>키/값, 다중 키, 보강</td></tr></tbody></table>

### 목록 일치 조건

목록 일치 조건을 함께 사용 `값` (아님 `값`). match expression의 [key 지정자](#key-specifiers) 단일 값 또는 목록을 참조할 수 있지만 `값` 반드시 목록을 참조해야 합니다.

<table data-full-width="false"><thead><tr><th width="129">조건</th><th width="105">키 유형</th><th width="110">값 유형</th><th width="227">설명</th><th>적용 가능한 match expression</th></tr></thead><tbody><tr><td><code>IsIn</code></td><td>스칼라</td><td>목록</td><td>지정된 키의 값이 목록의 구성원인지 평가합니다</td><td>키/값, 보강</td></tr><tr><td><code>IsNotIn</code></td><td>스칼라</td><td>목록</td><td>지정된 키의 값이 목록의 구성원이 아닌지 평가합니다</td><td>키/값, 보강</td></tr></tbody></table>

### 목록 내포 조건

목록 내포 조건은 다음 내에서만 사용할 수 있습니다 [목록 내포 일치 표현식](#list-comprehension-match-expressions).

<table data-full-width="false"><thead><tr><th width="164.25000000000003">조건</th><th width="63">키 유형</th><th width="316">설명</th><th>적용 가능한 match expression</th></tr></thead><tbody><tr><td><code>임의 요소</code></td><td>목록</td><td>지정된 키의 값 목록이 일치 조건 목록의 모든 표현식과 일치하는지 평가합니다<br><br>다음에서는 사용할 수 없습니다 <a href="/pages/826d24763bf187089b1b759da66af0b58b95c92a#limitations-of-yaml-inline-filters">인라인 필터</a> 또는 다음에서 보고/편집할 수 없습니다 <a href="/pages/41dd034ed11bdfe1e47bfbcfc10c080b92f72d95#limitations-of-the-simple-detection-builder">Simple 디택션 빌더</a> Console에서.</td><td>목록 내포</td></tr><tr><td><code>모든 요소</code></td><td>목록</td><td>지정된 키의 값 목록이 일치 조건 목록의 모든 표현식과 일치하는지 평가합니다<br><br>다음에서는 사용할 수 없습니다 <a href="/pages/826d24763bf187089b1b759da66af0b58b95c92a#limitations-of-yaml-inline-filters">인라인 필터</a> 또는 다음에서 보고/편집할 수 없습니다 <a href="/pages/41dd034ed11bdfe1e47bfbcfc10c080b92f72d95#limitations-of-the-simple-detection-builder">Simple 디택션 빌더</a> Console에서.</td><td>목록 내포</td></tr><tr><td><code>하나만 요소</code></td><td>목록</td><td>지정된 키의 값 목록에 일치 조건 목록과 일치하는 단일 요소만 있는지 평가합니다<br><br>다음에서는 사용할 수 없습니다 <a href="/pages/826d24763bf187089b1b759da66af0b58b95c92a#limitations-of-yaml-inline-filters">인라인 필터</a> 또는 다음에서 보고/편집할 수 없습니다 <a href="/pages/41dd034ed11bdfe1e47bfbcfc10c080b92f72d95#limitations-of-the-simple-detection-builder">Simple 디택션 빌더</a> Console에서.</td><td>목록 내포</td></tr><tr><td><code>요소 없음</code></td><td>목록</td><td>지정된 키의 값 목록이 일치 조건 목록의 모든 표현식과 일치하지 않는지 평가합니다<br><br>다음에서는 사용할 수 없습니다 <a href="/pages/826d24763bf187089b1b759da66af0b58b95c92a#limitations-of-yaml-inline-filters">인라인 필터</a> 또는 다음에서 보고/편집할 수 없습니다 <a href="/pages/41dd034ed11bdfe1e47bfbcfc10c080b92f72d95#limitations-of-the-simple-detection-builder">Simple 디택션 빌더</a> Console에서.</td><td>목록 내포</td></tr></tbody></table>

## `값(들)`

다음에 대한 값 `값` 및 `값` 키는 다음 네 가지 데이터 유형 중 하나를 가질 수 있습니다:

* 정수
* 실수
* 불리언
* 문자열

정수, 실수, 불리언은 따옴표로 묶지 않아야 합니다. 문자열은 선택적으로 따옴표로 묶을 수 있습니다.

다양하게 형식화된 `값` 값이 아래에서 어떻게 평가되는지 확인하세요:

```yaml
디택션:
  - 키: someKey
    조건: 같음
    값: 2 # 이는 정수 2로 평가됩니다
  - 키: someKey
    조건: 같음
    값: "2" # 이는 문자열 "2"로 평가됩니다
  - 키: someKey
    조건: 같음
    값: 2.2 # 이는 실수 2.2로 평가됩니다
  - 키: someKey
    조건: 같음
    값: "2.2" # 이는 문자열 "2.2"로 평가됩니다
  - 키: someKey
    조건: 같음
    값: true # 이는 불리언 true로 평가됩니다
  - 키: someKey
    조건: 같음
    값: "true" # 이는 문자열 "true"로 평가됩니다
  - 키: someKey
    조건: 같음
    값: some string thing # 이는 문자열 "some string thing"으로 평가됩니다
  - 키: someKey
    조건: 같음
    값: "some string thing" # 이는 문자열 "some string thing"으로 평가됩니다
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.panther.com/ko/detections/rules/writing-simple-detections/match-expression.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
