PantherFlow 문장들
PantherFlow 쿼리 문장에는 두 가지 유형이 있습니다
개요
PantherFlow 쿼리는 하나 이상의 문(statement)으로 구성됩니다. 문에는 두 가지 유형이 있습니다: 테이블 형식 식(tabular expression) 문 와 let 문.
같은 쿼리 내의 여러 문은 세미콜론(으로 구분되어야 합니다.;). 마지막 문에는 세미콜론이 필요하지 않습니다.
테이블 형식 식 문
테이블 형식 식 문은 일반적으로 "파이프 쿼리(piped query)"라고 할 때 떠오르는 형태입니다—데이터 소스와 일반적으로 하나 이상의 연산자로 구성되며 파이프 문자(|)로 구분됩니다.|각 연산자는 데이터를 입력받아 연산을 수행한 다음 변환된 데이터를 다음 연산자에 전달합니다.
panther_logs.public.aws_cloudtrail
| where accountId != '1234567'
| summarize Count=agg.count() by eventName
| extend tooHigh = Count > 100
| where tooHigh
| sort Count
| limit 10데이터 소스
각 PantherFlow 쿼리는 데이터 소스를 지정해야 합니다. 다음 중 어느 것이든 데이터 소스로 사용할 수 있습니다:
테이블 형식 식 문
let 문
let 문A let 문은 이후 문에서 사용할 수 있는 변수에 값을 할당합니다. let 문은 두 가지 유형의 변수를 정의할 수 있습니다:
테이블 변수: 테이블 형식 식을 나타내며 이후에 테이블처럼 사용할 수 있습니다
스칼라 변수: 스칼라 값 또는 스칼라 값으로 평가되는 식을 나타냅니다
변수는 참조되기 전에 let 문에서 정의되어야 합니다. 모든 let 문은 다음에 다른 문이 오는 경우 세미콜론(으로 끝나야 합니다.;).
테이블 변수
테이블 변수는 let를 사용하여 테이블 형식 식 문을 변수에 할당할 때 생성됩니다. 그런 다음 테이블 형식 식 문을 참조하는 것처럼 참조할 수 있습니다(즉, 가능한 데이터 소스 중 하나입니다)).
테이블 변수에 할당된 테이블 형식 식 문은 해당 변수가 이후 문에서 참조되거나 "호출"될 때까지 실행되지 않습니다.
쿼리를 테이블 변수로 이름 짓는 것이 유용한 경우:
같은 쿼리를 여러 번 작성하고 싶지 않을 때
다른 사람이 쿼리가 무엇을 하는지 이해하기 쉽게 만들고 싶을 때
경보 심각도
다음 예시는 테이블 변수 elbOK을(를) 선언합니다. elbOK 아래에서, let 문에 정의된 그대로 정확히 실행됩니다:
여기서는 추가 연산자가 테이블 형식 식 문 내의 elbOK 에 적용됩니다:
테이블 변수는 데이터 세트를 참조하는 곳이면 어디에서든 사용할 수 있습니다. 예를 들어 union 연산자:
스칼라 변수
스칼라 변수는 비(非)테이블 형식 식을 변수에 할당할 때 생성됩니다. 스칼라 변수는 이후 쿼리 전반에서 참조될 수 있습니다.
스칼라 변수를 선언하면 다음과 같은 경우에 유용할 수 있습니다:
같은 값을 여러 번 사용할 때 쿼리를 더 읽기 쉽고 유지보수 가능하게 만들기
그렇지 않으면 오해될 수 있는 값을 이름으로 지정하기
다음의 스칼라 변수 제한 사항을 참고하세요.
경보 심각도
다음 예시는 스칼라 변수 threshold를 선언한 후, 그것을 where 절에서 참조합니다:
스칼라 변수의 값은 function을(를) 사용할 수 있으며, 스칼라 변수는 함수의 매개변수로 사용될 수 있습니다:
스칼라 변수와 함께 산술 식을 사용할 수도 있습니다:
스칼라 변수와 테이블 변수를 결합하여 강력한 쿼리를 만들 수 있습니다:
변수 이름 규칙
변수 이름은 다음 규칙을 준수해야 합니다:
첫 문자는 문자, 밑줄(_), 또는 달러 기호($)여야 합니다.
_첫 문자가 아닌 이후의 문자들은 문자, 숫자 또는 밑줄이어야 합니다.$).기존 테이블 이름은 변수 이름으로 사용할 수 없습니다.
예를 들어 이미
라는 이름의 테이블이 존재한다면
aws_cloudtrail를 변수 이름으로 사용할 수 없습니다.aws_cloudtrail한 번 변수 이름이 사용되면 같은 PantherFlow 검색 내에서 다시 사용할 수 없습니다. 즉, 변수를 재정의할 수 없습니다.
유효한 변수 이름
경보 심각도
123myVar
(숫자로 시작) my_var
my-var
(잘못된 문자) _my_var
my.var
$my_var _my_var
my_var$
만 첫 문자로 허용됨) ($ only allowed as first character)
Last updated
Was this helpful?

