간단한 디텍션 매치 표현식 참조
논리를 정의하기 위해 매치 표현식을 구성하세요
개요
매치 표현은 YAML로 정의된 조건 논리 표현으로, 다음을 반환합니다 부울 값 이전에 생성한 Snowflake 사용자 이름, 예를 들면 true입니다. 매치 표현은 예를 들어 다양한 장소에서 사용됩니다:
일반 구성
함수를 포함해야 함을 의미합니다;YAML로 작성된 Simple Detection의 키일반 구성
InlineFiltersPython 또는 Simple Detection의 키일반 구성
식의 키 리스트 컴프리헨션 매치 표현 (실질적으로 매치 표현 내에 매치 표현을 생성함)일반 구성
조건의 키DynamicSeveritiesSimple Detection의 키
일곱 가지 매치 표현 유형이 있으며, 구조가 다양합니다. 복잡한 조건을 형성하려면 매치 표현을 사용하여 그룹화할 수 있습니다 결합자(combinators) 을 사용하여
Simple Detections에서 다음을 사용해 인리치먼트를 사용할 수 있습니다 인리치먼트 매치 표현.
매치 표현 작동 방식
매치 표현은 대략 다음과 같이 작동합니다:
(비교를 위해 0개 또는 여러 개의 이벤트 키가 식별되거나 값이 필요하지 않은 예외가 있습니다.)
매치 표현 유형
매치 표현에는 고유한 구문 또는 구조를 가진 일곱 가지 유형이 있습니다.
다음 섹션의 매치 표현 예제는 이 JSON 이벤트를 참조합니다:
아래 각 예제 매치 표현식에서는 단일 키 지정자 가 이벤트 키를 식별하는 데 사용되지만, 대부분의 경우 어떤 키 지정자(예: 키, Enrichment 매치 표현식 이전에 생성한 Snowflake 사용자 이름, 예를 들면 KeyPath)든 사용할 수 있습니다.
키/값 매치 표현식
키/값 매치 표현식은 특정 이벤트 키의 값을 주어진 값과 비교합니다.
다음에서 허용된 모든 조건 에서 스칼라 매칭 조건 표를 볼 수 있습니다여기서 "적용 가능한 매치 표현식" 열에는 "키/값"이 포함됩니다.
예:
키/값들 매치 표현식
키/값들 매치 표현식은 일부 이벤트 값이 주어진 목록의 멤버인지 평가합니다.
유일하게 허용되는 조건 키/값들 매치 표현식의 값은 IsIn 와 IsNotIn, 아래의 목록 매칭 조건 표에서 볼 수 있습니다.
예:
내에서 사용할 수 없습니다.
다중 키 매치 표현식은 Panther 콘솔의 간단한 디텍션 빌더에서 보거나 편집할 수 없으며 인라인 필터에서도 사용할 수 없습니다. 전체 목록은 여기 간단한 디텍션 빌더 제한 사항및 여기 인라인 필터 제한 사항.
다중 키 매치 표현식을 사용하면 두 이벤트 키의 값을 비교할 수 있습니다. 다음을 포함하여 다중 키 매치 표현식을 구성할 수 있습니다 조건 및 Values 아래에 잘못된 항목을 가지고 있을 때 두 개의 이벤트 키를 포함하는 목록.
의 허용 가능한 모든 값을 확인하세요 조건 에서 스칼라 매칭 조건 표를 볼 수 있습니다여기에서 "적용 가능한 매치 표현식" 열에 "다중 키(Multi-key)"가 포함됩니다.
리스트 컴프리헨션 매치 표현식
리스트 컴프리헨션 매치 표현식은 Panther 콘솔의 간단한 디텍션 빌더에서 보거나 편집할 수 없으며 인라인 필터에서도 사용할 수 없습니다. 전체 목록은 여기 간단한 디텍션 빌더 제한 사항및 여기 인라인 필터 제한 사항.
리스트 컴프리헨션 매치 표현식은 리스트 값을 가진 키를 가져와 리스트의 각 항목에 대해 매치 표현식 목록과 비교하여 평가합니다. 매치 표현식 목록은 아래의 식 키.
리스트 컴프리헨션 매치 표현식에 대해 다음 조건 값들이 유효합니다:
AnyElementAllElementsOnlyOneElementNoElement
이러한 조건 값들에 대해 더 알아보려면 아래의 리스트 컴프리헨션 조건 표를 참조하세요.
예시 사용 AnyElement:
내부의 식 키를 사용할 때, 다음 중 하나를 추가할 수 있습니다:
중첩된 리스트 컴프리헨션 매치 표현식. 중첩의 각 레벨은 하나의 리스트 컴프리헨션 매치 표현식만 포함할 수 있습니다. 이 구조는 중첩된 for 루프를 효과적으로 생성합니다. 가장 안쪽의 리스트 컴프리헨션은 리스트 컴프리헨션 매치 표현식이 아닌 한 원하는 만큼 많은 매치 표현식을 가질 수 있습니다. 예:
리스트 컴프리헨션 매치 표현식이 아닌 매치 표현식들의 임의 조합. 예:
존재 여부 매치 표현식
존재 여부 매치 표현식은 특정 키가 지정된 존재 조건과 일치하는지 여부를 결정합니다.
의 허용 가능한 모든 값을 확인하세요 조건 에서 스칼라 매칭 조건 표를 볼 수 있습니다여기에서 "적용 가능한 매치 표현식" 열에 "존재(Existence)"가 포함됩니다.
예:
절대 매치 표현식
절대 매치 표현식은 Panther 콘솔의 Simple Detection 빌더에서 조회하거나 편집할 수 없으며 Inline Filters에서도 사용할 수 없습니다. 전체 목록은 여기 간단한 디텍션 빌더 제한 사항및 여기 인라인 필터 제한 사항.
특정 경우에는 매치 표현식이 항상 비율이 이전에 생성한 Snowflake 사용자 이름, 예를 들면 ).로 평가되기를 원할 수 있습니다. 이는 단순히 조건 키가 AlwaysTrue 이전에 생성한 Snowflake 사용자 이름, 예를 들면 AlwaysFalse.
인리치먼트 매치 표현식
인리치먼트 매치 표현식은 Panther 콘솔의 Simple Detection 빌더에서 조회하거나 편집할 수 없으며 Inline Filters에서도 사용할 수 없습니다. 전체 목록은 여기 간단한 디텍션 빌더 제한 사항및 여기 인라인 필터 제한 사항.
인리치먼트 매치 표현식은 JSON 이벤트의 p_enrichment 구조체와만 상호작용하는 데 사용되며, 이는 Lookup Table, Enrichment Provider, 또는 Identify Provider Profile.
인리치먼트 매치 표현식을 생성하려면 인리치먼트 키를 포함하세요. 의 내용은 조건을 구성할 이벤트 키로 가는 경로를 나타냅니다. 인리치먼트 내에서 이벤트 키 경로를 나타냅니다. 필요에 따라 중첩된 필드를 표시할 수 있습니다. 인리치먼트내에 다음 필드를 포함하세요:
테이블: Lookup Table, Enrichment Provider 테이블 또는 Identity Provider Profile 테이블의 이름.이 이름은 Lookup Table의 경우 사용자가 정의하고, Enrichment Provider 및 Identity Provider Profile의 경우 Panther에서 정의합니다.
Selector: 의 이름 선택자 필드 발신 로그에서.FieldPath: 의 이벤트 필드 중 하나의 이름. 이 키는 JSON 경로 표기법을 사용하므로 필요하면 중첩된 필드를 지정할 수 있습니다.Selector필드 내의 이벤트 필드 이름입니다. 이 키는 JSON 경로 표기법을 사용하므로 필요시 중첩된 필드를 지정할 수 있습니다.
를 정의한 후 인리치먼트 및 그 하위 필드를 정의하면 나머지 매치 표현식은 모든 다른 매치 표현식 유형의 구조를 본떠 모델링할 수 있습니다—다만 리스트 컴프리헨션 매치 표현식 (이 표현식들은 인리치먼트와 함께 사용되는 것을 지원하지 않음) 및 절대 매치 표현식 (이 표현식들은 이벤트 값을 참조하지 않음).
예를 들어, 아래의 인리치먼트 매치 표현식은—다음 조건 와 값 키들을 포함하며— 키/값 매치 표현식과 유사합니다:
Combinators
사용자를 사용할 것이며, OnlyOne 와 는 선택적 조합자는 Panther 콘솔의 Simple Detection 빌더에서 조회하거나 편집할 수 없으며 Inline Filters에서도 사용할 수 없습니다. 전체 목록은 여기 간단한 디텍션 빌더 제한 사항및 여기 인라인 필터 제한 사항.
조합자는 매치 표현식 또는 매치 표현식 그룹 간의 관계를 설명하는 YAML 키입니다. 네 가지 조합자가 있습니다: 모든, Any, OnlyOne및 는 선택적.
매치 표현식을 받는 키(예: 함수를 포함해야 함을 의미합니다;, InlineFilters 이전에 생성한 Snowflake 사용자 이름, 예를 들면 식) 바로 아래에 둘 이상의 매치 표현식이 제공되고 조합자가 지정되지 않은 경우, 모든 가 가정됩니다.
CLI 워크플로우에서 Simple Detections를 작성할 때는 조합자로 생성할 수 있는 중첩 레벨 수에 제한이 없습니다. (Panther 콘솔의 Simple Detection 빌더 에서는 세 레벨 제한이 있습니다.) 로컬에서 작업할 때 매치 표현식이 세 레벨보다 깊게 중첩되면 Panther 콘솔은 Simple Detection 빌더에 이를 렌더링하지 않으며—원시 YAML에서만 볼 수 있습니다.
모든
논리적 AND
목록의 모든 매치 표현식이 true로 평가됩니다. 먼저 실패하는 매치가 목록의 평가를 종료합니다.
Any
논리적 OR
목록의 어떤 단일 매치 표현식이든 true로 평가됩니다. 첫 번째로 true인 매치가 목록의 평가를 끝냅니다.
OnlyOne
논리 XOR
목록에서 오직 하나의 단일 매치 표현식만 true로 평가됩니다. 에서는 사용할 수 없습니다 인라인 필터 또는 콘솔의 보기/편집에서 Simple Detection 빌더 콘솔에서.
는 선택적
논리 NOT AND
목록의 어떤 매치 표현식도 true로 평가되지 않습니다. Inline Filters에서 사용하거나 콘솔의 Simple Detection 빌더에서 보기/편집할 수 없습니다.
다음 사용 예시의 한 단계 중첩 예시 OnlyOne:
다중 중첩 레벨 사용 예시 Any 와 모든:
키 지정자
키 지정자는 로그 이벤트 JSON에서 특정 키를 지정할 수 있게 해주는 YAML 키 그룹입니다. 세 가지 키 지정자가 있습니다: 키, Enrichment 매치 표현식및 KeyPath.
키 지정자의 값으로 제공된 이벤트 속성이 존재하지 않으면, 매치 표현식의 평가가 중단되고 false를 반환합니다.
키
키키 최상위 이벤트 속성에 접근할 수 있게 해줍니다. 예시:
Enrichment 매치 표현식
Enrichment 매치 표현식Enrichment 매치 표현식 중첩된 이벤트 속성에 접근할 수 있게 해줍니다. Enrichment 매치 표현식 목록을 허용합니다. 또한 다음을 사용할 수 있습니다 Enrichment 매치 표현식 절대 인덱스를 알고 있을 때 배열의 요소에 접근하기 위해
예시 사용 Enrichment 매치 표현식로, 이는 깊은 필드에 접근합니다 foo.bar.baz그 다음 배열 인덱스 2에서 인덱싱합니다:
KeyPath
KeyPathKeyPath 다음에 접근할 수 있게 해줍니다:
최상위 필드
다음 사용으로 중첩 필드
하위 필드 인덱싱 (
.)배열 인덱싱: 다음을 사용하세요
[*]배열 전체에 대한 와일드카드로는 또는[x]특정 인덱스의 경우. 여기에서 객체 배열의 인덱싱에 대해 자세히 알아보세요.
추가적인 JSON 경로 기능은 지원되지 않습니다.
예:
조건
조건다양한 유형의 조건 값을 선택할 수 있으며, 다음을 포함합니다 스칼라, 목록및 리스트 컴프리헨션 그룹화.
특정 조건 값은 Panther 콘솔의 Simple Detection 빌더에서 보기 및 편집할 수 없으며 Inline Filters에서도 사용할 수 없습니다. 전체 여기 간단한 디텍션 빌더 제한 사항및 여기 인라인 필터 제한 사항.
스칼라 매칭 조건
다음과 함께 스칼라 매칭 조건을 사용하세요 값 키(가 아니라 Values 아래에 잘못된 항목을 가지고 있을 때). 매치 표현식의 키 지정자 는 목록 또는 단일 값을 참조할 수 있지만, 값 는 단수여야 합니다.
에서는 사용할 수 없습니다 인라인 필터 또는 콘솔의 보기/편집에서 Simple Detection 빌더 콘솔에서.
Exists
Any
지정된 키가 존재하는지 확인합니다 에서는 사용할 수 없습니다 인라인 필터 또는 콘솔의 보기/편집에서 Simple Detection 빌더 콘솔에서.
존재, 보강(Enrichment)
DoesNotExist
Any
지정된 키가 존재하지 않는지 확인합니다 에서는 사용할 수 없습니다 인라인 필터 또는 콘솔의 보기/편집에서 Simple Detection 빌더 콘솔에서.
존재, 보강(Enrichment)
IsNull
Any
키가 null인지 확인합니다. 예: {"key": null}
에서는 사용할 수 없습니다 인라인 필터 또는 콘솔의 보기/편집에서 Simple Detection 빌더 콘솔에서.
존재, 보강(Enrichment)
IsNotNull
Any
키가 null이 아닌지 확인합니다. 예: {"key": 1234}
에서는 사용할 수 없습니다 인라인 필터 또는 콘솔의 보기/편집에서 Simple Detection 빌더 콘솔에서.
존재, 보강(Enrichment)
IsNullOrEmpty
Any
키가 null이거나 비어있지 않은 값을 가지는지 확인합니다. 비어있는 값에는 다음이 포함됩니다: 빈 목록 ([]), 빈 문자열 (""), 그리고 숫자 0
존재, 보강(Enrichment)
IsNotNullOrEmpty
Any
키가 null이 아니거나 비어있지 않은 값을 가지는지 확인합니다. 비어있는 값에는 다음이 포함됩니다: 빈 목록 ([]), 빈 문자열 (""), 그리고 숫자 0.
존재, 보강(Enrichment)
Equals
Any
키의 값이 지정된 값과 같은지 확인합니다
키/값, 다중 키, 보강(Enrichment)
DoesNotEqual
Any
키의 값이 지정된 값과 같지 않은지 확인합니다
키/값, 다중 키, 보강(Enrichment)
IEquals
문자열
키의 문자열 값이 지정된 문자열과 대소문자 구분 없이 같은지 확인합니다
키/값, 다중 키, 보강(Enrichment)
IDoesNotEqual
문자열
키의 문자열 값이 지정된 문자열과 대소문자 구분 없이 같지 않은지 확인합니다
키/값, 다중 키, 보강(Enrichment)
StartsWith
문자열
키의 문자열 값이 지정된 값으로 시작하는지 확인합니다. 키가 문자열이 아니면 false를 반환합니다
키/값, 다중 키, 보강(Enrichment)
IStartsWith
문자열
키의 문자열 값이 지정된 값으로 시작하는지 대소문자 구분 없이 확인합니다. 키가 문자열이 아니면 false를 반환합니다
키/값, 다중 키, 보강(Enrichment)
DoesNotStartWith
문자열
키의 문자열 값이 지정된 값으로 시작하지 않는지 확인합니다. 키가 문자열이 아니면 false를 반환합니다
키/값, 다중 키, 보강(Enrichment)
IDoesNotStartWith
문자열
키의 문자열 값이 지정된 값으로 시작하지 않는지 대소문자 구분 없이 확인합니다. 키가 문자열이 아니면 false를 반환합니다
키/값, 다중 키, 보강(Enrichment)
EndsWith
문자열
키의 문자열 값이 지정된 값으로 끝나는지 확인합니다. 키가 문자열이 아니면 false를 반환합니다
키/값, 다중 키, 보강(Enrichment)
IEndsWith
문자열
키의 문자열 값이 지정된 값으로 끝나는지 대소문자 구분 없이 확인합니다. 키가 문자열이 아니면 false를 반환합니다
키/값, 다중 키, 보강(Enrichment)
DoesNotEndWith
문자열
키의 문자열 값이 지정된 값으로 끝나지 않는지 확인합니다. 키가 문자열이 아니면 false를 반환합니다
키/값, 다중 키, 보강(Enrichment)
IDoesNotEndWith
문자열
키의 문자열 값이 지정된 값으로 끝나지 않는지 대소문자 구분 없이 확인합니다. 키가 문자열이 아니면 false를 반환합니다
키/값, 다중 키, 보강(Enrichment)
Contains
문자열 또는 목록
키의 문자열 값이 지정된 값을 포함하는지 확인합니다. 키가 문자열이 아니면 false를 반환합니다 또는 문자열(대소문자 구분)/정수/부동소수점/불리언의 배열이 값을 포함하는지 확인합니다
키/값, 다중 키, 보강(Enrichment)
IContains
문자열
키의 문자열 값이 지정된 값을 대소문자 구분 없이 포함하는지 확인합니다. 키가 문자열이 아니면 false를 반환합니다
키/값, 다중 키, 보강(Enrichment)
DoesNotContain
문자열 또는 목록
키의 문자열 값이 지정된 값을 포함하지 않는지 확인합니다. 키가 문자열이 아니면 false를 반환합니다 또는 문자열(대소문자 구분)/정수/부동소수점/불리언의 배열이 값을 포함하지 않는지 확인합니다
키/값, 다중 키, 보강(Enrichment)
IDoesNotContain
문자열
키의 문자열 값이 지정된 값을 대소문자 구분 없이 포함하지 않는지 확인합니다. 키가 문자열이 아니면 false를 반환합니다
키/값, 다중 키, 보강(Enrichment)
IsIPAddress
문자열 또는 정수
키의 문자열 또는 정수 값이 IP 주소로 해석될 수 있는지 확인합니다. 기능적으로 ANY(IsIPv4Address, IsIPv6Address)
에서는 사용할 수 없습니다 인라인 필터 또는 콘솔의 보기/편집에서 Simple Detection 빌더 콘솔에서.
키 존재 매치, 보강(Enrichment)
IsIPv4Address
문자열 또는 정수
키의 문자열 또는 정수 값이 IPv4 주소로 해석될 수 있는지 확인합니다 에서는 사용할 수 없습니다 인라인 필터 또는 콘솔의 보기/편집에서 Simple Detection 빌더 콘솔에서.
키 존재 매치, 보강(Enrichment)
IsIPv6Address
문자열 또는 정수
키의 문자열 또는 정수 값이 IPv6 주소로 해석될 수 있는지 확인합니다 에서는 사용할 수 없습니다 인라인 필터 또는 콘솔의 보기/편집에서 Simple Detection 빌더 콘솔에서.
키 존재 매치, 보강(Enrichment)
IsIPAddressPrivate
문자열 또는 정수
키의 문자열 또는 정수 값이 사설 IP 주소로 해석될 수 있는지 확인합니다
키 존재 매치, 보강(Enrichment)
IsIPAddressPublic
문자열 또는 정수
키의 문자열 또는 정수 값이 공용 IP 주소로 해석될 수 있는지 확인합니다
키 존재 매치, 보강(Enrichment)
IsIPAddressInCIDR
문자열 또는 정수
키의 문자열 또는 정수 값을 IP 주소로 해석했을 때 CIDR 범위 내에 있는지 확인합니다
키/값, 다중 키, 보강(Enrichment)
IsIPAddressNotInCIDR
문자열 또는 정수
키의 문자열 또는 정수 값을 IP 주소로 해석했을 때 CIDR 범위 내에 있지 않은지 확인합니다
키/값, 다중 키, 보강(Enrichment)
CIDRContainsIPAddresses
문자열로 된 IP 목록
키의 문자열 값이 CIDR 범위로 해석되었을 때 지정된 IP 주소를 포함하는지 확인합니다
키/값, 다중 키, 보강(Enrichment)
CIDRDoesNotContainIPAddresses
문자열로 된 IP 목록
키의 값이 IP 주소 목록으로 해석되었을 때 지정된 CIDR 범위에 있는지 확인합니다
키/값, 다중 키, 보강(Enrichment)
IsGreaterThan
정수 또는 부동소수점
키의 값이 지정된 값보다 큰지 확인합니다
키/값, 다중 키, 보강(Enrichment)
IsGreaterThanOrEquals
정수 또는 부동소수점
키의 값이 지정된 값보다 크거나 같은지 확인합니다
키/값, 다중 키, 보강(Enrichment)
IsLessThan
정수 또는 부동소수점
키의 값이 지정된 값보다 작은지 확인합니다
키/값, 다중 키, 보강(Enrichment)
IsLessThanOrEquals
정수 또는 부동소수점
키의 값이 지정된 값보다 작거나 같은지 확인합니다
키/값, 다중 키, 보강(Enrichment)
목록 매칭 조건
다음과 함께 목록 매칭 조건을 사용하세요 Values 아래에 잘못된 항목을 가지고 있을 때 (가 아니라 값). 매치 표현식의 키 지정자 는 단일 값 또는 목록을 참조할 수 있지만, Values 아래에 잘못된 항목을 가지고 있을 때 는 목록을 참조해야 합니다.
IsIn
스칼라
목록
지정된 키의 값이 목록의 멤버인지 평가합니다
키/값, 보강(Enrichment)
IsNotIn
스칼라
목록
지정된 키의 값이 목록의 멤버가 아닌지 평가합니다
키/값, 보강(Enrichment)
리스트 컴프리헨션 조건
리스트 컴프리헨션 조건은 다음 내에서만 사용할 수 있습니다 리스트 컴프리헨션 매치 표현식.
AnyElement
목록
지정된 키의 값 목록이 매치 조건 목록의 어떤 표현식과라도 일치하는지 평가합니다 에서는 사용할 수 없습니다 인라인 필터 또는 콘솔의 보기/편집에서 Simple Detection 빌더 콘솔에서.
리스트 컴프리헨션
AllElements
목록
지정된 키의 값 목록이 매치 조건 목록의 모든 표현식과 일치하는지 평가합니다 에서는 사용할 수 없습니다 인라인 필터 또는 콘솔의 보기/편집에서 Simple Detection 빌더 콘솔에서.
리스트 컴프리헨션
OnlyOneElement
목록
지정된 키의 값 목록이 매치 조건 목록과 일치하는 요소가 단 하나만 있는지 평가합니다 에서는 사용할 수 없습니다 인라인 필터 또는 콘솔의 보기/편집에서 Simple Detection 빌더 콘솔에서.
리스트 컴프리헨션
NoElement
목록
지정된 키의 값 목록이 매치 조건 목록의 모든 표현식과 일치하지 않는지 평가합니다 에서는 사용할 수 없습니다 인라인 필터 또는 콘솔의 보기/편집에서 Simple Detection 빌더 콘솔에서.
리스트 컴프리헨션
값(들)
값(들)다음의 값 값 와 Values 아래에 잘못된 항목을 가지고 있을 때 키는 다음 네 가지 데이터 유형 중 하나를 가질 수 있습니다:
정수
부동소수점
부울
문자열
정수, 부동소수점 및 불리언은 따옴표로 묶으면 안 됩니다. 문자열은 선택적으로 따옴표로 묶을 수 있습니다.
형식이 다른 값 값들이 아래에서 어떻게 평가되는지 예시를 보세요:
마지막 업데이트
도움이 되었나요?

