Доступно в редакциях:  Ultimate/EE, Certified Core/CSE Lite (1.73), Certified Pro/CSE Pro (1.73)

Входит в расширения:  Продвинутая защита инфраструктуры

Стадия жизненного цикла модуля: Общедоступная версия

У модуля есть требования для установки

Как явно включить или отключить модуль…

Явно включить или выключить модуль можно одним из следующих способов:

  • С помощью веб-интерфейса Deckhouse. В разделе «Система» → «Управление системой» → «Deckhouse» → «Модули» откройте модуль operator-trivy и включите (или выключите) переключатель «Модуль включен». Сохраните изменения.

    Пример:

    Интерфейс включения и выключения модуля
  • С помощью Deckhouse CLI (d8).

    Используйте команду d8 system module enable для включения модуля или d8 system module disable для выключения модуля (требуется Deckhouse CLI (d8), настроенный на работу с кластером).

    Пример включения модуля operator-trivy:

    d8 system module enable operator-trivy
  • С помощью ModuleConfig operator-trivy.

    Установите spec.enabled в true или false в ModuleConfig operator-trivy (при необходимости создайте его).

    Пример манифеста для включения модуля operator-trivy:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: operator-trivy
    spec:
      enabled: true

Как настроить модуль…

Настроить модуль можно одним из следующих способов:

  • С помощью веб-интерфейса Deckhouse.

    В разделе «Система» → «Управление системой» → «Deckhouse» → «Модули» откройте модуль operator-trivy и включите переключатель «Дополнительные настройки». Заполните необходимые поля формы на вкладке «Конфигурация» или укажите настройки модуля в формате YAML на вкладке «YAML» без ключа верхнего уровня settings. Сохраните изменения.

    Пример:

    Интерфейс настройки модуля

    Вы также можете отредактировать объект ModuleConfig operator-trivy на вкладке «YAML» в окне настроек модуля («Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль operator-trivy), указав версию схемы в параметре spec.version и необходимые параметры модуля в секции spec.settings.

  • С помощью Deckhouse CLI (d8) (требуется Deckhouse CLI (d8), настроенный на работу с кластером).

    Отредактируйте существующий ModuleConfig operator-trivy (подробнее о настройке Deckhouse Platform читайте в документации), выполнив следующую команду:

    d8 k edit mc operator-trivy

    Внесите необходимые изменения в секцию spec.settings. При необходимости укажите версию схемы в параметре spec.version. Сохраните изменения.

    Вы также можете создать файл манифеста ModuleConfig operator-trivy, используя пример ниже. Заполните секцию spec.settings необходимыми параметрами модуля. При необходимости укажите версию схемы в параметре spec.version.

    Примените манифест с помощью следующей команды (укажите имя файла манифеста):

    d8 k apply -f <FILENAME>

    Пример файла манифеста ModuleConfig operator-trivy:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: operator-trivy
    spec:
      version: 2
      enabled: true
      settings: # Параметры модуля из раздела «Параметры» ниже.

Как сменить канал обновлений модуля…

Чтобы сменить канал обновлений модуля, выполните действия из раздела Как сменить канал обновлений для модуля?.

Требования

К версии Deckhouse Platform: 1.76 и выше.

Конверсии

Модуль настраивается с помощью ресурса ModuleConfig, схема которого содержит номер версии. При применении в кластере старой версии схемы ModuleConfig выполняются автоматические преобразования. Чтобы обновить версию схемы ModuleConfig вручную, необходимо последовательно для каждой версии выполнить следующие действия:

  • Обновление из версии 1 в 2:

    nodeScanning.scanners и nodeScanning.pkgTypes теперь используют значения в PascalCase (Vuln/Secret, OS/Library). При переходе на новую версию требуется изменить значения параметров (vuln/secret, os/library), сделать значения с большой буквы.

Параметры

