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

Стадия жизненного цикла модуля: General Availability
У модуля есть требования для установки

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

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

  • С помощью веб-интерфейса 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 читайте в документации), выполнив следующую команду:

    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: 1
      enabled: true
      settings: # Параметры модуля из раздела "Параметры" ниже.

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

Для смены канала обновлений модуля воспользуйтесь инструкцией.

Требования

К версии Deckhouse: 1.75 и выше.

Параметры

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

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

      Список корневых сертификатов (CA) приватных хранилищ образов контейнеров (container registry).

      Если требуется указать несколько сертификатов, они перечисляются последовательно, без дополнительных переносов строк.

      Пример:


      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
        строка
      • settings.additionalRegistryCA.name
        строка
    • settings.additionalVulnerabilityReportFields
      массив строк
      Список дополнительных полей из базы уязвимостей, добавляемых к отчетам об уязвимостях (VulnerabilityReport).

      Пример:


      additionalVulnerabilityReportFields:
      - Class
      - Target
      
    • settings.concurrentScanJobsLimit
      целочисленный
      Максимальное количество заданий сканирования (ScanJob), которые оператор может запускать одновременно.

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

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

      Примеры:


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

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

      Примечание: Этот constraint проверяется только при admission (создание/обновление ресурсов). Gatekeeper audit не оценивает этот constraint.

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

      • settings.denyVulnerableImages.allowedSeverityLevels
        массив строк
        Образы контейнеров, содержащие только уязвимости указанных уровней критичности, не будут запрещены.
        • settings.denyVulnerableImages.allowedSeverityLevels.Элемент массива
          строка

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

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

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

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

        Список дополнительных секретов приватных регистри.

        По умолчанию для загрузки образов для сканирования используется секрет deckhouse-registry.

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

        • 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
      массив строк
      Список адресов хранилищ образов контейнеров (container registry), к которым разрешены недоверенные HTTPS-подключения (не прошедшие проверку TLS-сертификата) и подключения по HTTP.

      Пример:


      insecureRegistries:
      - my.registry.com
      - http-only.registry.io
      
    • settings.linkCVEtoBDU
      булевый
      Включить конвертацию отчетов уязвимостей. Заменяет уязвимости из базы CVE на данные из базы BDU и выводит их в отчете.

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

      Примеры:


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

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

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

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

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

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

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

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

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

        Примеры:


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

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

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

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

        Примеры:


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

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

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

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

        Примеры:


        hideUnfixedCVEs: true
        
        hideUnfixedCVEs: false
        
      • settings.nodeScanning.nodeSelector
        объект
        Фильтрация узлов по меткам. Сканируются только узлы, соответствующие всем указанным меткам.

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

        Примеры:


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

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

        • os — пакеты ОС;
        • library — библиотеки приложений.

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

        Примеры:


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

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

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

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

        • vuln — сканер уязвимостей;
        • secret — сканер секретов.

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

        Примеры:


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

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

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

        Фильтрация уязвимостей по критичности.

        Внимание. Без фильтрации отчёты могут превысить лимит etcd в 3MB на объект для узлов с большим количеством пакетов.

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

        Примеры:


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

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

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

        Список директорий, которые будут пропущены при сканировании.

        По умолчанию исключаются директории контейнерных runtime’ов и виртуальные файловые системы.

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

        Пример:


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

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

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

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

        Примеры:


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

      Опциональный селектор для компонентов operator-trivy и заданий сканирования (Jobs).

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

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

      Пример:


      disktype: ssd
      
    • settings.reportResourceLabels
      массив строк

      Список дополнительных меток маркировки отчетов (VulnerabilityReport) Trivy.

      Значения этих меток будут соответствовать значениям меток сканируемых ресурсов.

      Примеры:


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

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

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

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

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

      Пример:


      limits:
        cpu: 500m
        memory: 500M
      requests:
        cpu: 100m
        memory: 100M
      
      • settings.scanJobResources.limits
        объект

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

        • settings.scanJobResources.limits.cpu
          строка

          Примеры:


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

          Примеры:


          memory: 500M
          
          memory: 1Gi
          
      • settings.scanJobResources.requests
        объект

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

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

          Примеры:


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

          Примеры:


          memory: 100M
          
          memory: 256Mi
          
    • settings.severities
      массив строк
      Фильтрация отчетов уязвимостей по уровню их критичности.

      Примеры:


      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 для компонентов operator-trivy и заданий сканирования (Jobs).

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

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

      Пример:


      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-хранилищах и подавление отчётности об уязвимостях, объявленных в них.

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

      Примеры:


      useVEXFromOCI: true
      
      useVEXFromOCI: false