시나리오 예외 규칙 목록 조회

지정한 탐지 시나리오에 등록된 예외 규칙 목록을 조회합니다. 개별 예외 규칙의 상세 정보는 시나리오 예외 규칙 조회 API로 확인할 수 있습니다.

필요 권한

사용자 이상의 계정으로 이용할 수 있습니다.

HTTP 요청

GET /api/sonar/exception-rules
cURL 예시
curl -H "Authorization: Bearer <API_KEY>" \
     "https://HOSTNAME/api/sonar/exception-rules?type=stream&scenario_guid=a1b2c3d4-e5f6-7890-abcd-ef1234567890&is_expired=false"
요청 매개변수
필수타입설명비고
scenario_guidO문자열시나리오 GUID36자
typeX문자열시나리오 유형stream(실시간) 또는 batch(배치) 중 하나. 대소문자 구분 없음
offsetX32비트 정수건너뛸 갯수기본값: 0
limitX32비트 정수최대 갯수미지정 시 전체 조회
keywordsX문자열검색 키워드예외 규칙의 메모(description), 조건 트리(exprs) 값을 대상으로 대소문자 구분 없이 검색. 공백으로 여러 키워드를 지정하면 그중 하나라도 일치하는 규칙을 모두 반환(OR 조건)
is_expiredX불리언만료 여부true 지정 시 만료된 규칙만, false 지정 시 만료되지 않은 규칙만 조회. 미지정 시 전체 조회
guidsX문자열 목록예외 규칙 GUID 목록쉼표(,)로 구분된 GUID 목록. 지정한 GUID로만 결과를 제한

정상 응답

{
  "total_count": 1,
  "rules": [
    {
      "guid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "type": "STREAM",
      "description": "사내 관리자 IP 제외",
      "exprs": {
        "field": "src_ip",
        "type": "IP",
        "operator": "EQ",
        "value": "203.0.113.10"
      },
      "valid_from": "2026-06-01 00:00:00+0900",
      "valid_until": "2026-12-31 23:59:59+0900",
      "created_at": "2026-06-18 10:00:00+0900",
      "user_guid": "66666666-7777-8888-9999-000000000000",
      "user_name": "admin",
      "scenario_guid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "scenario_name": "웹 취약점 스캔"
    }
  ]
}
  • total_count (32비트 정수): 검색 조건과 일치하는 전체 예외 규칙 개수
  • rules (배열): 검색 조건과 일치하는 예외 규칙 목록
    • guid (문자열): 예외 규칙 GUID
    • type (문자열): 시나리오 유형(STREAM 또는 BATCH)
    • description (문자열, 선택적): 메모
    • exprs (맵, 선택적): 조건 트리. 리프 노드(단일 조건) 또는 그룹 노드(조건 그룹) 형태이며, 정확한 구조는 시나리오 예외 규칙 생성 API를 참고하세요
    • valid_from (문자열): 유효 시작 일자(yyyy-MM-dd HH:mm:ssZ 형식)
    • valid_until (문자열): 유효 종료 일자(yyyy-MM-dd HH:mm:ssZ 형식)
    • created_at (문자열): 생성 일시(yyyy-MM-dd HH:mm:ssZ 형식)
    • user_guid (문자열): 생성한 계정의 GUID
    • user_name (문자열): 생성한 계정의 이름
    • scenario_guid (문자열): 대상 시나리오 GUID
    • scenario_name (문자열): 대상 시나리오 이름

오류 응답

scenario_guid가 누락된 경우

HTTP 상태 코드 400 응답

{
  "error_code": "null-argument",
  "error_msg": "scenario_guid should be not null"
}
scenario_guid, guids가 GUID 형식이 아닌 경우

HTTP 상태 코드 400 응답

{
  "error_code": "invalid-param-type",
  "error_msg": "scenario_guid should be guid type."
}
type 값이 stream, batch가 아닌 경우

HTTP 상태 코드 400 응답

{
  "error_code": "invalid-argument",
  "error_msg": "No enum constant com.logpresso.sonar.api.exceptionrule.ExceptionRuleType.FOO"
}
offset, limit 값이 정수가 아닌 경우

HTTP 상태 코드 400 응답

{
  "error_code": "invalid-argument",
  "error_msg": "'offset' parameter should be int type"
}
권한이 없는 경우

HTTP 상태 코드 500 응답

{
  "error_code": "illegal-state",
  "error_msg": "no-permission"
}