다음을 통해 공유


Microsoft Sentinel 데이터 레이크에서 KQL 작업 만들기

KQL 작업은 Microsoft Sentinel 데이터 레이크의 데이터에 대한 일회성 또는 예약된 비동기 KQL 쿼리입니다. 작업은 예를 들어 조사 및 분석 시나리오에 유용합니다.

  • 인시던트 조사 및 대응을 위한 오랫동안 실행되는 일회성 쿼리
  • 충실도가 낮은 로그를 사용하여 보강 워크플로를 지원하는 데이터 집계 작업
  • 회고 분석을 위한 TI(기록 위협 인텔리전스) 일치 검사
  • 여러 테이블에서 비정상적인 패턴을 식별하는 변칙 검색 검사

KQL 작업은 쿼리가 서로 다른 데이터 세트에 조인 또는 공용 구조체를 사용하는 경우에 특히 효과적입니다.

또한 작업은 데이터 레이크 계층에서 분석 계층으로 데이터를 승격하는 데 사용됩니다. 분석 계층에서 고급 헌팅 KQL 편집기를 사용하여 데이터를 쿼리합니다. 데이터를 분석 계층으로 승격하면 다음과 같은 이점이 있습니다.

  • 분석 계층의 현재 및 기록 데이터를 결합하여 데이터에 대한 고급 분석 및 기계 학습 모델을 실행합니다.
  • 분석 계층에서 쿼리를 실행하여 쿼리 비용을 줄입니다.
  • 여러 작업 영역의 데이터를 분석 계층의 단일 작업 영역으로 결합합니다.
  • 분석 계층에서 Microsoft Entra ID, Microsoft 365 및 Microsoft Resource Graph 데이터를 결합하여 데이터 원본에서 고급 분석을 실행합니다.

비고

분석 계층의 스토리지는 데이터 레이크 계층보다 더 높은 청구 속도를 발생합니다. 비용을 줄이려면 추가로 분석해야 하는 데이터만 선택하십시오. 쿼리에서 KQL을 사용하여 필요한 열만 프로젝터하고 데이터를 필터링하여 분석 계층으로 승격된 데이터의 양을 줄입니다.

데이터를 새 테이블로 승격하거나 분석 계층의 기존 테이블에 결과를 추가할 수 있습니다. 새 테이블을 만들 때 테이블 이름에 _KQL_CL 접미사가 지정되어 KQL 작업에서 테이블을 만들었음을 나타냅니다.

필수 조건

Microsoft Sentinel 데이터 레이크에서 KQL 작업을 만들고 관리하려면 다음 필수 구성 요소가 필요합니다.

데이터 레이크에 온보딩

Microsoft Sentinel 데이터 레이크에서 KQL 작업을 만들고 관리하려면 먼저 데이터 레이크에 온보딩해야 합니다. 데이터 레이크에 온보딩하는 방법에 대한 자세한 내용은 Microsoft Sentinel 데이터 레이크에 온보딩을 참조하세요.

권한

Microsoft Entra ID 역할은 데이터 레이크의 모든 작업 영역에서 광범위한 액세스를 제공합니다. 모든 작업 영역에서 테이블을 읽고, 분석 계층에 쓰고, KQL 쿼리를 사용하여 작업을 예약하려면 지원되는 Microsoft Entra ID 역할 중 하나가 있어야 합니다. 역할 및 권한에 대한 자세한 내용은 Microsoft Sentinel 데이터 레이크 역할 및 사용 권한을 참조하세요.

분석 계층에서 새 사용자 지정 테이블을 만들려면 데이터 레이크 관리 ID에 Log Analytics 작업 영역에서 Log Analytics 기여자 역할이 할당되어야 합니다.

역할을 할당하려면 다음 단계를 수행합니다.

  1. Azure Portal에서 역할을 할당하려는 Log Analytics 작업 영역으로 이동합니다.
  2. 왼쪽 탐색 창에서 액세스 제어(IAM)를 선택합니다.
  3. 역할 할당 추가를 선택합니다.
  4. 역할 테이블에서 *Log Analytics 참가자를 선택한 다음, 다음을 선택합니다.
  5. 관리 ID를 선택한 다음 멤버 선택을 선택합니다.
  6. 귀하의 데이터 레이크 관리 ID는 msg-resources-<guid>라는 시스템에 할당된 관리 ID입니다. 관리 ID를 선택한 후, 선택을 클릭하세요.
  7. 검토 및 할당을 선택합니다.

