변환 프로세서
변환 프로세서는 필드를 추가, 복사, 이동 또는 제거하여 로그 이벤트의 구조를 수정합니다.
add_entries 프로세서
로그 이벤트에 정적 키-값 페어를 추가합니다. 최대 1개의 add_entries 프로세서를 파이프라인에 추가할 수 있습니다.
구성
다음과 같은 파라미터를 사용하여 add_entries 프로세서를 구성합니다.
processor: - add_entries: entries: - key: "environment" value: "production" overwrite_if_key_exists: false
파라미터
entries(필수)-
각 로그 이벤트에 추가할 키-값 페어 배열입니다.
entries[].key(필수)-
로그 이벤트에 추가할 필드 이름입니다. 점 표기법을 사용하여 중첩 필드를 지원합니다.
entries[].value(필수)-
키에 할당할 정적 값입니다.
entries[].overwrite_if_key_exists(선택 사항)-
키가 이미 있는 경우의 동작을 결정하는 부울 플래그입니다. 기본값은 false입니다.
when(선택 사항)-
프로세서 수준 조건부 표현식. 지정된 경우 표현식이 false로 평가되면 전체 프로세서를 건너뜁니다. 최대 길이는 256자입니다. 조건부 처리를 위한 표현식 구문을(를) 참조하세요.
entries[].when(선택 사항)-
항목 수준 조건부 표현식. 지정된 경우 표현식이 false로 평가되면 이 항목만 건너뜁니다. 최대 길이는 256자입니다. 조건부 처리를 위한 표현식 구문을(를) 참조하세요.
entries[].when_else(선택 사항)-
동일한 프로세서의 다른
when조건이 일치하지 않는 경우에만 실행되는 폴백 항목. 표현식 값은 고려할when조건을 식별합니다. 최대 길이는 256자입니다. 조건부 처리를 위한 표현식 구문을(를) 참조하세요.
copy_values 프로세서
한 필드에서 다른 필드로 값을 복사합니다. 최대 1개의 copy_values 프로세서를 파이프라인에 추가할 수 있습니다.
구성
다음과 같은 파라미터를 사용하여 copy_values 프로세서를 구성합니다.
processor: - copy_values: entries: - from_key: "user_id" to_key: "backup_user" overwrite_if_to_key_exists: false
파라미터
entries(필수)-
각 로그 이벤트에 대해 수행할 복사 작업의 배열입니다.
entries[].from_key(필수)-
값을 복사해 올 필드 이름입니다. 중첩 필드에 점 표기법을 사용합니다.
entries[].to_key(필수)-
값을 복사할 필드 이름입니다. 점 표기법을 사용할 경우 중첩 구조가 생성됩니다.
entries[].overwrite_if_to_key_exists(선택 사항)-
대상 필드가 이미 있는 경우의 동작을 제어하는 부울 플래그입니다. 기본값은 false입니다.
when(선택 사항)-
프로세서 수준 조건부 표현식. 지정된 경우 표현식이 false로 평가되면 전체 프로세서를 건너뜁니다. 최대 길이는 256자입니다. 조건부 처리를 위한 표현식 구문을(를) 참조하세요.
entries[].when(선택 사항)-
항목 수준 조건부 표현식. 지정된 경우 표현식이 false로 평가되면 이 항목만 건너뜁니다. 최대 길이는 256자입니다. 조건부 처리를 위한 표현식 구문을(를) 참조하세요.
entries[].when_else(선택 사항)-
동일한 프로세서의 다른
when조건이 일치하지 않는 경우에만 실행되는 폴백 항목. 표현식 값은 고려할when조건을 식별합니다. 최대 길이는 256자입니다. 조건부 처리를 위한 표현식 구문을(를) 참조하세요.
delete_entries 프로세서
로그 이벤트에서 지정된 필드를 제거합니다.
구성
다음과 같은 파라미터를 사용하여 delete_entries 프로세서를 구성합니다.
processor: - delete_entries: with_keys: ["temp_field", "debug_info"]
파라미터
with_keys(필수)-
각 로그 이벤트에서 제거할 필드 이름의 배열입니다. 점 표기법을 사용하여 중첩 필드 삭제를 지원합니다.
when(선택 사항)-
이 프로세서의 실행 여부를 결정하는 조건식. 최대 길이는 256자입니다. 조건부 처리를 위한 표현식 구문을(를) 참조하세요.
move_keys 프로세서
필드를 한 위치에서 다른 위치로 이동합니다.
구성
다음과 같은 파라미터를 사용하여 move_keys 프로세서를 구성합니다.
processor: - move_keys: entries: - from_key: "old_field" to_key: "new_field" overwrite_if_to_key_exists: true
파라미터
entries(필수)-
이동 작업의 배열입니다. 최대 항목 수는 5개입니다.
entries[].from_key(필수)-
소스 필드 이름입니다. 최대 128자입니다.
entries[].to_key(필수)-
대상 필드 이름입니다. 최대 128자입니다.
entries[].overwrite_if_to_key_exists(선택 사항)-
기존 대상 필드를 덮어쓸지 설정합니다.
when(선택 사항)-
프로세서 수준 조건부 표현식. 지정된 경우 표현식이 false로 평가되면 전체 프로세서를 건너뜁니다. 최대 길이는 256자입니다. 조건부 처리를 위한 표현식 구문을(를) 참조하세요.
entries[].when(선택 사항)-
항목 수준 조건부 표현식. 지정된 경우 표현식이 false로 평가되면 이 항목만 건너뜁니다. 최대 길이는 256자입니다. 조건부 처리를 위한 표현식 구문을(를) 참조하세요.
entries[].when_else(선택 사항)-
동일한 프로세서의 다른
when조건이 일치하지 않는 경우에만 실행되는 폴백 항목. 표현식 값은 고려할when조건을 식별합니다. 최대 길이는 256자입니다. 조건부 처리를 위한 표현식 구문을(를) 참조하세요.
flatten 프로세서
중첩된 객체 구조를 평면화합니다.
구성
다음과 같은 파라미터를 사용하여 flatten 프로세서를 구성합니다.
processor: - flatten: source: "metadata" target: "flattened" remove_processed_fields: true exclude_keys: ["sensitive_data"]
파라미터
source(필수)-
평면화할 중첩된 객체가 포함된 필드입니다.
target(필수)-
평면화된 키의 대상 필드 접두사입니다.
remove_processed_fields(선택 사항)-
평면화 후 원본 중첩 필드를 제거할지 설정합니다.
exclude_keys(선택 사항)-
평면화에서 제외할 키 배열입니다. 최대 키 수는 20개이며, 각각 최대 128자입니다.
when(선택 사항)-
이 프로세서의 실행 여부를 결정하는 조건식. 최대 길이는 256자입니다. 조건부 처리를 위한 표현식 구문을(를) 참조하세요.
조회 프로세서
CloudWatch Logs 조회 테이블의 데이터로 로그 이벤트를 보강합니다. 프로세서는 로그 이벤트의 필드를 조회 테이블의 필드와 일치시키고 로그 이벤트에 지정된 필드를 추가합니다. 사용자 ID를 사용자 세부 정보에 매핑하거나, 제품 코드를 제품 정보에 매핑하거나, 오류 코드를 오류 설명에 매핑하는 등의 데이터 보강 시나리오에 이 프로세서를 사용합니다. 최대 1개의 lookup 프로세서를 파이프라인에 추가할 수 있습니다.
참고
파이프라인에서 조회 테이블을 사용하는 경우 테이블에 대한 logs:GetLookupTable 권한을 실행 역할에 제공해야 합니다. 자세한 내용은 CloudWatch 파이프라인 IAM 정책 및 권한 섹션을 참조하세요.
구성
다음과 같은 파라미터를 사용하여 조회 프로세서를 구성합니다.
processor: - lookup: lookup_table: "arn:aws:logs:us-east-1:123456789012:lookup-table:my_lookup_table" match_keys: - log_key: "src_ip" lookup_key: "ip_address" entries: - source: "hostname" target: "src_hostname" overwrite_if_exists: true
파라미터
lookup_table(필수)-
보강에 사용할 CloudWatch Logs 조회 테이블의 ARN. 최대 길이는 2048자입니다.
match_keys(필수)-
로그 이벤트 필드를 조회 테이블 필드와 일치시키는 방법을 정의하는 키 페어 배열. 최소 1개, 최대 5개의 일치 키. 여러 일치 키가 지정되는 경우 결과(AND 로직)를 생성하려면 조회 테이블 행이 모든 키와 일치해야 합니다.
match_keys[].log_key(필수)-
일치시킬 로그 이벤트의 필드 이름. 최대 128자입니다.
match_keys[].lookup_key(필수)-
일치시킬 조회 테이블의 열 이름. 최대 128자입니다.
entries(필수)-
일치하는 조회 테이블 행에서 로그 이벤트에 추가할 필드 배열. 최소 1개, 최대 10개의 항목.
entries[].source(필수)-
값을 검색할 조회 테이블의 열 이름. 최대 128자입니다.
entries[].target(선택 사항)-
로그 이벤트에 추가할 필드 이름입니다. 지정하지 않으면
source열 이름이 필드 이름으로 사용됩니다. 최대 128자입니다. entries[].overwrite_if_exists(선택 사항)-
로그 이벤트에 대상 필드가 이미 있는 경우의 동작을 결정하는 부울 플래그. 기본값은 false입니다.
when(선택 사항)-
이 프로세서의 실행 여부를 결정하는 조건식. 최대 길이는 256자입니다. 조건부 처리를 위한 표현식 구문을(를) 참조하세요.
예제
다음 행이 있는 network_assets 조회 테이블을 생각해 보세요.
| ip_address | hostname | owner | location |
|---|---|---|---|
| 10.0.1.12 | web-server-01 | team-alpha | us-east-1 |
| 10.0.2.45 | db-server-03 | team-beta | us-west-2 |
| 10.0.3.78 | cache-node-07 | team-alpha | eu-west-1 |
다음 로그 이벤트가 주어집니다.
{ "timestamp": "2026-05-04T12:00:00Z", "src_ip": "10.0.2.45", "action": "connection_opened", "bytes": 2048 }
다음 프로세서 구성을 사용한다고 가정해 보겠습니다.
processor: - lookup: lookup_table: "arn:aws:logs:us-east-1:123456789012:lookup-table:network_assets" match_keys: - log_key: "src_ip" lookup_key: "ip_address" entries: - source: "hostname" target: "src_hostname" - source: "owner" - source: "location" target: "src_region" overwrite_if_exists: false
프로세서는 다음과 같은 보강된 로그 이벤트를 생성합니다.
{ "timestamp": "2026-05-04T12:00:00Z", "src_ip": "10.0.2.45", "action": "connection_opened", "bytes": 2048, "src_hostname": "db-server-03", "owner": "team-beta", "src_region": "us-west-2" }
IAM 권한
파이프라인이 조회 프로세서를 사용하는 경우 파이프라인의 실행 역할에 참조된 테이블에 대한 logs:GetLookupTable 권한이 포함되어야 합니다. 다음 예제 정책 문에서는 이 권한을 부여합니다.
{ "Effect": "Allow", "Action": "logs:GetLookupTable", "Resource": "arn:aws:logs:<region>:<account-id>:lookup-table:<table-name>" }