Стадия жизненного цикла модуля: 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/[^/]+/[^/]+/[^/]+)$

    • spec.enabledSourcesMasks
      массив строк

      Если задано — включены только источники, подходящие под маски (glob). Если не задано — включены все источники. Маски используют ‘*’ для сопоставления любой подстроки (включая ‘/’). Нельзя одновременно задавать enabledSources и enabledSourcesMasks. Ожидаемый формат:

      • clusterSecurityEventShipper//<source>
      • podSecurityEventShipper/<namespace>//<source> Примеры:
      • podSecurityEventShipper/*
      • clusterSecurityEventShipper/kube-audit/*
      • spec.enabledSourcesMasks.Элемент массива
        строка

        Шаблон: ^(clusterSecurityEventShipper/.+|podSecurityEventShipper/.+)$

  • status
    объект
    Current status of this resource.
    • status.conditions
      массив объектов
      Represents 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.observedGeneration
      целочисленный
      The 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.ca
          строка
          Base64-строка 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.ca
          строка
          Base64-строка 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.ca
          строка
          Base64-строка PEM (цепочка CA) для проверки сертификата сервера назначения.
        • spec.loki.tls.verifyCertificate
          булевый

          По умолчанию: true

        • spec.loki.tls.verifyHostname
          булевый

          По умолчанию: true

    • spec.splunkHEC
      объект
      • spec.splunkHEC.endpoint
        строка

        Обязательный параметр

      • spec.splunkHEC.tls
        объект
        • spec.splunkHEC.tls.ca
          строка
          Base64-строка 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.ca
          строка
          Base64-строка 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

  • status
    объект
    Current status of this resource.
    • status.conditions
      массив объектов
      Represents 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.observedGeneration
      целочисленный
      The 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
          строка

          Обязательный параметр

          Имя поля для фильтрации (как в ClusterLoggingConfig labelFilter.field). Типичные значения: message, file, namespace.
        • spec.produces.extract.operator
          строка

          Обязательный параметр

          Оператор сравнения поля (как в ClusterLoggingConfig labelFilter.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).
  • status
    объект
    Current status of this resource.
    • status.conditions
      массив объектов
      Represents 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.observedGeneration
      целочисленный
      The generation observed by the controller.

PodSecurityEventShipper

Scope: Namespaced
Version: v1alpha1

  • spec
    массив объектов
    Namespaced пайплайны для извлечения событий безопасности из логов подов этого неймспейса. Неймспейс подразумевается и равен неймспейсу ресурса 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
          строка

          Обязательный параметр

          Имя поля для фильтрации (как в PodLoggingConfig labelFilter.field). Типичные значения: message, container, namespace.
        • spec.produces.extract.operator
          строка

          Обязательный параметр

          Оператор сравнения поля (как в PodLoggingConfig labelFilter.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).
  • status
    объект
    Current status of this resource.
    • status.conditions
      массив объектов
      Represents 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.observedGeneration
      целочисленный
      The 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.namespace
      строка
      Namespace объекта.
    • 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.metadata
      объект
      Metadata related to the rule
    • spec.severity
      строка

      Обязательный параметр

      Критичность события.

      Допустимые значения: Low, Medium, High, Critical

    • spec.source
      строка

      Обязательный параметр

      Идентификатор источника.
  • status
    объект
    Current status of this resource.
    • status.conditions
      массив объектов
      Represents 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.observedGeneration
      целочисленный
      The generation observed by the controller.

SecurityEventLoggingTransformationRules

Scope: Namespaced
Version: v1alpha1

  • spec
    объект
    Namespaced-правила для преобразования сырых строк логов в структурированные объекты (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
        объект
        Карта «ключ метки → значение».
  • status
    объект
    Current status of this resource.
    • status.conditions
      массив объектов
      Represents 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.observedGeneration
      целочисленный
      The generation observed by the controller.