관리 ID에 역할을 할당하는 방법에 대한 자세한 내용은 Azure Portal을 사용하여 Azure 역할 할당을 참조하세요.

작업 생성

일정 또는 일회성으로 실행할 작업을 만들 수 있습니다. 작업을 만들 때 결과의 대상 작업 영역과 테이블을 지정합니다. 결과는 새 테이블에 쓰거나 분석 계층의 기존 테이블에 추가할 수 있습니다.

  1. KQL 쿼리 편집기 또는 작업 관리 페이지에서 작업 만들기 프로세스를 시작합니다.

    1. KQL 쿼리 편집기에서 작업을 만들려면 쿼리 편집기의 오른쪽 위 모서리에 있는 작업 만들기 단추를 선택합니다. KQL 쿼리 편집기에서 작업 만들기 단추를 보여 주는 스크린샷
    2. 작업 관리 페이지에서 작업을 만들려면 Microsoft Sentinel>Data Lake 탐색>작업을 선택한 다음 , 새 KQL 작업 만들기 단추를 선택합니다.
  2. 작업 이름을 입력합니다. 작업 이름은 테넌트에 대해 고유해야 합니다. 작업 이름은 최대 256자를 포함할 수 있습니다. 작업 이름에는 #-를 사용할 수 없습니다.

  3. 작업의 컨텍스트와 용도를 제공하는 작업 설명을 입력합니다.

  4. 작업 영역 선택 드롭다운에서 대상 작업 영역을 선택합니다. 쿼리 결과를 작성하려는 분석 계층의 작업 영역입니다.

  5. 대상 테이블을 선택합니다.

    1. 새 테이블을 만들려면 새 테이블 만들기를 선택하고 테이블 이름을 입력합니다. KQL 작업으로 생성된 테이블에는 테이블 이름에 _KQL_CL이라는 접미사가 추가됩니다.

    2. 기존 테이블에 추가하려면 기존 테이블에 추가를 선택하고 드롭다운 목록을 구성하는 테이블 이름을 선택합니다. 기존 테이블에 추가할 때 쿼리 결과는 기존 테이블의 스키마와 일치해야 합니다.

  6. 다음을 선택합니다. 새 작업 세부 정보 페이지를 보여 주는 스크린샷

  7. 쿼리 준비 패널에서 쿼리를 검토하거나 작성합니다. 날짜 범위가 쿼리에 지정되지 않은 경우 시간 선택기가 작업에 필요한 시간 범위로 설정되어 있는지 확인합니다.

  8. 선택한 작업 영역 드롭다운에서 쿼리를 실행할 작업 영역을 선택합니다. 쿼리하려는 테이블이 있는 원본 작업 영역입니다. 선택한 작업 영역에 따라 쿼리에 사용할 수 있는 테이블이 결정됩니다. 선택한 작업 영역은 쿼리 편집기에서 모든 쿼리 탭에 적용됩니다. 여러 작업 영역을 union() 사용하는 경우 연산자는 기본적으로 서로 다른 작업 영역의 이름과 스키마가 같은 테이블에 적용됩니다. 연산자를 workspace() 사용하여 특정 작업 영역에서 테이블을 쿼리합니다(예: workspace("MyWorkspace").AuditLogs).

    비고

    기존 테이블에 쓰는 경우 쿼리는 대상 테이블 스키마와 일치하는 스키마를 사용하여 결과를 반환해야 합니다. 쿼리가 올바른 스키마를 사용하여 결과를 반환하지 않으면 작업이 실행될 때 실패합니다.

  9. 다음을 선택합니다.

    검토 쿼리 패널을 보여 주는 스크린샷.

    쿼리 작업 예약 페이지에서 작업을 한 번 실행할지 또는 일정에 따라 실행할지를 선택합니다. 한 번 선택하면 작업 정의가 완료되는 즉시 작업이 실행됩니다. 일정을 선택하는 경우 작업을 실행할 날짜와 시간을 지정하거나 되풀이 일정에 따라 작업을 실행할 수 있습니다.

  10. 한 번 또는 예약된 작업을 선택합니다.

    비고

    일회성 작업을 편집하면 즉시 실행이 트리거됩니다.

  11. 일정을 선택한 경우 다음 세부 정보를 입력합니다.

    1. 드롭다운에서 반복 빈도 를 선택합니다. 분, 매시간, 매일, 매주 또는 매월 선택할 수 있습니다.
    2. 선택한 빈도와 관련하여 작업을 실행할 빈도에 대해 모든 값 반복 을 설정합니다.
    3. 일정 설정에서 원본 날짜 및 시간을 입력합니다. 시작 필드의 작업 시작 시간은 작업을 만든 후 30분 이상이어야 합니다. 작업은 매 실행 드롭다운에서 선택한 빈도에 따라 이 날짜와 시간부터 실행됩니다.
    4. 작업 일정이 완료 되는 시기를 지정할 날짜 및 시간을 선택합니다. 일정을 무기한으로 계속하려면 무기한 실행하도록 작업 설정을 선택합니다.

    사용자의 로캘에 대해 작업 시작 및 시간이 설정됩니다.

  12. 다음을 선택하여 작업 세부 정보를 검토합니다.

    일정 작업 패널을 보여 주는 스크린샷.

  13. 작업 세부 정보를 검토하고 제출 을 선택하여 작업을 만듭니다. 작업이 일회성 작업인 경우 제출을 선택한 후 실행됩니다. 작업이 예약된 경우 작업 페이지의 작업 목록에 추가되고 시작 데이터 및 시간에 따라 실행됩니다. 작업 세부 정보 검토 패널을 보여 주는 스크린샷

  14. 작업이 예약되고 다음 페이지가 표시됩니다. 링크를 선택하여 작업을 볼 수 있습니다. 작업 생성 페이지를 보여 주는 스크린샷.

