Загрузка результатов сканирований
Вы можете загрузить результаты сканирования любого из поддерживаемых сканеров в Vampy командой upload
Для этого необходимо указать:
- репозиторий или продукт (
--repository/--product) - файл для загрузки (
--file) - имя сканера, результаты которого загружаются (
--scanner)
Пример загрузки результатов сканирования сканера TRIVY репозитория vmp/product/vampy-engine:
vampy-cli upload --repository vmp/product/vampy-engine --file ~/scans_trivy_image.json --scanner TRIVY_IMAGE
Вывод команды:
В результате вы получите id фоновой задачи, статус которой необходимо отслеживать для оценки успешности загрузки
сканирования
Скан-пайплайн: привязка и ожидание
Ответ может содержать scanPipelineID, если пайплайн создан или привязан к загрузке. Параметры:
--pipeline-id— внешний идентификатор (напримерCI_COMMIT_SHA), чтобы несколько загрузок попали в один пайплайн;--pipeline-name— человекочитаемое имя;--pipeline-finish— после этой загрузки сообщить платформе о завершении стороны пайплайна (внешние джобы сделаны);--check-pipeline— ждать финального статуса иaggregationCompleted; обязателен--pipeline-finish, иначе ошибка валидации CLI;--check-full— полный контур: фоновая задача, QG и при выполнении условий — ожидание пайплайна.
Ожидание пайплайна после upload включается только если в ответе API есть scanPipelineID, задан --pipeline-finish и
указан --check-full или --check-pipeline.
--check-full |
--pipeline-finish |
Ожидание пайплайна |
|---|---|---|
| да | да | да |
| да | нет | нет (только BG и QG) |
| нет | да | да, только с --check-pipeline |
| нет | нет | нет |
Пример финальной загрузки в CI с ожиданием пайплайна:
vampy-cli upload --repository vmp/product/vampy-engine --file ~/scans_last.json --scanner TRIVY_FS \
--pipeline-id "$CI_COMMIT_SHA" --pipeline-finish --check-pipeline --verbose
Подробнее о командах pipeline create / list / status см.
Управление пайплайнами сканирования.
Дополнительные параметры
Автоматическое отслеживание обработки результатов сканирования
Используя опцию --check-full вы можете автоматически отслеживать обработку результатов сканирования (фоновая задача, QG
и при сценарии с пайплайном — см. таблицу выше):
vampy-cli upload --repository vmp/product/vampy-engine \
--file ~/scans_trivy_image.json --scanner TRIVY_IMAGE --check-full
Пример вывода команды:
Автоматическая проверка на соответствие SQG
Используя опцию --check-qg вы автоматически получите результаты прохождения Security Quality Gate после загрузки результатов сканирования:
vampy-cli upload --repository vmp/product/vampy-engine --file ~/scans_trivy_image.json --scanner TRIVY_IMAGE --check-qg --details
Пример вывода команды:
--------
Run scan result uploading for repository vmp/product/vampy-engine | scanner TRIVY_IMAGE ...
--------
✅ Scan successful uploaded
Parser: TRIVY_IMAGE
Repository: [CRITICAL]Vampy Engine
Link: https://vampy.hexway.io/repositories/11234494-738c-404b-aa1b-14a8959de52d/
TaskID: b51c7920-d0b2-463c-96f7-ee7d78a1256d
Task Link: https://vampy.hexway.io/admin/bgTasks?id=b51c7920-d0b2-463c-96f7-ee7d78a1256d
Pipeline Link: https://vampy.hexway.io/repositories/91ffb93e-0323-45f2-9778-a70da8409474/scans?pipelinePanelId=bfd77d07-3167-4d14-a7b8-ceb9310c8696
--------
Checking SQG for repository 'vmp/product/vampy-engine' ...
--------
⛔ QualityGate: 'Critical'
Repository: 'Vampy Engine'
Link: https://vampy.hexway.io/repositories/11234494-738c-404b-aa1b-14a8959de52d/
Status: FAILED
Results:
┌────────┬──────────────┬────────────┬───────────┬───────────────┐
│ STATUS │ SCANNER TYPE │ SEVERITIES │ MAX VALUE │ CURRENT VALUE │
├────────┼──────────────┼────────────┼───────────┼───────────────┤
│ PASSED │ SAST │ CRITICAL │ 0 │ 0 │
│ PASSED │ DAST │ CRITICAL │ 0 │ 0 │
│ FAILED │ SCA │ CRITICAL │ 0 │ 1 │
│ PASSED │ SAST │ HIGH │ 0 │ 0 │
│ PASSED │ DAST │ HIGH │ 0 │ 0 │
│ FAILED │ SCA │ HIGH │ 10 │ 20 │
│ PASSED │ SAST │ MEDIUM │ 5 │ 0 │
│ PASSED │ DAST │ MEDIUM │ 5 │ 0 │
│ FAILED │ SCA │ MEDIUM │ 40 │ 62 │
│ PASSED │ SAST │ LOW │ 10 │ 0 │
│ PASSED │ DAST │ LOW │ 10 │ 0 │
│ FAILED │ SCA │ LOW │ 100 │ 137 │
└────────┴──────────────┴────────────┴───────────┴───────────────┘
Параметры команды upload
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
--file value |
Файл с результатами сканирования | (обязательный) |
--repository value |
SLUG или ID репозитория | |
--branch value |
Ветка репозитория | |
--branch-set-default |
Установить ветку репозитория как ветку по умолчанию | false |
--product value |
SLUG или ID продукта | |
--scanner value |
Название сканера | (обязательный) |
--artifact value |
Идентификатор артефакта для сканирования/загрузки | |
--pipeline-id value |
Идентификатор внешнего пайплайна сканирования | |
--pipeline-name value |
Имя с которым будет создаваться пайплайн | |
--pipeline-finish |
Завершить пайплайн сканирования после загрузки | false |
--check-qg |
Проверить Quality Gate после загрузки | false |
--check-task |
Проверить статус фоновой задачи | false |
--check-pipeline |
Ждать финальный статус пайплайна (нужен --pipeline-finish) |
false |
--check-full |
Полный процесс: BG, QG и пайплайн при --pipeline-finish |
false |