변환
수집 시 데이터 구조를 변경
개요
변환은 Panther로 수집될 때 데이터의 형태를 수정하기 위해 사용자 지정 로그 소스 스키마에서 사용할 수 있는 함수입니다. 그러면 데이터는 새 형식으로 저장됩니다.
변환은 저장된 데이터를 디택션 및 쿼리 로직의 요구사항에 맞추는 데 도움이 되며, 즉석 데이터 조작의 필요성을 없애고 디택션 작성과 검색을 더 빠르게 합니다.
다음 변환을 사용할 수 있습니다:
다음을 사용하여 수집 시 데이터를 더 추가로 조작할 수 있습니다. Script Log Parser.
변환 실행 순서
변환이 수행되는 특정 순서가 있으며, 이는 변환이 예측 가능한 방식으로 하나씩 적용되도록 보장합니다. 실행 순서는 다음과 같습니다 위의 개요에서 변환 목록에 제공된 순서.
정의된 순서를 따라 데이터를 정확하게 변환하세요. 순서의 각 변환은 이전 변환 이후에 남겨진 상태의 데이터를 대상으로 동작합니다. 이 순서를 알면 일관성을 유지하고 예상치 못한 결과를 방지할 수 있습니다.
변환 결합
개별 변환은 더 복잡한 데이터 변환을 달성하기 위해 쌍이나 시퀀스로 결합할 수 있습니다. 이를 통해 더 큰 유연성과 사용자 지정이 가능해져 특정 데이터 요구사항을 충족하고 효율적인 디택션 생성 및 검색 작업을 지원합니다.
개인 식별 번호(PIN)를 포함하는 필드가 있다고 가정해 보겠습니다. 보안상의 이유로, PIN을 가리기 위해 마스크를 적용하는 동시에 필드 이름을 덜 드러나는 이름으로 바꾸고 싶습니다.
이를 달성하려면 rename 변환을 사용하여 필드 이름을 더 추상적인 이름으로 변경할 수 있습니다. 예를 들어, 필드 이름을 다음과 같이 바꿀 수 있습니다 userId.
다음으로, mask 변환을 userId 필드에 적용하여 PIN의 숫자를 미리 정의된 개수의 별표로 바꿉니다. 이렇게 하면 PIN이 숨겨져 데이터 프라이버시가 보장됩니다.
다음과 같이 rename 및 mask 지시어를 모두 사용하여 필드 스키마를 정의할 수 있습니다:
다음과 같은 페이로드를 변환할 수 있습니다:
다음과 같이:
copy
copy다음 copy 변환은 중첩된 필드의 값을 다른 최상위 필드로 복사합니다. 이는 데이터의 JSON 구조를 평탄화하고 싶을 때 유용할 수 있습니다. 원한다면 새로 정의한 필드를 나중에 indicator.
으로 표시할 수 있습니다 copy 다음과 같은
다음과 같은 페이로드를 변환하게 됩니다:
다음과 같이:
rename
rename다음 rename 변환은 필드의 이름을 변경합니다. 이는 데이터 소스 전반에서 필드 이름을 표준화하거나, 데이터 구조의 명확성을 높이거나, 잘못된 문자를 포함한 필드 이름이나 예약 키워드를 조정하고 싶을 때 유용할 수 있습니다.
으로 표시할 수 있습니다 rename 다음과 같은
다음과 같은 페이로드를 변환하게 됩니다:
다음과 같이:
concat
concat다음 concat 변환을 사용하면 여러 필드의 값을 새 필드의 값으로 연결할 수 있습니다. 생성된 결합 필드는 예를 들어 보강(enrichment)을 위한 키로 사용할 수 있습니다.
필드의 type 이 timestamp 인 필드는 연결 작업에 사용할 수 없습니다.
를 사용하려면 concat결과를 저장할 string 필드를 선언하세요. concat안에서 경로를 정의하고, 필요에 따라구분자 를 지정합니다.안에서 경로를 정의하고, 필요에 따라기존 스키마 필드 중 결합할 항목을 지정하려면 절대 경로를 사용해야 합니다. 이 필드들의 순서가 연결 순서를 결정합니다. 만약 를 지정합니다. 가 정의되지 않으면 기본 구분자는 빈 문자열입니다 ("").
으로 표시할 수 있습니다 concat 다음과 같은
다음과 같은 페이로드를 변환하게 됩니다:
다음과 같이:
split
split다음 split 변환을 사용하면 구분자를 기준으로 문자열 필드를 분할하여 특정 값을 추출할 수 있습니다. 결과로 생성된 분할 필드는 개별 스키마 필드로 취급할 수 있어, 이를 indicator로 지정할 수 있습니다. split 변환은 또한 데이터를 표준화된 필드로 정규화하는 데 도움이 되어, 비정형 데이터 형식을 더 쉽게 다룰 수 있게 합니다.
유형이 string 인 필드만 다른 필드로 분할할 수 있습니다(즉, split:from: 의 값은 type: string).
를 사용하려면 split을 포함하는 필드여야 합니다). 결과를 저장하려면 object, array, JSON을 제외한 임의의 원시 타입 필드를 선언하세요. 다음 필수 필드를 split 지시어 안에 포함하세요:
from: 분할할 필드의 절대 경로를 제공합니다.를 지정합니다.: 분할에 사용할 문자를 제공합니다.index: 분할로 생성된 결과 배열에서 값의 위치를 제공합니다.
으로 표시할 수 있습니다 split 다음과 같은
다음과 같은 페이로드를 변환하게 됩니다:
다음과 같이:
또한 split 를 사용하여 배열 요소를 분할할 수도 있습니다. 예를 들어, 다음 스키마를 사용하면:
다음과 같은 페이로드를 변환하게 됩니다:
다음과 같이:
mask
mask다음 mask 변환을 사용하면 로그에서 민감한 정보를 숨길 수 있습니다. 마스킹은 특정 데이터를 기밀로 유지해야 할 때 유용합니다.
마스킹 기술에는 두 가지가 있습니다:
Obfuscation (해싱이라고도 함): 이 기술은 선택적 salt 값을 사용하여 데이터를 해시합니다. 이 기술을 사용하면 값의 참조 무결성이 유지됩니다.
Redaction: 이 기술은 민감한 값을
REDACTED또는 사용자가 제공한 다른 문자열로 바꿉니다. 이 기술을 사용하면 값의 참조 무결성이 손실됩니다.
특정 필드를 마스킹하면 나중에 Panther의 검색 도구 를 사용하여 원래 값을 조회할 수 없지만, 해시된 값은 검색할 수 있습니다.
Obfuscation (hashing)
들어오는 데이터를 해시하면 향후 사용 가능성을 유지하면서 보안을 강화할 수 있습니다. 해싱이 제공하는 보호를 강화하려면 salt를 포함할 수 있습니다.
obfuscation을 사용하려면 스키마의 대상 필드에 mask을 포함하세요. mask아래에 type, 그리고 필요에 따라 salt.
를 포함하세요. type 의 값은 사용하려는 해시 알고리즘입니다. 지원되는 값에는 다음이 포함됩니다:
sha256md5sha1sha512
선택적 salt 키의 값은 원하는 문자열입니다. 이 값은 해시되기 전에 필드 값에 추가됩니다.
를 사용할 때 mask대상 필드의 type 값은 항상 string로 설정되어야 합니다. 실제 입력 데이터는 어떤 타입이든 될 수 있지만, 값이 마스킹된 후 데이터 레이크에 문자열로 저장되기 때문에 type: string 가 필요합니다.
으로 표시할 수 있습니다 mask 다음과 같은 지시어
다음과 같은 페이로드를 변환하게 됩니다:
다음과 같이:
Redaction
들어오는 데이터를 레닥션하면 미리 정의된 값으로 바꾸게 됩니다. 이 기술은 민감한 정보에 접근할 수 없도록 하거나 복구할 수 없도록 보장하고 싶을 때 유용합니다.
redaction을 사용하려면 스키마의 대상 필드에 mask을 포함하세요. mask아래에 type: redact, 그리고 필요에 따라 to.
를 포함하세요. to 선택적 to 키는 실제 이벤트 값을 대체할 문자열 값을 사용합니다. 만약 REDACTED가 포함되지 않으면 기본값인
를 사용할 때 mask대상 필드의 type 값은 항상 string로 설정되어야 합니다. 실제 입력 데이터는 어떤 타입이든 될 수 있지만, 값이 마스킹된 후 데이터 레이크에 문자열로 저장되기 때문에 type: string 가 필요합니다.
으로 표시할 수 있습니다 mask 다음과 같은 지시어
다음과 같은 페이로드를 변환하게 됩니다:
다음과 같이:
isEmbeddedJSON
isEmbeddedJSON때때로 JSON 값은 문자열 안에 포함된 형태로 전달됩니다.
문자열 내부의 이스케이프된 JSON을 Panther가 파싱하도록 하려면 isEmbeddedJSON: true 플래그를 사용하세요. 이 플래그는 유형이 object, array 및 json.
으로 표시할 수 있습니다 isEmbeddedJSON 다음과 같은 지시어
다음과 같은 페이로드를 변환하게 됩니다:
다음과 같이:
마지막 업데이트
도움이 되었나요?