고려사항 및 제한사항

Microsoft Sentinel 데이터 레이크에서 작업을 만들 때 다음 제한 사항 및 모범 사례를 고려합니다.

KQL

  • 다음을 제외한 모든 KQL 연산자 및 함수가 지원됩니다.

    • adx()
    • arg()
    • externaldata()
    • ingestion_time()
  • 사용자 정의 함수는 지원되지 않습니다.

직업

  • 작업 이름은 테넌트에 대해 고유해야 합니다.
  • 작업 이름은 최대 256자까지 가능합니다.
  • 작업 이름에는 을 #-포함할 수 없습니다.
  • 작업 시작 시간은 작업을 만들거나 편집한 후 30분 이상이어야 합니다.

열 이름

다음 표준 열은 내보내기에서 지원되지 않습니다. 이러한 열은 수집 중에 대상 계층에서 덮어씁니다.

  • 테넌트아이디

  • _TimeReceived

  • 유형

  • 소스 시스템

  • _리소스아이디

  • _서브스크립션아이디

  • _ItemId

  • _BilledSize

  • _IsBillable (과금 가능 여부)

  • _WorkspaceId

  • TimeGenerated 는 2일이 지난 경우 덮어씁니다. 원래 이벤트 시간을 유지하려면 원본 타임스탬프를 별도의 열에 쓰는 것이 좋습니다.

서비스 제한은 Microsoft Sentinel 데이터 레이크 서비스 제한을 참조하세요.

비고

작업의 쿼리가 1시간 제한을 초과하면 부분 결과가 승격될 수 있습니다.

KQL 작업에 대한 서비스 매개 변수 및 제한

다음 표에서는 Microsoft Sentinel 데이터 레이크의 KQL 작업에 대한 서비스 매개 변수 및 제한을 나열합니다.

카테고리 매개 변수/제한
테넌트당 동시 작업 실행 3
작업 쿼리 실행 시간 제한 1시간
테넌트당 작업(활성화된 작업) 100
작업당 출력 테이블 수 1
쿼리 범위 여러 작업 영역
쿼리 시간 범위 최대 12년

문제 해결 팁 및 오류 메시지는 Microsoft Sentinel 데이터 레이크에 대한 KQL 쿼리 문제 해결을 참조하세요.