Каталог инструментов
Категории
trivy — Компонент GitLab CI для сканирования Trivy | Kitploit
Инструменты / GitLab / niclas-zone / ci / trivy
niclas-zone/ci/trivy trivy Компонент GitLab CI для сканирования Trivy
5 1 месяц назадОткройте для себя самые используемые инструменты нашего сообщества.
7 дней 30 дней
Trivy GitLab CI Компонент
Компонент GitLab CI для Trivy — универсального сканера безопасности, охватывающего образы контейнеров, файловые системы, репозитории, кластеры Kubernetes, SBOM и лицензионную совместимость. Подключайте эти шаблоны напрямую в свои конвейеры, чтобы получать повторяемые сканирования, нативные отчёты GitLab и переносимые артефакты практически без написания shell-скриптов.
Возможности
Полное покрытие поверхности : Контейнеры, файловые системы, корневые файловые системы, Git-репозитории, ВМ, SBOM, кластеры Kubernetes и многое другое.
Несколько сканеров : Сканирование уязвимостей, неверных конфигураций/IaC, секретов и лицензий с индивидуальными настройками для каждого задания.
Отчёты GitLab : Создаёт артефакты Container Scanning, JUnit, SARIF и JSON, готовые для анализа в запросах на слияние.
Настраиваемые входные данные : Каждый шаблон предоставляет параметры для уровней серьёзности, сканеров, таймаутов, типов пакетов и артефактов.
Компонуемые шаблоны : Комбинируйте удалённые или локальные сканирования, рабочие процессы SBOM, аттестации Rekor и проверки IaC из одного пространства имён компонента.
Использование
Базовое использование
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/main@latest
stages:
- test
Удалённый образ с произвольным уровнем серьёзности include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/main@latest
inputs:
job_name: "security:remote"
TRIVY_SCAN_REMOTE_IMAGE: "registry.gitlab.com/group/app:latest"
severity: "CRITICAL,HIGH,MEDIUM"
exit_on_vulnerability: true
stages:
- test
Локальное сканирование tar / OCI Layout include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/main@latest
inputs:
job_name: "security:local"
TRIVY_SCAN_LOCAL_IMAGES: "dist/"
TRIVY_SCANNERS: "vuln,secret"
exit_on_vulnerability: false
stages:
- test
Входные данные компонента и шаблоны Каждый шаблон ниже перечисляет доступные входные данные и значения по умолчанию, определённые в спецификации компонента, а затем минимальный рабочий пример.
Компонент: templates/main.yml Входные данные Описание По умолчанию job_nameИмя задания CI "trivy scanning"stageСтадия конвейера "test"imageОбраз контейнера, выполняющий Trivy "ghcr.io/aquasecurity/trivy:0.68.1"TRIVY_NEEDED_STAGEСтадия, которая должна завершиться до запуска Trivy "build"TRIVY_SCAN_REMOTE_IMAGEУдалённый образ для сканирования ""TRIVY_SCAN_LOCAL_IMAGESПуть к tar/OCI входным данным (ищет в . при пустом значении) ""TRIVY_SCANNERSРазделённые запятыми сканеры "vuln,secret,misconfig"severityВключаемые уровни серьёзности "CRITICAL,HIGH"exit_on_vulnerabilityЗавершать задание с ошибкой при обнаружении проблем trueTRIVY_EXTRA_ARGSДополнительные флаги CLI ""allow_failureРазрешить сбой задания без сбоя конвейера false
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/main@latest
inputs:
job_name: "trivy:basic"
TRIVY_SCAN_REMOTE_IMAGE: "nginx:latest"
Компонент: templates/target_container.yml Входные данные Описание По умолчанию job_nameИмя задания CI "trivy:scan:containers"stageСтадия конвейера "test"imageОбраз контейнера Trivy "ghcr.io/aquasecurity/trivy:0.68.1"TRIVY_SCAN_REMOTE_IMAGEСсылка на удалённый образ ""TRIVY_SCAN_LOCAL_IMAGESКаталог/tar для локального сканирования ""TRIVY_SCANNERSВключённые сканеры "vuln,secret,misconfig"TRIVY_IMAGE_SRCБэкенд источника образа (remote/docker/...) ""severityУровни серьёзности "CRITICAL,HIGH"exit_on_vulnerabilityЗавершать с ошибкой при совпадении по серьёзности trueTRIVY_IGNORE_UNFIXEDИгнорировать проблемы без исправлений trueTRIVY_PKG_TYPESТипы пакетов "os,library"TRIVY_VULN_TYPEУстаревший псевдоним для типов пакетов ""TRIVY_TIMEOUTТаймаут команды "10m"TRIVY_EXTRA_ARGSДополнительные аргументы CLI ""TRIVY_DB_REPOSITORYПользовательское зеркало БД ""TRIVY_JAVA_DB_REPOSITORYПользовательское зеркало БД Java ""
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/target_container@latest
inputs:
job_name: "trivy:containers"
TRIVY_SCAN_REMOTE_IMAGE: "registry.gitlab.com/group/service:latest"
TRIVY_SCANNERS: "vuln,secret"
exit_on_vulnerability: true
Компонент: templates/target_filesystem.yml Входные данные Описание По умолчанию job_nameИмя задания CI "trivy:scan:filesystem"stageСтадия конвейера "test"imageОбраз Trivy "ghcr.io/aquasecurity/trivy:0.68.1"TRIVY_FS_PATHФайл или каталог для сканирования "."TRIVY_SCANNERSВключённые сканеры "vuln,secret"severityУровни серьёзности "CRITICAL,HIGH"exit_on_vulnerabilityЗавершать с ошибкой при совпадении по серьёзности trueTRIVY_IGNORE_UNFIXEDИгнорировать неисправленные проблемы trueTRIVY_PKG_TYPESТипы пакетов "os,library"TRIVY_TIMEOUTТаймаут "10m"TRIVY_SKIP_FILESШаблоны файлов для пропуска ""TRIVY_SKIP_DIRSКаталоги для пропуска ""TRIVY_EXTRA_ARGSДополнительные аргументы CLI ""TRIVY_REPORT_BASENAMEБазовое имя артефакта "filesystem-scan"allow_failureРазрешить сбой задания false
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/target_filesystem@latest
inputs:
TRIVY_FS_PATH: "services/api"
TRIVY_SCANNERS: "vuln,misconfig,secret"
Компонент: templates/target_rootfs.yml Входные данные Описание По умолчанию job_nameИмя задания "trivy:scan:rootfs"stageСтадия "test"imageОбраз Trivy "ghcr.io/aquasecurity/trivy:0.68.1"TRIVY_ROOTFS_PATHПуть к корневой файловой системе "/"TRIVY_SCANNERSСканеры "vuln,secret"severityУровни серьёзности "CRITICAL,HIGH"exit_on_vulnerabilityЗавершать задание при обнаружении trueTRIVY_IGNORE_UNFIXEDИгнорировать неисправленные trueTRIVY_PKG_TYPESТипы пакетов "os,library"TRIVY_TIMEOUTТаймаут "10m"TRIVY_SKIP_FILESФайлы для пропуска ""TRIVY_SKIP_DIRSКаталоги для пропуска ""TRIVY_EXTRA_ARGSДополнительные аргументы ""TRIVY_REPORT_BASENAMEБазовое имя артефакта "rootfs-scan"allow_failureРазрешить сбой false
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/target_rootfs@latest
inputs:
TRIVY_ROOTFS_PATH: "/mnt/root"
TRIVY_SCANNERS: "vuln"
Компонент: templates/target_repository.yml Входные данные Описание По умолчанию job_nameИмя задания "trivy:scan:repo"stageСтадия "test"imageОбраз Trivy "ghcr.io/aquasecurity/trivy:0.68.1"TRIVY_REPO_TARGETЛокальный путь или Git URL "."TRIVY_REPO_BRANCHУдалённая ветка ""TRIVY_REPO_COMMITХэш коммита ""TRIVY_REPO_TAGИмя тега ""TRIVY_SCANNERSСканеры "vuln,secret"severityУровни серьёзности "CRITICAL,HIGH"exit_on_vulnerabilityЗавершать задание при обнаружении trueTRIVY_IGNORE_UNFIXEDИгнорировать неисправленные trueTRIVY_TIMEOUTТаймаут "10m"TRIVY_SKIP_FILESФайлы для пропуска ""TRIVY_SKIP_DIRSКаталоги для пропуска ""TRIVY_EXTRA_ARGSДополнительные аргументы ""TRIVY_REPORT_BASENAMEБазовое имя артефакта "repo-scan"allow_failureРазрешить сбой false
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/target_repository@latest
inputs:
TRIVY_REPO_TARGET: "https://github.com/aquasecurity/trivy"
TRIVY_REPO_BRANCH: "main"
Компонент: templates/target_vm.yml Входные данные Описание По умолчанию job_nameИмя задания "trivy:scan:vm"stageСтадия "test"imageОбраз Trivy "ghcr.io/aquasecurity/trivy:0.68.1"TRIVY_VM_TARGETЛокальный путь или идентификатор ami:/ebs: ""TRIVY_AWS_REGIONРегион AWS для сканирования AMI/EBS ""TRIVY_SCANNERSСканеры "vuln"severityУровни серьёзности "CRITICAL,HIGH"exit_on_vulnerabilityЗавершать задание при обнаружении trueTRIVY_IGNORE_UNFIXEDИгнорировать неисправленные trueTRIVY_TIMEOUTТаймаут "20m"TRIVY_EXTRA_ARGSДополнительные аргументы ""TRIVY_REPORT_BASENAMEБазовое имя артефакта "vm-scan"allow_failureРазрешить сбой false
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/target_vm@latest
inputs:
TRIVY_VM_TARGET: "ami-0123456789abcdef0"
TRIVY_AWS_REGION: "us-east-1"
Компонент: templates/target_kubernetes.yml Входные данные Описание По умолчанию job_nameИмя задания "trivy:scan:k8s"stageСтадия "test"imageОбраз Trivy "ghcr.io/aquasecurity/trivy:0.68.1"TRIVY_K8S_OBJECTОбласть (cluster, namespace/foo и т.д.) ""TRIVY_K8S_REPORTДетализация отчёта (summary/all) "summary"TRIVY_K8S_KUBECONFIGПользовательский путь kubeconfig ""TRIVY_K8S_INCLUDE_NAMESPACESВключаемые пространства имён ""TRIVY_K8S_EXCLUDE_NAMESPACESИсключаемые пространства имён ""TRIVY_K8S_INCLUDE_KINDSВключаемые виды ""TRIVY_K8S_EXCLUDE_KINDSИсключаемые виды ""TRIVY_K8S_SKIP_IMAGESПропускать сканирование образов рабочих нагрузок falseTRIVY_K8S_DISABLE_NODE_COLLECTORОтключить сборщик узлов falseTRIVY_SCANNERSСканеры "vuln,misconfig,secret"severityУровни серьёзности "CRITICAL,HIGH"exit_on_vulnerabilityЗавершать задание при обнаружении trueTRIVY_IGNORE_UNFIXED
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/target_kubernetes@latest
inputs:
TRIVY_K8S_OBJECT: "namespace/prod"
TRIVY_K8S_REPORT: "summary"
Компонент: templates/scanner_iac_config.yml Входные данные Описание По умолчанию job_nameИмя задания "trivy:scan:iac"stageСтадия "test"imageОбраз Trivy "ghcr.io/aquasecurity/trivy:0.68.1"TRIVY_CONFIG_PATHКаталог IaC "."severityУровни серьёзности "CRITICAL,HIGH"exit_on_vulnerabilityЗавершать при обнаружении trueTRIVY_CONFIG_REPORTДетализация отчёта "all"TRIVY_CONFIG_INCLUDE_NON_FAILURESВключать прошедшие проверки falseTRIVY_MISCONFIG_SCANNERSСписок сканеров конфигураций "azure-arm,cloudformation,dockerfile,helm,kubernetes,terraform"TRIVY_TIMEOUTТаймаут "10m"TRIVY_SKIP_FILESФайлы для пропуска ""TRIVY_SKIP_DIRSКаталоги для пропуска ""TRIVY_CONFIG_EXTRA_ARGSДополнительные аргументы ""TRIVY_REPORT_BASENAMEБазовое имя артефакта "iac-scan"allow_failureРазрешить сбой false
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/scanner_iac_config@latest
inputs:
TRIVY_CONFIG_PATH: "examples/iac/terraform"
severity: "CRITICAL,HIGH,MEDIUM"
Компонент: templates/scanner_license.yml Входные данные Описание По умолчанию job_nameИмя задания "trivy:scan:license"stageСтадия "test"imageОбраз Trivy "ghcr.io/aquasecurity/trivy:0.68.1"TRIVY_SCAN_REMOTE_IMAGEСсылка на удалённый образ ""TRIVY_SCAN_LOCAL_IMAGESЛокальный tar/OCI или путь файловой системы ""TRIVY_SCANNERSСписок сканеров "license"severityУровни серьёзности "CRITICAL"exit_on_vulnerabilityЗавершать при совпадении по серьёзности trueTRIVY_LICENSE_FULLВключить --license-full falseTRIVY_LICENSE_CONFIDENCEПорог уверенности "0.9"TRIVY_LICENSE_IGNOREDИгнорируемые лицензии ""TRIVY_PKG_TYPESТипы пакетов "os,library"TRIVY_TIMEOUTТаймаут "10m"TRIVY_EXTRA_ARGSДополнительные аргументы ""allow_failureРазрешить сбой false
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/scanner_license@latest
inputs:
TRIVY_SCAN_LOCAL_IMAGES: "test.tar"
TRIVY_LICENSE_FULL: true
Компонент: templates/sbom_generate_image.yml Входные данные Описание По умолчанию job_nameИмя задания "trivy:sbom:image"stageСтадия "test"imageОбраз Trivy "ghcr.io/aquasecurity/trivy:0.68.1"TRIVY_SBOM_IMAGEСсылка на удалённый образ ""TRIVY_SBOM_INPUTЛокальный OCI/tar вход ""TRIVY_SBOM_FORMATФормат SBOM "cyclonedx"TRIVY_SBOM_FILENAMEИмя выходного файла "image-sbom.cdx.json"TRIVY_SBOM_EXTRA_ARGSДополнительные аргументы ""TRIVY_TIMEOUTТаймаут "10m"allow_failureРазрешить сбой false
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/sbom_generate_image@latest
inputs:
TRIVY_SBOM_INPUT: "test.tar"
TRIVY_SBOM_FILENAME: "ci-image-sbom.cdx.json"
Компонент: templates/sbom_generate_repo.yml Входные данные Описание По умолчанию job_nameИмя задания "trivy:sbom:repo"stageСтадия "test"imageОбраз Trivy "ghcr.io/aquasecurity/trivy:0.68.1"TRIVY_REPO_TARGETПуть или удалённый Git URL "."TRIVY_REPO_BRANCHВетка ""TRIVY_REPO_COMMITХэш коммита ""TRIVY_REPO_TAGТег ""TRIVY_SBOM_FORMATФормат "cyclonedx"TRIVY_SBOM_FILENAMEИмя выходного файла "repo-sbom.cdx.json"TRIVY_REPO_SCANNERSСканеры при создании SBOM "vuln,secret"TRIVY_REPO_EXTRA_ARGSДополнительные аргументы ""TRIVY_TIMEOUTТаймаут "10m"allow_failureРазрешить сбой false
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/sbom_generate_repo@latest
inputs:
TRIVY_REPO_TARGET: "."
TRIVY_SBOM_FORMAT: "spdx-json"
Компонент: templates/sbom_generate_kbom.yml Входные данные Описание По умолчанию job_nameИмя задания "trivy:sbom:kbom"stageСтадия "test"imageОбраз Trivy "ghcr.io/aquasecurity/trivy:0.68.1"TRIVY_K8S_TARGETЦель trivy k8s (cluster, namespace/...) "cluster"TRIVY_K8S_CONTEXTКонтекст kubeconfig ""TRIVY_K8S_EXTRA_ARGSДополнительные аргументы ""TRIVY_SBOM_FILENAMEИмя файла KBOM "kbom.cdx.json"TRIVY_TIMEOUTТаймаут "15m"scan_kbomВыполнить сканирование уязвимостей на сгенерированном KBOM trueTRIVY_SBOM_SCANNERSСканеры для сканирования KBOM "vuln"severityУровни серьёзности для сканирования KBOM "CRITICAL,HIGH"exit_on_vulnerabilityЗавершать при обнаружении trueTRIVY_SBOM_SCAN_EXTRA_ARGSДополнительные аргументы для сканирования KBOM ""allow_failureРазрешить сбой false
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/sbom_generate_kbom@latest
inputs:
TRIVY_K8S_TARGET: "namespace/default"
scan_kbom: true
Компонент: templates/sbom_scan_file.yml Входные данные Описание По умолчанию job_nameИмя задания "trivy:scan:sbom"stageСтадия "test"imageОбраз Trivy "ghcr.io/aquasecurity/trivy:0.68.1"TRIVY_SBOM_PATHПуть к файлу SBOM "artifacts/trivy/image-sbom.cdx.json"TRIVY_SBOM_REPORT_BASENAMEБазовое имя выходного файла "sbom-scan"TRIVY_SCANNERSВыполняемые сканеры "vuln,license"severityУровни серьёзности "CRITICAL,HIGH"exit_on_vulnerabilityЗавершать при обнаружении trueTRIVY_SBOM_SCAN_EXTRA_ARGSДополнительные аргументы ""TRIVY_TIMEOUTТаймаут "10m"allow_failureРазрешить сбой false
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/sbom_scan_file@latest
inputs:
TRIVY_SBOM_PATH: "artifacts/trivy/ci-image-sbom.cdx.json"
TRIVY_SCANNERS: "vuln,license"
Компонент: templates/sbom_scan_rekor.yml Входные данные Описание По умолчанию job_nameИмя задания "trivy:scan:rekor"stageСтадия "test"imageОбраз Trivy "ghcr.io/aquasecurity/trivy:0.68.1"TRIVY_SCAN_REMOTE_IMAGEАттестованный удалённый образ ""TRIVY_REKOR_URLEndpoint Rekor API ""TRIVY_SCANNERSСканеры "vuln"severityУровни серьёзности "CRITICAL,HIGH"exit_on_vulnerabilityЗавершать при обнаружении trueTRIVY_IGNORE_UNFIXEDИгнорировать неисправленные trueTRIVY_TIMEOUTТаймаут "10m"TRIVY_EXTRA_ARGSДополнительные аргументы ""allow_failureРазрешить сбой false
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/sbom_scan_rekor@latest
inputs:
TRIVY_SCAN_REMOTE_IMAGE: "registry.gitlab.com/group/app@sha256:..."
TRIVY_REKOR_URL: "https://rekor.sigstore.dev"
TRIVY_SKIP_FILESИсключения файлов по шаблону ""
TRIVY_SKIP_DIRSИсключения каталогов ""
allow_failureРазрешить сбой без сбоя конвейера false
Игнорировать неисправленные
TRIVY_TIMEOUTТаймаут "15m"
TRIVY_K8S_EXTRA_ARGSДополнительные аргументы ""
TRIVY_REPORT_BASENAMEБазовое имя артефакта "k8s-scan"
allow_failureРазрешить сбой false