Версия схемы: 2

  • settings
    объект
    • settings.additionalRegistryCA
      массив объектов

      Список сертификатов CA приватных реестров.

      Чтобы указать цепочку сертификатов, например сертификат с промежуточным CA, укажите все сертификаты цепочки друг за другом в одном поле ca, без пустых строк между ними. Модуль доверяет сертификатам из всех элементов списка.

      Пример:

      additionalRegistryCA:
        - name: example CA
          ca: |
            -----BEGIN CERTIFICATE-----
            .................
            -----END CERTIFICATE-----
        - name: CA with intermediate CA
          ca: |
            -----BEGIN CERTIFICATE-----
            .................
            -----END CERTIFICATE-----
            -----BEGIN CERTIFICATE-----
            .................
            -----END CERTIFICATE-----
      • settings.additionalRegistryCA.ca
        строка
        Сертификат CA или цепочка сертификатов в формате PEM.
      • settings.additionalRegistryCA.name
        строка
        Произвольное имя элемента.
    • settings.additionalVulnerabilityReportFields
      массив строк
      Список дополнительных полей из базы уязвимостей, добавляемых в объекты VulnerabilityReport.

      Пример:

      additionalVulnerabilityReportFields:
      - Class
      - Target
      
    • settings.apiServerStorageClass
      строка

      Имя StorageClass для хранения данных security-storage: отчётов сканирования, доступных через API trivy.deckhouse.io, и, если nodeAgent.enabled равен true, объектов карты приложений и сети.

      Если значение не указано, то будет использоваться StorageClass, согласно настройке глобального параметра storageClass.

      Настройка глобального параметра storageClass учитывается только при включении модуля. Изменение глобального параметра storageClass при включённом модуле не приведёт к перезаказу диска.

      Внимание. Если указать значение, отличное от текущего (используемого в существующей PVC), диск будет перезаказан, и все данные удалятся.

      Если указать false, будет принудительно использоваться emptyDir.

      Примеры:

      apiServerStorageClass: ceph-ssd
      
      apiServerStorageClass: 'false'
      
    • settings.complianceReports
      объект
      Настройки отчётов соответствия, развёртываемых модулем.

      По умолчанию: {}

      • settings.complianceReports.enabled
        массив строк

        Список фреймворков соответствия, для которых модуль развёртывает объекты ClusterComplianceReport:

        • CIS — CIS Kubernetes Benchmark v1.12.
        • PCI-DSS — PCI DSS v4.0 (ключевые меры контроля для защиты данных платёжных карт).
        • NSA — NSA-CISA Kubernetes Hardening Guidance v1.0.
        • GDPR — общий регламент по защите данных (ключевые статьи, связанные с безопасностью).
        • HIPAA — HIPAA Security Rule (ключевые технические меры защиты).
        • FSTEC-21 — приказ ФСТЭК России № 21 (защита персональных данных в ИСПДн).
        • FZ-187 — приказ ФСТЭК России № 239 (значимые объекты КИИ, 187-ФЗ).

        По умолчанию: [ "CIS", "PCI-DSS", "NSA", "FSTEC-21", "FZ-187" ]

        Примеры:

        enabled:
        - CIS
        - NSA
        
        enabled:
        - CIS
        - PCI-DSS
        - NSA
        - GDPR
        - HIPAA
        - FSTEC-21
        - FZ-187
        
        • settings.complianceReports.enabled.Элемент массива
          строка

          Допустимые значения: CIS, PCI-DSS, NSA, GDPR, HIPAA, FSTEC-21, FZ-187

      • settings.complianceReports.skipSystemResources
        булевый

        Исключение системных объектов из отчётов аудита конфигурации и оценки RBAC.

        Если параметр равен true, модуль не создаёт следующие отчёты:

        • ConfigAuditReport и RbacAssessmentReport в неймспейсах, соответствующих шаблонам d8-*, kube-* или default;
        • ClusterConfigAuditReport и ClusterRbacAssessmentReport для объектов уровня кластера с лейблом heritage=deckhouse (объекты, управляемые Deckhouse Platform (DP)) или лейблом kubernetes.io/bootstrapping=rbac-defaults (встроенные объекты RBAC Kubernetes, например cluster-admin и роли system:*).

        Результаты проверок объектов с этими лейблами также не учитываются в объектах ClusterComplianceReport.

        Параметр не влияет на объекты VulnerabilityReport, ExposedSecretReport, SbomReport и InfraAssessmentReport.

        Чтобы исключить неймспейс из отчётов аудита конфигурации и оценки RBAC независимо от этого параметра, добавьте в его Namespace лейбл security.deckhouse.io/skip-compliance=true.

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

        Примеры:

        skipSystemResources: true
        
        skipSystemResources: false
        
    • settings.concurrentScanJobsLimit
      целое число
      Максимальное количество задач сканирования, которые оператор может запускать одновременно.

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

      Допустимые значения: 1 <= X

      Примеры:

      concurrentScanJobsLimit: 3
      
      concurrentScanJobsLimit: 5
      
      concurrentScanJobsLimit: 10
      
    • settings.denyVulnerableImages
      объект

      Настройки запрета создания объектов Pod, Deployment, StatefulSet, DaemonSet и OpenKruise DaemonSet с уязвимыми образами в неймспейсах с лейблом security.deckhouse.io/trivy-provider: "".

      Примечание. Проверка выполняется только при создании или изменении объекта. Аудит Gatekeeper не проверяет существующие объекты на соответствие этому ограничению (constraint).

      По умолчанию: {}

      • settings.denyVulnerableImages.allowedSeverityLevels
        массив строк

        Уровни критичности уязвимостей, которые не приводят к запрету образа.

        Образ, содержащий только уязвимости этих уровней, не запрещается.

        • settings.denyVulnerableImages.allowedSeverityLevels.Элемент массива
          строка

          Допустимые значения: UNKNOWN, LOW, MEDIUM, HIGH, CRITICAL

      • settings.denyVulnerableImages.enabled
        булевый
        Включает запрет уязвимых образов в неймспейсах с лейблом security.deckhouse.io/trivy-provider: "".

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

      • settings.denyVulnerableImages.registrySecrets
        массив объектов

        Список дополнительных секретов с учётными данными приватных реестров для загрузки образов на сканирование.

        Каждый секрет должен иметь тип kubernetes.io/dockerconfigjson. Учётные данные реестра, из которого установлена Deckhouse Platform (DP), используются всегда.

        По умолчанию: []

        • settings.denyVulnerableImages.registrySecrets.name
          строка
          Имя секрета.
        • settings.denyVulnerableImages.registrySecrets.namespace
          строка
          Неймспейс секрета.
    • settings.disableSBOMGeneration
      булевый

      Отключает генерацию отчётов SBOM.

      Внимание. При установке значения true все текущие отчёты SBOM в кластере удаляются. Очистка выполняется один раз.

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

      Примеры:

      disableSBOMGeneration: true
      
      disableSBOMGeneration: false
      
    • settings.insecureDbRegistry
      булевый
      Разрешает Trivy скачивать базы данных уязвимостей, используя недоверенные HTTPS-подключения (не прошедшие проверку TLS-сертификата) или подключения по HTTP.

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

      Примеры:

      insecureDbRegistry: true
      
      insecureDbRegistry: false
      
    • settings.insecureRegistries
      массив строк
      Список адресов реестров, к которым разрешены недоверенные HTTPS-подключения (не прошедшие проверку TLS-сертификата) и подключения по HTTP.

      Пример:

      insecureRegistries:
      - my.registry.com
      - http-only.registry.io
      
    • settings.linkCVEtoBDU
      булевый

      Заменяет идентификаторы CVE в объектах VulnerabilityReport соответствующими идентификаторами из Банка данных угроз безопасности информации ФСТЭК России (БДУ).

      Уязвимость без соответствия в БДУ сохраняет свой идентификатор CVE.

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

      Примеры:

      linkCVEtoBDU: true
      
      linkCVEtoBDU: false
      
    • settings.nodeAgent
      объект

      Карта приложений и сети на основе поведения в рантайме (предварительная версия).

      При включении на каждом узле запускается привилегированный eBPF-агент, который наблюдает за поведением каждой нагрузки в рантайме: какие процессы она запускает, какие файлы открывает, какие Linux capabilities и системные вызовы использует и с кем устанавливает сетевые соединения. Наблюдения агрегируются по нагрузкам в объекты ApplicationProfile и NetworkNeighborhood.

      Требования. Ядра узлов должны быть Linux 5.4 или новее и предоставлять BTF в /sys/kernel/btf/vmlinux. Агент работает привилегированно с доступом к host PID.

      По умолчанию: {}

      • settings.nodeAgent.enabled
        булевый
        Включает наблюдение в рантайме и построение карты приложений и сети.

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

        Примеры:

        enabled: true
        
        enabled: false
        
      • settings.nodeAgent.generatePolicies
        объект

        Генерация политик с минимальными привилегиями на основе карты.

        Сама карта (объекты ApplicationProfile и NetworkNeighborhood) строится всегда при включённом nodeAgent. Эти параметры дополнительно публикуют сгенерированные на её основе политики.

        По умолчанию: {}

        • settings.nodeAgent.generatePolicies.networkPolicy
          булевый

          Включает публикацию объектов GeneratedNetworkPolicy — определений NetworkPolicy, вычисленных из NetworkNeighborhood каждой нагрузки.

          Проверьте сгенерированную политику и примените её, чтобы разрешить нагрузке только наблюдавшиеся сетевые соединения.

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

          Примеры:

          networkPolicy: true
          
          networkPolicy: false
          
        • settings.nodeAgent.generatePolicies.seccomp
          булевый

          Включает генерацию и публикацию объектов SeccompProfile на основе системных вызовов, наблюдавшихся у каждой нагрузки.

          Подключите профиль к подам нагрузки, чтобы ограничить набор разрешённых системных вызовов.

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

          Примеры:

          seccomp: true
          
          seccomp: false
          
      • settings.nodeAgent.learningPeriod
        строка

        Длительность наблюдения за нагрузкой, после которой её профиль считается завершённым.

        В течение этого периода новое поведение нагрузки добавляется в профиль. После окончания периода профиль фиксируется.

        По умолчанию: 1h

        Примеры:

        learningPeriod: 1h
        
        learningPeriod: 24h
        
      • settings.nodeAgent.nodeSelector
        объект

        Лейблы узлов, на которых запускается eBPF-агент.

        По умолчанию агент работает на всех узлах Linux. Используйте параметр, чтобы ограничить его подмножеством узлов, например теми, чьи ядра удовлетворяют требованию BTF.

        По умолчанию: {}

        Пример:

        node-role.kubernetes.io/worker: ''
        
      • settings.nodeAgent.tolerations
        массив объектов

        Tolerations для DaemonSet eBPF-агента.

        Структура, аналогичная spec.tolerations пода Kubernetes.

        Если параметр не задан, агент допускает стандартные taints Deckhouse Platform (DP): taints control plane и etcd arbiter, dedicated.deckhouse.io, dedicated, taints cluster autoscaler и DRBD, а также ключи из глобального параметра customTolerationKeys.

        Пример:

        tolerations:
        - operator: Exists
        
        • settings.nodeAgent.tolerations.effect
          строка
        • settings.nodeAgent.tolerations.key
          строка
        • settings.nodeAgent.tolerations.operator
          строка
        • settings.nodeAgent.tolerations.tolerationSeconds
          целое число
        • settings.nodeAgent.tolerations.value
          строка
    • settings.nodeScanning
      объект

      Настройки сканирования узлов кластера (хостовой файловой системы).

      Эта функция сканирует хостовую файловую систему каждого узла Kubernetes для обнаружения уязвимостей в пакетах операционной системы.

      По умолчанию: {}

      • settings.nodeScanning.concurrentLimit
        целое число

        Максимальное количество одновременно выполняемых задач сканирования узлов.

        Каждая выполняющаяся задача сканирования узла использует до 1 CPU и 2 ГиБ памяти на своём узле. Чем больше значение, тем выше общая нагрузка на кластер.

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

        Допустимые значения: 1 <= X

        Примеры:

        concurrentLimit: 1
        
        concurrentLimit: 2
        
        concurrentLimit: 3
        
      • settings.nodeScanning.enabled
        булевый

        Включает сканирование узлов.

        При включении оператор будет сканировать файловую систему каждого узла на предмет уязвимостей в пакетах ОС. Результаты сохраняются в объектах NodeVulnerabilityReport.

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

        Примеры:

        enabled: true
        
        enabled: false
        
      • settings.nodeScanning.hideUnfixedCVEs
        булевый

        Включать ли в отчёт только уязвимости, для которых есть исправление.

        Это уменьшает размер отчёта, но скрывает уязвимости, для которых ещё нет исправления.

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

        Примеры:

        hideUnfixedCVEs: true
        
        hideUnfixedCVEs: false
        
      • settings.nodeScanning.nodeSelector
        объект

        Лейблы узлов для сканирования.

        Сканируются только узлы, у которых есть все указанные лейблы.

        По умолчанию: {}

        Примеры:

        node-role.kubernetes.io/worker: ''
        
        env: production
        
      • settings.nodeScanning.pkgTypes
        массив строк

        Список типов пакетов для сканирования:

        • OS — пакеты операционной системы (rpm, deb, apk и т. п.).
        • Library — библиотеки уровня приложения (jar, npm-модули, Python-пакеты и т. п.), найденные на файловой системе узла.

        По умолчанию: [ "OS" ]

        Примеры:

        pkgTypes:
        - OS
        
        pkgTypes:
        - OS
        - Library
        
        • settings.nodeScanning.pkgTypes.Элемент массива
          строка

          Допустимые значения: OS, Library

      • settings.nodeScanning.resources
        объект

        Запросы и лимиты ресурсов (requests/limits) для заданий сканирования узлов (поды scan-noderootfs).

        В отличие от scanJobResources, каждое незаданное поле сохраняет значение по умолчанию: запросы 100m/256Mi и лимиты 1/2Gi. Если запрос по умолчанию больше заданного лимита, он уменьшается до лимита. ModuleConfig, в котором явно заданный запрос больше лимита (заданного или по умолчанию), не сохраняется. Нулевые значения недопустимы.

        Сканирование всей файловой системы узла может занимать до 2 ГиБ памяти, а задание, превысившее лимит памяти, завершается с причиной OOMKilled без отчёта. Меньший лимит CPU замедляет сканирование — увеличьте nodeScanning.timeout соответственно. Если запрос не помещается в свободные ресурсы узла, задание завершается с причиной OutOfmemory или OutOfcpu.

        По умолчанию: {}

        Пример:

        limits:
          memory: 3Gi
        
        • settings.nodeScanning.resources.limits
          объект

          По умолчанию: {}

          • settings.nodeScanning.resources.limits.cpu
            строка

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

            Шаблон: ^([1-9][0-9]*(\.[0-9]+)?|0\.[0-9]*[1-9][0-9]*)m?$

            Примеры:

            cpu: 500m
            
            cpu: '1'
            
          • settings.nodeScanning.resources.limits.memory
            строка

            По умолчанию: 2Gi

            Шаблон: ^([1-9][0-9]*(\.[0-9]+)?|0\.[0-9]*[1-9][0-9]*)(k|M|G|T|Ki|Mi|Gi|Ti)?$

            Примеры:

            memory: 1Gi
            
            memory: 2Gi
            
        • settings.nodeScanning.resources.requests
          объект

          По умолчанию: {}

          • settings.nodeScanning.resources.requests.cpu
            строка

            По умолчанию: 100m

            Шаблон: ^([1-9][0-9]*(\.[0-9]+)?|0\.[0-9]*[1-9][0-9]*)m?$

            Примеры:

            cpu: 100m
            
            cpu: 250m
            
          • settings.nodeScanning.resources.requests.memory
            строка

            По умолчанию: 256Mi

            Шаблон: ^([1-9][0-9]*(\.[0-9]+)?|0\.[0-9]*[1-9][0-9]*)(k|M|G|T|Ki|Mi|Gi|Ti)?$

            Примеры:

            memory: 256Mi
            
            memory: 512Mi
            
      • settings.nodeScanning.scanners
        массив строк

        Список сканеров для использования при сканировании узла:

        • Vuln — сканер уязвимостей (ищет известные CVE в пакетах ОС и библиотеках на файловой системе узла).
        • Secret — сканер секретов (находит учётные данные, заданные в файлах на узле, например AWS-ключи, GitHub-токены и т. п.).

        По умолчанию: [ "Vuln" ]

        Примеры:

        scanners:
        - Vuln
        
        scanners:
        - Vuln
        - Secret
        
        • settings.nodeScanning.scanners.Элемент массива
          строка

          Допустимые значения: Vuln, Secret

      • settings.nodeScanning.severities
        массив строк

        Уровни критичности уязвимостей, включаемых в отчёты об уязвимостях узлов.

        Внимание. Уровни LOW и MEDIUM могут на порядок увеличить объём отчётов; значимые находки на их фоне сложнее заметить. Если securityStorageForReports равен false, отчёт по узлу с большим количеством пакетов может превысить ограничение etcd на размер объекта в 3 МБ.

        По умолчанию: [ "CRITICAL", "HIGH" ]

        Примеры:

        severities:
        - CRITICAL
        - HIGH
        
        severities:
        - CRITICAL
        - HIGH
        - MEDIUM
        
        • settings.nodeScanning.severities.Элемент массива
          строка

          Допустимые значения: UNKNOWN, LOW, MEDIUM, HIGH, CRITICAL

      • settings.nodeScanning.skipDirs
        массив строк
        Список директорий, которые пропускаются при сканировании узлов.

        По умолчанию: [ "/proc", "/sys", "/dev", "/run", "/var/lib/containerd", "/var/lib/docker", "/var/lib/kubelet/pods" ]

        Пример:

        skipDirs:
        - /proc
        - /sys
        - /dev
        
      • settings.nodeScanning.timeout
        строка

        Тайм-аут задач сканирования узлов.

        Если параметр не задан, тайм-аут составляет 5 минут.

        По умолчанию: ‘’

        Примеры:

        timeout: 10m
        
        timeout: 30m
        
    • settings.nodeSelector
      объект

      Селектор узлов для компонентов модуля (оператора, trivy-server, trivy-provider, registry-scanner, security-storage и report-updater) и задач сканирования образов.

      Структура, аналогичная spec.nodeSelector пода Kubernetes.

      Задачи сканирования узлов и eBPF-агент (nodeAgent) не используют этот параметр.

      Если значение не указано, будет использоваться автоматически определённое значение.

      Пример:

      disktype: ssd
      
    • settings.registryScanning
      объект

      Настройки периодического сканирования на CVE образов контейнеров во внешних реестрах.

      Цели сканирования задаются в объектах RegistryScanTarget, а результаты сохраняются в объектах RegistryImageVulnerabilityReport.

      По умолчанию: {}

      • settings.registryScanning.concurrentScans
        целое число
        Максимальное количество одновременно выполняемых сканирований образов по всем целям.

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

        Допустимые значения: 1 <= X

        Примеры:

        concurrentScans: 3
        
        concurrentScans: 5
        
        concurrentScans: 10
        
      • settings.registryScanning.enabled
        булевый
        Включает сканер реестров.

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

        Примеры:

        enabled: true
        
        enabled: false
        
    • settings.reportResourceLabels
      массив строк

      Список лейблов сканируемых объектов, которые копируются в отчёты модуля, например в VulnerabilityReport, ConfigAuditReport и RbacAssessmentReport.

      Отчёт получает каждый указанный лейбл со значением, которое этот лейбл имеет у сканируемого объекта.

      Примеры:

      reportResourceLabels: app
      
      reportResourceLabels: env
      
    • settings.scanJobResources
      объект

      Запросы и лимиты CPU и памяти (requests/limits) контейнера Trivy в подах задач сканирования образов.

      Если параметр не задан, используются значения по умолчанию: запросы 100m/100M и лимиты 500m/500M. Если параметр задан, можно указать только часть полей (например, только memory) — модуль не будет подставлять остальные поля.

      На задачи сканирования узлов параметр не влияет.

      По умолчанию: {}

      Пример:

      limits:
        cpu: 500m
        memory: 500M
      requests:
        cpu: 100m
        memory: 100M
      
      • settings.scanJobResources.limits
        объект
        Лимиты ресурсов контейнера Trivy.

        По умолчанию: {}

        • settings.scanJobResources.limits.cpu
          строка
          Лимит CPU.

          Примеры:

          cpu: 500m
          
          cpu: '1'
          
        • settings.scanJobResources.limits.memory
          строка
          Лимит памяти.

          Примеры:

          memory: 500M
          
          memory: 1Gi
          
      • settings.scanJobResources.requests
        объект
        Запросы ресурсов контейнера Trivy.

        По умолчанию: {}

        • settings.scanJobResources.requests.cpu
          строка
          Запрос CPU.

          Примеры:

          cpu: 100m
          
          cpu: 250m
          
        • settings.scanJobResources.requests.memory
          строка
          Запрос памяти.

          Примеры:

          memory: 100M
          
          memory: 256Mi
          
    • settings.scanPeriods
      объект
      Управляет периодичностью повторного сканирования рабочих нагрузок и перегенерации отчётов соответствия.

      По умолчанию: {}

      • settings.scanPeriods.complianceRescanCron
        строка

        Расписание в формате cron, определяющее, как часто перегенерируются объекты ClusterComplianceReport.

        Используется стандартный пятипольный синтаксис cron (минута час день-месяца месяц день-недели).

        По умолчанию: 0 */6 * * *

        Шаблон: ^(((([\*]{1}){1})|((\*\/){0,1}(([0-9]{1}){1}|(([1-5]{1}){1}([0-9]{1}){1}){1}))) ((([\*]{1}){1})|((\*\/){0,1}(([0-9]{1}){1}|(([1]{1}){1}([0-9]{1}){1}){1}|([2]{1}){1}([0-3]{1}){1}))) ((([\*]{1}){1})|((\*\/){0,1}(([1-9]{1}){1}|(([1-2]{1}){1}([0-9]{1}){1}){1}|([3]{1}){1}([0-1]{1}){1}))) ((([\*]{1}){1})|((\*\/){0,1}(([1-9]{1}){1}|(([1-2]{1}){1}([0-9]{1}){1}){1}|([3]{1}){1}([0-1]{1}){1}))|(jan|feb|mar|apr|may|jun|jul|aug|sep|okt|nov|dec)) ((([\*]{1}){1})|((\*\/){0,1}(([0-7]{1}){1}))|(sun|mon|tue|wed|thu|fri|sat)))$

        Примеры:

        complianceRescanCron: 0 0 * * sat
        
        complianceRescanCron: 0 */6 * * *
        
      • settings.scanPeriods.workloadRescanPeriod
        строка

        Максимальный возраст отчёта об уязвимостях, по достижении которого он считается устаревшим и ставится в очередь на повторное сканирование.

        Как только возраст отчёта превышает указанное значение, оператор удаляет его и планирует новую задачу сканирования для его перегенерации. Установите значение "", чтобы полностью отключить периодическое повторное сканирование (отчёты создаются однократно и не обновляются автоматически).

        По умолчанию: 24h

        Шаблон: ^([0-9]+h)?([0-9]+m)?([0-9]+s)?$

        Примеры:

        workloadRescanPeriod: 2h50m30s
        
        workloadRescanPeriod: 12h30m
        
        workloadRescanPeriod: 24h
        
    • settings.securityEvents
      объект

      Настройки событий безопасности, которые модуль отправляет модулю security-events-manager.

      События создаются, только если включён модуль security-events-manager.

      По умолчанию: {}

      • settings.securityEvents.minimumSeverity
        строка

        Наименьший уровень находки, при котором создаётся событие безопасности.

        Отчёт о сканировании создаёт событие, если его наиболее критичная находка имеет этот уровень или выше, и событие получает уровень этой находки. Параметр применяется к уязвимостям рабочих нагрузок, узлов и образов в реестрах, секретам в образах, нарушениям конфигурации и нарушениям RBAC. Отклонённые образы, ошибки сканирования реестров и невыполненные требования стандартов соответствия всегда создают событие.

        Отчёт, в котором есть только находки уровней LOW или UNKNOWN, считается отчётом уровня LOW.

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

        Допустимые значения: CRITICAL, HIGH, MEDIUM, LOW

        Примеры:

        minimumSeverity: HIGH
        
        minimumSeverity: CRITICAL
        
        minimumSeverity: LOW
        
    • settings.securityStorageForReports
      булевый

      Хранение отчётов о сканировании в security-storage вместо etcd.

      При значении true отчёты обслуживает агрегированный API-сервер security-storage в группе API trivy.deckhouse.io, и на них не распространяется ограничение etcd на размер объекта. При значении false отчёты хранятся в etcd как кастомные ресурсы группы API aquasecurity.github.io.

      Внимание. При изменении значения существующие отчёты не переносятся. Оператор повторно сканирует рабочие нагрузки и узлы и создаёт отчёты в новом хранилище заново.

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

      Примеры:

      securityStorageForReports: true
      
      securityStorageForReports: false
      
    • settings.securityStoragePVCRequest
      целое число

      Размер PersistentVolumeClaim, который security-storage использует для хранения результатов сканирования, в гибибайтах.

      Параметр не действует, если apiServerStorageClass равен "false".

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

      Допустимые значения: 1 <= X

    • settings.severities
      массив строк
      Уровни критичности уязвимостей, включаемых в отчёты об уязвимостях.

      По умолчанию: [ "UNKNOWN", "LOW", "MEDIUM", "HIGH", "CRITICAL" ]

      Примеры:

      severities:
      - CRITICAL
      - HIGH
      - MEDIUM
      - LOW
      - UNKNOWN
      
      severities:
      - CRITICAL
      - HIGH
      
      • settings.severities.Элемент массива
        строка

        Допустимые значения: UNKNOWN, LOW, MEDIUM, HIGH, CRITICAL

    • settings.storageClass
      строка

      Имя StorageClass, который будет использоваться для хранения данных модуля.

      Если значение не указано, то будет использоваться StorageClass, согласно настройке глобального параметра storageClass.

      Настройка глобального параметра storageClass учитывается только при включении модуля. Изменение глобального параметра storageClass при включённом модуле не приведёт к перезаказу диска.

      Внимание. Если указать значение, отличное от текущего (используемого в существующей PVC), диск будет перезаказан, и все данные удалятся.

      Если указать false, будет принудительно использоваться emptyDir.

      Примеры:

      storageClass: ceph-ssd
      
      storageClass: 'false'
      
    • settings.tolerations
      массив объектов

      Tolerations для компонентов модуля: оператора, trivy-server, trivy-provider, registry-scanner, security-storage и report-updater.

      Структура, аналогичная spec.tolerations пода Kubernetes.

      Задачи сканирования и eBPF-агент (nodeAgent) не используют этот параметр.

      Если значение не указано, будет использоваться автоматически определённое значение.

      Пример:

      tolerations:
      - effect: NoSchedule
        key: key1
        operator: Equal
        value: value1
      
      • settings.tolerations.effect
        строка
      • settings.tolerations.key
        строка
      • settings.tolerations.operator
        строка
      • settings.tolerations.tolerationSeconds
        целое число
      • settings.tolerations.value
        строка
    • settings.useVEXFromOCI
      булевый

      Включает использование VEX-аттестаций сканируемых образов, хранящихся в OCI-реестре.

      Уязвимости, объявленные в аттестациях, не попадают в отчёты. Аттестации запрашиваются с сертификатами из параметра additionalRegistryCA. Образы из реестров, указанных в параметре insecureRegistries, а при сканировании реестров — образы ресурса RegistryScanTarget с insecure: true сканируются без VEX-аттестаций.

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

      Примеры:

      useVEXFromOCI: true
      
      useVEXFromOCI: false
      
    • settings.vulnerabilityDatabaseMaxAge
      строка

      Максимальный возраст базы уязвимостей Trivy (trivy-db), после которого срабатывает алерт TrivyVulnerabilityDatabaseOutdated.

      Возраст считается от отметки времени UpdatedAt в ConfigMap trivy-db-info, которую публикует сайдкар trivy-db-info (проверяется только trivy-db, не trivy-java-db).

      Связанный алерт TrivyVulnerabilityDatabaseMissing срабатывает, если этот ConfigMap отсутствует или в нём нет trivy-db.updatedAt в течение 30 минут (например, при проблемах с доступом к реестру или неполном офлайн-наборе баз).

      Установите "", чтобы отключить оба алерта актуальности базы (устаревшая и отсутствующая). Нулевые длительности вроде 0s или 0h недопустимы — для отключения используйте "".

      По умолчанию: 168h

      Шаблон: ^(?:[0-9]*[1-9][0-9]*h(?:[0-9]+m)?(?:[0-9]+s)?|(?:[0-9]+h)?[0-9]*[1-9][0-9]*m(?:[0-9]+s)?|(?:[0-9]+h)?(?:[0-9]+m)?[0-9]*[1-9][0-9]*s)?$

      Примеры:

      vulnerabilityDatabaseMaxAge: 168h
      
      vulnerabilityDatabaseMaxAge: 336h
      
      vulnerabilityDatabaseMaxAge: 720h
      
      vulnerabilityDatabaseMaxAge: ''