Стадия жизненного цикла модуля: Experimental
У модуля есть требования для установки
Deckhouse Kubernetes Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.
ClusterSecurityEventConfig
Scope: Cluster
Version: v1alpha1
-
объектspecОпределяет, какие источники включены и в какие назначения их нужно отправлять.
-
строкаspec.defaultSeverityThreshold
Обязательный параметр
Минимальная критичность для отправки (включительно).Допустимые значения:
Low,Medium,High,Critical -
массив строкspec.destinations
Обязательный параметр
Список имён ClusterSecurityEventDestination. -
массив строкspec.enabledSources
Если задано — включены только эти источники. Если не задано — включены все источники. Ожидаемый формат:
- clusterSecurityEventShipper/
/<source> - podSecurityEventShipper/<namespace>/
/<source>
-
строкаspec.enabledSources.Элемент массива
Шаблон:
^(clusterSecurityEventShipper/[^/]+/[^/]+|podSecurityEventShipper/[^/]+/[^/]+/[^/]+)$
- clusterSecurityEventShipper/
-
массив строкspec.enabledSourcesMasks
Если задано — включены только источники, подходящие под маски (glob). Если не задано — включены все источники. Маски используют ‘*’ для сопоставления любой подстроки (включая ‘/’). Нельзя одновременно задавать enabledSources и enabledSourcesMasks. Ожидаемый формат:
- clusterSecurityEventShipper/
/<source> - podSecurityEventShipper/<namespace>/
/<source> Примеры: - podSecurityEventShipper/*
- clusterSecurityEventShipper/kube-audit/*
-
строкаspec.enabledSourcesMasks.Элемент массива
Шаблон:
^(clusterSecurityEventShipper/.+|podSecurityEventShipper/.+)$
- clusterSecurityEventShipper/
-
-
объектstatusCurrent status of this resource.
-
массив объектовstatus.conditionsRepresents the latest available observations of an object’s state.
-
строкаstatus.conditions.lastTransitionTime
-
строкаstatus.conditions.message
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
-
строкаstatus.conditions.reason
Длина:
1..1024 -
строкаstatus.conditions.status
Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.type
Максимальная длина:
316
-
-
целочисленныйstatus.observedGenerationThe generation observed by the controller.
-
ClusterSecurityEventDestination
Scope: Cluster
Version: v1alpha1
-
объектspecОписывает, куда отправлять события безопасности. Поля спроектированы так, чтобы транслироваться в deckhouse.io/log-shipper ClusterLogDestination.
-
объектspec.console
-
строкаspec.console.target
По умолчанию:
StdoutДопустимые значения:
Stdout,Stderr
-
-
объектspec.elasticsearch
-
объектspec.elasticsearch.auth
-
строкаspec.elasticsearch.auth.password
-
строкаspec.elasticsearch.auth.strategy
По умолчанию:
NoneДопустимые значения:
None,Bearer,Basic -
строкаspec.elasticsearch.auth.token
-
строкаspec.elasticsearch.auth.username
-
-
строкаspec.elasticsearch.endpoint
Обязательный параметр
-
строкаspec.elasticsearch.index
-
объектspec.elasticsearch.tls
-
строкаspec.elasticsearch.tls.caBase64-строка PEM (цепочка CA) для проверки сертификата сервера назначения.
-
булевыйspec.elasticsearch.tls.verifyCertificate
По умолчанию:
true -
булевыйspec.elasticsearch.tls.verifyHostname
По умолчанию:
true
-
-
-
объектspec.file
-
строкаspec.file.path
Обязательный параметр
-
-
объектspec.kafka
-
массив строкspec.kafka.brokers
Обязательный параметр
-
объектspec.kafka.sasl
-
строкаspec.kafka.sasl.mechanism
Допустимые значения:
Plain,SCRAM-SHA-256,SCRAM-SHA-512 -
строкаspec.kafka.sasl.password
-
строкаspec.kafka.sasl.username
-
-
объектspec.kafka.tls
-
строкаspec.kafka.tls.caBase64-строка PEM (цепочка CA) для проверки сертификата сервера назначения.
-
булевыйspec.kafka.tls.verifyCertificate
По умолчанию:
true -
булевыйspec.kafka.tls.verifyHostname
По умолчанию:
true
-
-
строкаspec.kafka.topic
Обязательный параметр
-
-
объектspec.loki
-
объектspec.loki.auth
-
строкаspec.loki.auth.password
-
строкаspec.loki.auth.strategy
По умолчанию:
NoneДопустимые значения:
None,Bearer,Basic -
строкаspec.loki.auth.token
-
строкаspec.loki.auth.username
-
-
строкаspec.loki.endpoint
Обязательный параметр
-
объектspec.loki.tls
-
строкаspec.loki.tls.caBase64-строка PEM (цепочка CA) для проверки сертификата сервера назначения.
-
булевыйspec.loki.tls.verifyCertificate
По умолчанию:
true -
булевыйspec.loki.tls.verifyHostname
По умолчанию:
true
-
-
-
объектspec.splunkHEC
-
строкаspec.splunkHEC.endpoint
Обязательный параметр
-
объектspec.splunkHEC.tls
-
строкаspec.splunkHEC.tls.caBase64-строка PEM (цепочка CA) для проверки сертификата сервера назначения.
-
булевыйspec.splunkHEC.tls.verifyCertificate
По умолчанию:
true -
булевыйspec.splunkHEC.tls.verifyHostname
По умолчанию:
true
-
-
строкаspec.splunkHEC.token
Обязательный параметр
-
-
строкаspec.type
Обязательный параметр
Допустимые значения:
Loki,Elasticsearch,Kafka,SplunkHEC,File,Console,Vector -
объектspec.vector
-
строкаspec.vector.endpoint
Обязательный параметр
-
объектspec.vector.tls
-
строкаspec.vector.tls.caBase64-строка PEM (цепочка CA) для проверки сертификата сервера назначения.
-
булевыйspec.vector.tls.verifyCertificate
По умолчанию:
true -
булевыйspec.vector.tls.verifyHostname
По умолчанию:
true
-
-
-
ClusterSecurityEventLoggingTransformationRules
Scope: Cluster
Version: v1alpha1
-
объектspec
Кластерные правила для преобразования сырых строк логов в структурированные объекты (Vector events) перед дальнейшей обработкой.
Namespaced SecurityEventLoggingTransformationRules (SELTR) имеют приоритет над этими правилами, если оба ресурса подходят для одного и того же пода/контейнера.
-
объектspec.file
Выбор файлов + общая трансформация для логов из файлов. Обязательно, когда type = File.
Матчинг файла выполняется по полю Vector-события
.file.-
массив строкspec.file.paths
Обязательный параметр
Точные пути к файлам для матчинга. -
объектspec.file.transform
Обязательный параметр
Общая трансформация, применяемая ко всем строкам лога из совпавших файлов.-
булевыйspec.file.transform.drop_raw
По умолчанию:
false -
массив объектовspec.file.transform.fields
-
строкаspec.file.transform.fields.nameИмя поля в распарсенном объекте.
-
строкаspec.file.transform.fields.typeЦелевой тип поля.
Допустимые значения:
String,Int,Float,Bool
-
-
объектspec.file.transform.parser
Обязательный параметр
Конфигурация парсера (определяет, как распаковать исходную строку лога).
Семантика:
- best-effort (ошибки/несовпадения не приводят к drop событий)
- для Regex/Grok используется первый успешно совпавший шаблон
- именованные captures записываются в
.parsed_data
-
объектspec.file.transform.parser.grokКонфигурация grok-парсера. Именованные поля сохраняются в
.parsed_data.-
массив объектовspec.file.transform.parser.grok.customPatternsПользовательские определения grok-паттернов (имя -> regex). Добавляются к встроенным grok-паттернам.
-
строкаspec.file.transform.parser.grok.customPatterns.key
-
строкаspec.file.transform.parser.grok.customPatterns.value
-
-
массив строкspec.file.transform.parser.grok.patterns
Обязательный параметр
Список grok-шаблонов, применяемых по порядку. Используется первый успешно совпавший шаблон.
-
-
объектspec.file.transform.parser.regexКонфигурация regex-парсера. В
.parsed_dataсохраняются только именованные группы.-
массив строкspec.file.transform.parser.regex.patterns
Обязательный параметр
Список regex-шаблонов, применяемых по порядку. Используется первый успешно совпавший шаблон.
-
-
строкаspec.file.transform.parser.type
Обязательный параметр
Тип парсера.
- JSON: распарсить строку как JSON (parse_json()).
- Regex: применить regex-шаблоны и извлечь именованные группы.
- Grok: применить grok-шаблоны и извлечь именованные поля.
Допустимые значения:
JSON,Regex,Grok
-
-
-
объектspec.kubernetesPodsВыбор подов + трансформации по контейнерам для логов KubernetesPods. Обязательно, когда type = KubernetesPods.
-
массив объектовspec.kubernetesPods.containers
Обязательный параметр
Правила трансформации по контейнерам.-
булевыйspec.kubernetesPods.containers.drop_rawЕсли true — удаляет исходное «сырое» поле сообщения после парсинга.
По умолчанию:
false -
массив объектовspec.kubernetesPods.containers.fieldsНеобязательные преобразования типов полей после парсинга. Полезно для обеспечения стабильных типов для sinks (Elasticsearch/ClickHouse/и т.п.).
-
строкаspec.kubernetesPods.containers.fields.nameИмя поля в распарсенном объекте.
-
строкаspec.kubernetesPods.containers.fields.typeЦелевой тип поля.
Допустимые значения:
String,Int,Float,Bool
-
-
строкаspec.kubernetesPods.containers.nameИмя контейнера, к которому применяется эта трансформация.
-
объектspec.kubernetesPods.containers.parser
Конфигурация парсера (определяет, как распаковать исходную строку лога).
Семантика:
- best-effort (ошибки/несовпадения не приводят к drop событий)
- для Regex/Grok используется первый успешно совпавший шаблон
- именованные captures записываются в
.parsed_data
-
объектspec.kubernetesPods.containers.parser.grokКонфигурация grok-парсера. Именованные поля сохраняются в
.parsed_data.-
массив объектовspec.kubernetesPods.containers.parser.grok.customPatternsПользовательские определения grok-паттернов (имя -> regex). Добавляются к встроенным grok-паттернам.
-
строкаspec.kubernetesPods.containers.parser.grok.customPatterns.key
-
строкаspec.kubernetesPods.containers.parser.grok.customPatterns.value
-
-
массив строкspec.kubernetesPods.containers.parser.grok.patterns
Обязательный параметр
Список grok-шаблонов, применяемых по порядку. Используется первый успешно совпавший шаблон.
-
-
объектspec.kubernetesPods.containers.parser.regexКонфигурация regex-парсера. В
.parsed_dataсохраняются только именованные группы.-
массив строкspec.kubernetesPods.containers.parser.regex.patterns
Обязательный параметр
Список regex-шаблонов, применяемых по порядку. Используется первый успешно совпавший шаблон.
-
-
строкаspec.kubernetesPods.containers.parser.type
Обязательный параметр
Тип парсера.
- JSON: распарсить строку как JSON (parse_json()).
- Regex: применить regex-шаблоны и извлечь именованные группы.
- Grok: применить grok-шаблоны и извлечь именованные поля.
Допустимые значения:
JSON,Regex,Grok
-
-
объектspec.kubernetesPods.labelSelector
Обязательный параметр
Label selector подов.-
массив объектовspec.kubernetesPods.labelSelector.matchExpressionsСписок требований label selector.
-
строкаspec.kubernetesPods.labelSelector.matchExpressions.key
-
строкаspec.kubernetesPods.labelSelector.matchExpressions.operator
Допустимые значения:
In,NotIn,Exists,DoesNotExist -
массив строкspec.kubernetesPods.labelSelector.matchExpressions.values
-
-
объектspec.kubernetesPods.labelSelector.matchLabelsКарта «ключ метки → значение».
-
-
объектspec.kubernetesPods.namespaceSelectorВыбор неймспейсов (подмножество ClusterLoggingConfig). Поддерживаются только matchNames/excludeNames.
-
массив строкspec.kubernetesPods.namespaceSelector.excludeNames
-
массив строкspec.kubernetesPods.namespaceSelector.matchNames
-
-
-
строкаspec.type
Обязательный параметр
Тип входного источника, к которому применяются правила. KubernetesPods — для логов подов/контейнеров. File — для логов из файлов на нодах.Допустимые значения:
KubernetesPods,File
-
-
объектstatusCurrent status of this resource.
-
массив объектовstatus.conditionsRepresents the latest available observations of an object’s state.
-
строкаstatus.conditions.lastTransitionTime
-
строкаstatus.conditions.message
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
-
строкаstatus.conditions.reason
Длина:
1..1024 -
строкаstatus.conditions.status
Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.type
Максимальная длина:
316
-
-
целочисленныйstatus.observedGenerationThe generation observed by the controller.
-
ClusterSecurityEventShipper
Scope: Cluster
Version: v1alpha1
-
массив объектовspecКластерные пайплайны для извлечения событий безопасности из файлов нод или логов подов. Каждый элемент пайплайна описывает источник и одно или несколько определений событий (produces).
-
объектspec.input
-
массив строкspec.input.filesПути к файлам на нодах (обязательно для типа File).
-
объектspec.input.kubernetesPodsВыбор подов для кластерного сбора.
-
объектspec.input.kubernetesPods.labelSelector
Обязательный параметр
Селектор меток в стиле Kubernetes.-
массив объектовspec.input.kubernetesPods.labelSelector.matchExpressionsСписок требований label selector.
-
строкаspec.input.kubernetesPods.labelSelector.matchExpressions.key
-
строкаspec.input.kubernetesPods.labelSelector.matchExpressions.operator
Допустимые значения:
In,NotIn,Exists,DoesNotExist -
массив строкspec.input.kubernetesPods.labelSelector.matchExpressions.values
-
-
объектspec.input.kubernetesPods.labelSelector.matchLabelsКарта «ключ метки → значение».
-
-
строкаspec.input.kubernetesPods.namespaceНеймспейс, из которого собирать логи подов.
-
объектspec.input.kubernetesPods.namespaceSelector
Селектор неймспейсов для кластерного сбора логов подов.
- Если задан
matchNames, включаются только эти неймспейсы. - Если задан
excludeNames, эти неймспейсы исключаются. - Если оба поля пустые, совпадают все неймспейсы.
-
массив строкspec.input.kubernetesPods.namespaceSelector.excludeNamesЯвно исключаемые имена неймспейсов.
-
массив строкspec.input.kubernetesPods.namespaceSelector.matchNamesЯвно включаемые имена неймспейсов.
- Если задан
-
-
строкаspec.input.type
Обязательный параметр
File — чтение из файлов на нодах. KubernetesPods — чтение из логов подов (кластерный сбор; labelSelector обязателен;namespaceилиnamespaceSelectorопциональны).Допустимые значения:
File,KubernetesPods
-
-
массив объектовspec.parser
Правила парсинга для best-effort преобразования сырой строки лога
.messageв.parsed_data.- Для
input.type: KubernetesPods: повторяетSecurityEventLoggingTransformationRules.spec.containers[]. Матчинг выполняется по.namespace+.container+.pod_labels. - Для
input.type: File: используйтеname: file, и правило будет применяться при совпадении.fileс одним из путей вinput.files.
Выбор контейнера происходит на стороне log-shipper через
labelFilter.-
булевыйspec.parser.drop_rawЕсли true — удаляет исходное «сырое» поле сообщения после парсинга.
По умолчанию:
false -
массив объектовspec.parser.fieldsНеобязательные преобразования типов полей после парсинга.
-
строкаspec.parser.fields.nameИмя поля в распарсенном объекте.
-
строкаspec.parser.fields.typeЦелевой тип поля.
Допустимые значения:
String,Int,Float,Bool
-
-
строкаspec.parser.nameИмя контейнера (или
fileдля file input). -
объектspec.parser.parserКонфигурация парсера.
-
объектspec.parser.parser.grok
-
массив объектовspec.parser.parser.grok.customPatterns
-
строкаspec.parser.parser.grok.customPatterns.key
-
строкаspec.parser.parser.grok.customPatterns.value
-
-
массив строкspec.parser.parser.grok.patterns
Обязательный параметр
-
-
объектspec.parser.parser.regex
-
массив строкspec.parser.parser.regex.patterns
Обязательный параметр
-
-
строкаspec.parser.parser.type
Обязательный параметр
Тип парсера.Допустимые значения:
JSON,Regex,Grok
-
- Для
-
строкаspec.parserRef
Имя ресурса
ClusterSecurityEventLoggingTransformationRules(CSELTR), из которого нужно взять правила парсинга.Используется только если
parserне задан. -
массив объектовspec.producesСписок событий безопасности, производимых этим источником.
-
массив объектовspec.produces.enrich
Правила enrichment для добавления дополнительных полей в исходящий SecurityEvent.
Каждое правило пишет в целевой путь (
target). Источники:Static: записывает строковый литерал изvalue.Plugin: зарезервировано на будущее (CSV/REST/K8s lookups).
Enrich применяется после
transform, поэтому перезаписываетtransformпри конфликте целевого поля.-
массив объектовspec.produces.enrich.argsАргументы плагина. Значения могут ссылаться на
.parsed_data.*и/или текущие поля SecurityEvent. Зарезервировано на будущее.-
строкаspec.produces.enrich.args.key
-
строкаspec.produces.enrich.args.value
-
-
строкаspec.produces.enrich.pluginИмя плагина (обязательно для
source=Plugin). -
строкаspec.produces.enrich.sourceТип источника enrichment.
Допустимые значения:
Static,Plugin -
строкаspec.produces.enrich.targetЦелевой путь поля в исходящем SecurityEvent (через точку).
-
строкаspec.produces.enrich.value
Для источника
Static: строковый литерал, который будет записан вtarget.Для источника
Plugin: селектор поля из результата плагина (зарезервировано на будущее).
-
строкаspec.produces.eventCodeКод события (ссылка на SecurityEventDefinition.spec.code).
-
объектspec.produces.extract
Правило детекции для этого produced event.
Эта структура маппится 1:1 в элемент log-shipper ClusterLoggingConfig.spec.labelFilter.
Примечания:
valuesобязательно дляIn,NotIn,Regex,NotRegex.valuesдолжно отсутствовать/быть пустым дляExists,DoesNotExist.
Допустимые значения
field— этоmessageи метаданные (labels) log-shipper. Kubernetes:pod,namespace,pod_labels,pod_ip,image,container,node,pod_owner,node_group. File:host,host_ip,file.-
строкаspec.produces.extract.field
Обязательный параметр
Имя поля для фильтрации (как в ClusterLoggingConfiglabelFilter.field). Типичные значения:message,file,namespace. -
строкаspec.produces.extract.operator
Обязательный параметр
Оператор сравнения поля (как в ClusterLoggingConfiglabelFilter.operator).Допустимые значения:
In,NotIn,Regex,NotRegex,Exists,DoesNotExist -
массив строкspec.produces.extract.valuesМассив значений или регулярных выражений для соответствующих операций (как в ClusterLoggingConfig
labelFilter.values).
-
массив объектовspec.produces.transform
Маппинг полей для преобразования распарсенных сырых логов в исходящий SecurityEvent.
Ключи — целевые пути полей в исходящем событии (через точку). Значения — пути полей во входном распарсенном объекте (через точку, относительно
.parsed_data). Чтобы сослаться на исходные поля корневого события, используйте префикс@root.(например:metadata.extra.host_ip: @root.host_ip).Пример:
pod.name: pod_nameскопирует.parsed_data.pod_nameв.pod.name.-
строкаspec.produces.transform.key
-
строкаspec.produces.transform.value
-
-
-
объектspec.producesDefaults
Дефолтные преобразования, применяемые ко всем элементам
produces[]в рамках этого пайплайна.Приоритет:
transform: мердж по ключам; сначала defaults, затемproduces[].transformперезаписывает.enrich: используется только еслиproduces[].enrichне задан.
-
массив объектовspec.producesDefaults.enrichДефолтные enrich-правила (см.
produces[].enrich).-
массив объектовspec.producesDefaults.enrich.argsАргументы плагина. Значения могут ссылаться на
.parsed_data.*и/или текущие поля SecurityEvent. Зарезервировано на будущее.-
строкаspec.producesDefaults.enrich.args.key
-
строкаspec.producesDefaults.enrich.args.value
-
-
строкаspec.producesDefaults.enrich.pluginИмя плагина (обязательно для
source=Plugin). -
строкаspec.producesDefaults.enrich.sourceТип источника enrichment.
Допустимые значения:
Static,Plugin -
строкаspec.producesDefaults.enrich.targetЦелевой путь поля в исходящем SecurityEvent (через точку).
-
строкаspec.producesDefaults.enrich.value
Для источника
Static: строковый литерал, который будет записан вtarget.Для источника
Plugin: селектор поля из результата плагина (зарезервировано на будущее).
-
-
массив объектовspec.producesDefaults.transformДефолтный маппинг полей (см.
produces[].transform).-
строкаspec.producesDefaults.transform.key
-
строкаspec.producesDefaults.transform.value
-
-
строкаspec.sourceИдентификатор источника (используется для включения/выключения через ClusterSecurityEventConfig).
-
-
объектstatusCurrent status of this resource.
-
массив объектовstatus.conditionsRepresents the latest available observations of an object’s state.
-
строкаstatus.conditions.lastTransitionTime
-
строкаstatus.conditions.message
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
-
строкаstatus.conditions.reason
Длина:
1..1024 -
строкаstatus.conditions.status
Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.type
Максимальная длина:
316
-
-
целочисленныйstatus.observedGenerationThe generation observed by the controller.
-
PodSecurityEventShipper
Scope: Namespaced
Version: v1alpha1
-
массив объектовspecNamespaced пайплайны для извлечения событий безопасности из логов подов этого неймспейса. Неймспейс подразумевается и равен неймспейсу ресурса
PodSecurityEventShipper.-
объектspec.input
-
объектspec.input.kubernetesPods
Обязательный параметр
-
объектspec.input.kubernetesPods.labelSelector
Обязательный параметр
Селектор меток в стиле Kubernetes.-
массив объектовspec.input.kubernetesPods.labelSelector.matchExpressionsСписок требований label selector.
-
строкаspec.input.kubernetesPods.labelSelector.matchExpressions.key
-
строкаspec.input.kubernetesPods.labelSelector.matchExpressions.operator
Допустимые значения:
In,NotIn,Exists,DoesNotExist -
массив строкspec.input.kubernetesPods.labelSelector.matchExpressions.values
-
-
объектspec.input.kubernetesPods.labelSelector.matchLabelsКарта «ключ метки → значение».
-
-
-
строкаspec.input.type
Обязательный параметр
Допустимые значения:
KubernetesPods
-
-
массив объектовspec.parser
Описание правил парсинга логов (в стиле
SecurityEventLoggingTransformationRules.spec.containers[]).Используется шлюзом для best-effort парсинга сырых логов
.messageв.parsed_dataперед применениемtransform-маппингов.Примечание: контейнер выбирается на стороне log-shipper через
labelFilter. Здесьname— имя контейнера, к которому применяются правила парсинга.-
булевыйspec.parser.drop_rawЕсли true — удаляет исходное «сырое» поле сообщения после парсинга.
По умолчанию:
false -
массив объектовspec.parser.fieldsНеобязательные преобразования типов полей после парсинга.
-
строкаspec.parser.fields.nameИмя поля в распарсенном объекте.
-
строкаspec.parser.fields.typeЦелевой тип поля.
Допустимые значения:
String,Int,Float,Bool
-
-
строкаspec.parser.nameИмя контейнера.
-
объектspec.parser.parserКонфигурация парсера.
-
объектspec.parser.parser.grokКонфигурация grok-парсера.
-
массив объектовspec.parser.parser.grok.customPatternsПользовательские определения grok-паттернов (имя -> regex).
-
строкаspec.parser.parser.grok.customPatterns.key
-
строкаspec.parser.parser.grok.customPatterns.value
-
-
массив строкspec.parser.parser.grok.patterns
Обязательный параметр
Список grok-шаблонов, применяемых по порядку.
-
-
объектspec.parser.parser.regexКонфигурация regex-парсера.
-
массив строкspec.parser.parser.regex.patterns
Обязательный параметр
Список regex-шаблонов, применяемых по порядку.
-
-
строкаspec.parser.parser.type
Обязательный параметр
Тип парсера.
- JSON: распарсить строку как JSON.
- Regex: применить regex-шаблоны и извлечь именованные группы.
- Grok: применить grok-шаблоны и извлечь именованные поля.
Допустимые значения:
JSON,Regex,Grok
-
-
-
строкаspec.parserRef
Имя ресурса
SecurityEventLoggingTransformationRules(SELTR) в том же неймспейсе, из которого нужно взять правила парсинга.Используется только если
parserне задан. -
массив объектовspec.producesСписок событий безопасности, производимых этим источником.
-
массив объектовspec.produces.enrich
Правила enrichment для добавления дополнительных полей в исходящий SecurityEvent.
Каждое правило пишет в целевой путь (
target). Источники:Static: записывает строковый литерал изvalue.Plugin: зарезервировано на будущее (CSV/REST/K8s lookups).
Enrich применяется после
transform, поэтому перезаписываетtransformпри конфликте целевого поля.-
массив объектовspec.produces.enrich.argsАргументы плагина. Значения могут ссылаться на
.parsed_data.*и/или текущие поля SecurityEvent. Зарезервировано на будущее.-
строкаspec.produces.enrich.args.key
-
строкаspec.produces.enrich.args.value
-
-
строкаspec.produces.enrich.pluginИмя плагина (обязательно для
source=Plugin). -
строкаspec.produces.enrich.sourceТип источника enrichment.
Допустимые значения:
Static,Plugin -
строкаspec.produces.enrich.targetЦелевой путь поля в исходящем SecurityEvent (через точку).
-
строкаspec.produces.enrich.value
Для источника
Static: строковый литерал, который будет записан вtarget.Для источника
Plugin: селектор поля из результата плагина (зарезервировано на будущее).
-
строкаspec.produces.eventCodeКод события (ссылка на SecurityEventDefinition.spec.code).
-
объектspec.produces.extract
Правило детекции для этого produced event.
Эта структура маппится 1:1 в элемент log-shipper PodLoggingConfig.spec.labelFilter.
Примечания:
valuesобязательно дляIn,NotIn,Regex,NotRegex.valuesдолжно отсутствовать/быть пустым дляExists,DoesNotExist.
Допустимые значения
field— этоmessageи метаданные (labels) log-shipper. Kubernetes:pod,namespace,pod_labels,pod_ip,image,container,node,pod_owner,node_group. File:host,host_ip,file.-
строкаspec.produces.extract.field
Обязательный параметр
Имя поля для фильтрации (как в PodLoggingConfiglabelFilter.field). Типичные значения:message,container,namespace. -
строкаspec.produces.extract.operator
Обязательный параметр
Оператор сравнения поля (как в PodLoggingConfiglabelFilter.operator).Допустимые значения:
In,NotIn,Regex,NotRegex,Exists,DoesNotExist -
массив строкspec.produces.extract.valuesМассив значений или регулярных выражений для соответствующих операций (как в PodLoggingConfig
labelFilter.values).
-
массив объектовspec.produces.transform
Маппинг полей для преобразования распарсенных сырых логов в исходящий SecurityEvent.
Ключи — целевые пути полей в исходящем событии (через точку). Значения — пути полей во входном распарсенном объекте (через точку, относительно
.parsed_data). Чтобы сослаться на исходные поля корневого события, используйте префикс@root.(например:metadata.extra.host_ip: @root.host_ip).Пример:
pod.name: pod_nameскопирует.parsed_data.pod_nameв.pod.name.-
строкаspec.produces.transform.key
-
строкаspec.produces.transform.value
-
-
-
объектspec.producesDefaults
Дефолтные преобразования, применяемые ко всем элементам
produces[]в рамках этого пайплайна.Приоритет:
transform: мердж по ключам; сначала defaults, затемproduces[].transformперезаписывает.enrich: используется только еслиproduces[].enrichне задан.
-
массив объектовspec.producesDefaults.enrichДефолтные enrich-правила (см.
produces[].enrich).-
массив объектовspec.producesDefaults.enrich.argsАргументы плагина. Значения могут ссылаться на
.parsed_data.*и/или текущие поля SecurityEvent. Зарезервировано на будущее.-
строкаspec.producesDefaults.enrich.args.key
-
строкаspec.producesDefaults.enrich.args.value
-
-
строкаspec.producesDefaults.enrich.pluginИмя плагина (обязательно для
source=Plugin). -
строкаspec.producesDefaults.enrich.sourceТип источника enrichment.
Допустимые значения:
Static,Plugin -
строкаspec.producesDefaults.enrich.targetЦелевой путь поля в исходящем SecurityEvent (через точку).
-
строкаspec.producesDefaults.enrich.value
Для источника
Static: строковый литерал, который будет записан вtarget.Для источника
Plugin: селектор поля из результата плагина (зарезервировано на будущее).
-
-
массив объектовspec.producesDefaults.transformДефолтный маппинг полей (см.
produces[].transform).-
строкаspec.producesDefaults.transform.key
-
строкаspec.producesDefaults.transform.value
-
-
строкаspec.sourceИдентификатор источника (используется для включения/выключения через ClusterSecurityEventConfig).
-
-
объектstatusCurrent status of this resource.
-
массив объектовstatus.conditionsRepresents the latest available observations of an object’s state.
-
строкаstatus.conditions.lastTransitionTime
-
строкаstatus.conditions.message
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
-
строкаstatus.conditions.reason
Длина:
1..1024 -
строкаstatus.conditions.status
Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.type
Максимальная длина:
316
-
-
целочисленныйstatus.observedGenerationThe generation observed by the controller.
-
SecurityEvent
Scope: Cluster
Version: v1
-
объектactorСубъект (actor), совершивший действие.
-
строкаactor.idИдентификатор субъекта.
-
строкаactor.typeТип субъекта.
Допустимые значения:
User,ServiceAccount,System
-
-
объектeventКлассификация и детали события.
-
строкаevent.category
Обязательный параметр
Категория события.Допустимые значения:
Auth,Rbac,Runtime,Network,Config -
строкаevent.code
Обязательный параметр
Код события. -
строкаevent.descriptionЧеловекочитаемое описание события.
-
строкаevent.outcome
Обязательный параметр
Результат события.Допустимые значения:
Success,Failure,Denied -
строкаevent.severity
Обязательный параметр
Уровень критичности события.Допустимые значения:
Low,Medium,High,Critical
-
-
объектeventMetadataДополнительные метаданные.
-
строкаeventMetadata.cluster
Обязательный параметр
Идентификатор кластера. -
массив объектовeventMetadata.extraДополнительные метаданные в виде ключ-значение.
-
строкаeventMetadata.extra.key
-
строкаeventMetadata.extra.value
-
-
строкаeventMetadata.nodeИмя ноды.
-
-
строкаidУникальный идентификатор события.
-
объектobjectОбъект, к которому относится событие.
-
строкаobject.nameИмя объекта.
-
строкаobject.namespaceNamespace объекта.
-
строкаobject.typeТип объекта.
-
-
объектsourceИдентификация источника события.
-
строкаsource.component
Обязательный параметр
Имя компонента (например, kube-apiserver). -
строкаsource.instanceНеобязательный идентификатор инстанса.
-
-
строкаtimestampВремя события.
SecurityEventDefinition
Scope: Cluster
Version: v1alpha1
-
объектspecОписывает возможное событие безопасности.
-
строкаspec.category
Обязательный параметр
Категория события.Допустимые значения:
Auth,Rbac,Runtime,Network,Config -
строкаspec.code
Обязательный параметр
Код события. -
строкаspec.description
Обязательный параметр
Человекочитаемое описание. -
строкаspec.descriptionRuЧеловекочитаемое описание на русском языке.
-
массив объектовspec.fieldsСписок полей, которые может содержать событие.
-
строкаspec.fields.nameИмя поля.
-
булевыйspec.fields.requiredПризнак обязательности поля.
По умолчанию:
true
-
-
объектspec.metadataMetadata related to the rule
-
строкаspec.severity
Обязательный параметр
Критичность события.Допустимые значения:
Low,Medium,High,Critical -
строкаspec.source
Обязательный параметр
Идентификатор источника.
-
-
объектstatusCurrent status of this resource.
-
массив объектовstatus.conditionsRepresents the latest available observations of an object’s state.
-
строкаstatus.conditions.lastTransitionTime
-
строкаstatus.conditions.message
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
-
строкаstatus.conditions.reason
Длина:
1..1024 -
строкаstatus.conditions.status
Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.type
Максимальная длина:
316
-
-
целочисленныйstatus.observedGenerationThe generation observed by the controller.
-
SecurityEventLoggingTransformationRules
Scope: Namespaced
Version: v1alpha1
-
объектspecNamespaced-правила для преобразования сырых строк логов в структурированные объекты (Vector events) перед дальнейшей обработкой.
-
массив объектовspec.containers
Обязательный параметр
Правила трансформации по контейнерам.-
булевыйspec.containers.drop_rawЕсли true — удаляет исходное «сырое» поле сообщения после парсинга.
По умолчанию:
false -
массив объектовspec.containers.fieldsНеобязательные преобразования типов полей после парсинга. Полезно для обеспечения стабильных типов для sinks (Elasticsearch/ClickHouse/и т.п.).
-
строкаspec.containers.fields.nameИмя поля в распарсенном объекте.
-
строкаspec.containers.fields.typeЦелевой тип поля.
Допустимые значения:
String,Int,Float,Bool
-
-
строкаspec.containers.nameИмя контейнера, к которому применяется эта трансформация.
-
объектspec.containers.parser
Конфигурация парсера (определяет, как распаковать исходную строку лога).
Семантика:
- best-effort (ошибки/несовпадения не приводят к drop событий)
- для Regex/Grok используется первый успешно совпавший шаблон
- именованные captures записываются в
.parsed_data
-
объектspec.containers.parser.grokКонфигурация grok-парсера. Именованные поля сохраняются в
.parsed_data.-
массив объектовspec.containers.parser.grok.customPatternsПользовательские определения grok-паттернов (имя -> regex). Добавляются к встроенным grok-паттернам.
-
строкаspec.containers.parser.grok.customPatterns.key
-
строкаspec.containers.parser.grok.customPatterns.value
-
-
массив строкspec.containers.parser.grok.patterns
Обязательный параметр
Список grok-шаблонов, применяемых по порядку. Используется первый успешно совпавший шаблон.
-
-
объектspec.containers.parser.regexКонфигурация regex-парсера. В
.parsed_dataсохраняются только именованные группы.-
массив строкspec.containers.parser.regex.patterns
Обязательный параметр
Список regex-шаблонов, применяемых по порядку. Используется первый успешно совпавший шаблон.
-
-
строкаspec.containers.parser.type
Обязательный параметр
Тип парсера.
- JSON: распарсить строку как JSON (parse_json()).
- Regex: применить regex-шаблоны и извлечь именованные группы.
- Grok: применить grok-шаблоны и извлечь именованные поля.
Допустимые значения:
JSON,Regex,Grok
-
-
объектspec.selector
Обязательный параметр
Label selector подов.-
массив объектовspec.selector.matchExpressionsСписок требований label selector.
-
строкаspec.selector.matchExpressions.key
-
строкаspec.selector.matchExpressions.operator
Допустимые значения:
In,NotIn,Exists,DoesNotExist -
массив строкspec.selector.matchExpressions.values
-
-
объектspec.selector.matchLabelsКарта «ключ метки → значение».
-
-
-
объектstatusCurrent status of this resource.
-
массив объектовstatus.conditionsRepresents the latest available observations of an object’s state.
-
строкаstatus.conditions.lastTransitionTime
-
строкаstatus.conditions.message
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
-
строкаstatus.conditions.reason
Длина:
1..1024 -
строкаstatus.conditions.status
Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.type
Максимальная длина:
316
-
-
целочисленныйstatus.observedGenerationThe generation observed by the controller.
-