Kaspersky Security для контейнеров

Настройка интеграции с Jenkins CI/CD

03 июля 2024

ID 271087

Настройка интеграции с Jenkins CI/CD состоит из следующих этапов:

  1. Авторизация Jenkins CI/CD в реестре образов производителя Kaspersky Security для контейнеров. Для этого на рабочей станции оператора кластера подготовьте хеш по алгоритму Base64 от авторизационных данных, выполнив команду:

    printf "login:password" | openssl base64 -A

    где login и password – имя и пароль учетной записи в реестре образов производителя Kaspersky Security для контейнеров.

  2. Авторизация API Kaspersky Security для контейнеров. Для авторизации требуется выполнить следующие действия:
    1. Скопируйте токен API на странице Мой профиль.
    2. Укажите скопированное значение токена API в переменной API_TOKEN в конфигурационном файле Jenkinsfile.
  3. Проверка подлинности сервера приема данных в CI/CD с помощью СА-сертификата Ingress-контроллера. Для проведения проверки в конфигурационном файле Jenkinsfile укажите одну из следующих переменных:
    1. -e API_CA_CERT=${KCS_CA_CERT} – проверка будет проведена, и запускаемый в CI/CD сканер сможет убедиться в подлинности сервера приема данных.
    2. -e SKIP_API_SERVER_VALIDATION=true – проверка сервера приема данных с помощью СА-сертификата Ingress-контроллера проводиться не будет.
  4. Создание переменных окружения Jenkins.

    Чтобы создать переменные окружения, необходимо добавить в файл Jenkinsfile следующие строки:

    1. Добавьте информацию по реестру контейнеров, где находится сканер в следующем виде:

      LOGIN – имя учетной записи в реестре сканера

      PASS – пароль для реестра сканера

    2. Если вы настраиваете сканирование для приватного репозитория, для доступа сканера к образу укажите следующие авторизационные данные:

      COMPANY_EXT_REGISTRY_USERNAME – имя учетной записи в реестре сканируемого образа

      COMPANY_EXT_REGISTRY_PASSWORD – пароль для реестра сканируемого образа

  5. Добавление информации для запуска сканера. Информация для запуска сканера, содержащего базы уязвимостей и других вредоносных объектов, добавляется в конфигурационный файл Jenkinsfile в виде декларативного или скриптового пайплайна.

    Пример информации для запуска сканера в виде декларативного пайплайна

    Пример информации для запуска сканера в виде скриптового пайплайна

  6. Формирование артефакта для скачивания.

    Для получения результатов сканирования вы можете сформировать артефакт для скачивания в формате .HTML или .JSON. Формат артефакта вы можете указать в строке --stout, например:

    pipeline {

    agent any

    stages {

    stage('run scanner') {

    steps {

    sh 'docker login -u ${LOGIN} -p ${PASS} company.example.com'

    sh 'docker run -e API_BASE_URL=https://kcs.int.company.com -e SKIP_API_SERVER_VALIDATION=true -e API_TOKEN=${API_TOKEN} -e COMPANY_EXT_REGISTRY_USERNAME=${COMPANY_EXT_REGISTRY_USERNAME} -e COMPANY_EXT_REGISTRY_PASSWORD=${COMPANY_EXT_REGISTRY_PASSWORD} company.example.com:5050/company/kcs/scanner:v1.1.1-lite jfrog.company.com/demo-kcs/bad:bad-project-test --html --stdout > result.html'

    }

    }

    stage('archive') {

    steps {

    archiveArtifacts artifacts: 'result.html'

    }

    }

    }

    }

    Если необходимо сформировать артефакт в формате .JSON, строку --html --stdout > result.html'из приведенного выше примера требуется указать следующим образом:

    --json --stdout > result.json',

    и в строке archiveArtifacts artifacts: необходимо указать название файла в заданном вами формате: 'result.json'.

    Результаты сканирования можно получить в указанном вами формате, а также посмотреть в разделе РесурсыCI/CD.

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!