focs-malicious-ip-batch
입력 행마다 지정한 필드의 IP가 등록된 유해 IP인지 일괄 조회하여 결과를 행에 보강합니다.
문법
... | focs-malicious-ip-batch profile=STRING field=STRING
옵션
- profile=STRING
- 필수 옵션. 벨로크 FOCS 접속 프로파일. 멀티 프로파일은 허용되지 않으며 단일 프로파일만 지정합니다.
- field=STRING
- 필수 옵션. 입력 행에서 IP 값을 읽어올 필드명. 예:
src_ip
입력 필드
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
(field 옵션 값) | IP 주소 / 문자열 | Y | field 옵션으로 지정한, IP가 담긴 입력 필드. 예: src_ip |
출력 필드
입력 행에 아래 필드가 추가됩니다.
| 필드 | 타입 | 이름 | 설명 |
|---|---|---|---|
| is_malicious | 불리언 | 유해 IP 여부 | 등록된 유해 IP인지 여부 |
| block_ip_seq | 정수 | 유해 IP 고유번호 | 삭제 API 호출 시 필요한 식별값 |
| block_ip_nm | 문자열 | 유해 IP 이름 | 등록 시 부여한 이름 |
| is_applied | 불리언 | 정책반영상태 | 정책 반영 여부 (Y → true) |
| created | 날짜 | 등록일 | 등록 일자 |
| creator_id | 문자열 | 등록자 ID | 등록 사용자 ID |
| dev_seqs | 목록 | 적용 장비 목록 | 적용된 장비 dev_seq 목록 |
오류 코드
파싱 오류
| 오류 메시지 | 원인 | 해결 |
|---|---|---|
벨로크 FOCS 프로파일 이름을 입력하세요. | profile 옵션 누락·무효 | 단일 프로파일 이름을 지정 |
멀티 프로파일은 허용되지 않습니다. | profile에 복수 프로파일 지정 | 프로파일을 하나만 지정 |
field 옵션을 지정하세요. | field 옵션 누락 | field 옵션을 지정 |
런타임 오류
행 단위 오류는 예외를 던지지 않고 해당 행의 _error 필드에 메시지를 저장한 뒤 그대로 흘려보냅니다.
_error 값 | 원인 | 해결 |
|---|---|---|
{field} field is null or empty | 지정한 필드 값이 비어 있음 | 입력 데이터·필드명 확인 |
Invalid ip | 필드 값이 유효한 IP가 아님 | IP 형식 정규화 후 재실행 |
설명
각 입력 행의 field 값(IP)으로 운영시스템의 POST /api/public/malicious-ip/search API를 호출하여 유해 IP 등록 정보를 행에 보강합니다. 매칭되는 등록 정보가 있으면 is_malicious=true와 함께 등록 상세 필드를 추가하고, 없으면 is_malicious=false만 추가합니다.
배치 명령어는 단일 프로파일만 허용하며, focs-malicious-ip와 달리 행별 오류 시 쿼리를 중단하지 않고 _error 필드에 사유를 기록해 파이프라인을 계속 진행합니다. 입력 행이 많을수록 API 호출 횟수가 비례해 증가하므로 사전 필터링을 권장합니다.
사용 예
예시: 방화벽 로그의 출발지 IP 유해 여부 일괄 판정
상황: 방화벽 로그에서 출발지 IP가 등록된 유해 IP인지 한 번에 확인합니다.
table firewall_log
| focs-malicious-ip-batch profile=bellock_focs field=src_ip
| search is_malicious == true
예상 결과:
| src_ip | is_malicious | block_ip_nm | block_ip_seq | is_applied |
|---|---|---|---|---|
| 192.0.2.5 | true | 차단_테스트 | 1024 | true |
결과 해석: 출발지 IP 192.0.2.5가 유해 IP로 등록되어 있어 즉시 대응 대상입니다. block_ip_seq를 삭제 작업의 식별값으로 활용할 수 있습니다.