Настройка интеграции с Jenkins CI/CD состоит из следующих этапов:
printf "login:password" | openssl base64 -A
где login и password – имя и пароль учетной записи в реестре образов производителя Kaspersky Security для контейнеров.
-e API_CA_CERT=${KCS_CA_CERT}
– проверка будет проведена, и запускаемый в CI/CD сканер сможет убедиться в подлинности сервера приема данных. -e SKIP_API_SERVER_VALIDATION=true
– проверка сервера приема данных с помощью СА-сертификата Ingress-контроллера проводиться не будет.Чтобы создать переменные окружения, необходимо добавить в файл Jenkinsfile следующие строки:
LOGIN
– имя учетной записи в реестре сканера
PASS
– пароль для реестра сканера
COMPANY_EXT_REGISTRY_USERNAME
– имя учетной записи в реестре сканируемого образа
COMPANY_EXT_REGISTRY_PASSWORD
– пароль для реестра сканируемого образа
COMPANY_EXT_REGISTRY_TLS_CERT
в виде строки в формате .PEM:-----BEGIN CERTIFICATE-----\n... <
данные сертификата
> ...\n-----END CERTIFICATE-----
.
HTTP_PROXY
: <прокси-сервер для запросов по протоколу HTTP>
HTTPS_PROXY
: <прокси-сервер для запросов по протоколу HTTPS>
NO_PROXY
: <домены или соответствующие им маски для исключения из проксирования>
Пример информации для запуска сканера в виде декларативного пайплайна
Пример информации для запуска сканера в виде скриптового пайплайна
Для получения результатов сканирования вы можете сформировать артефакт для скачивания в формате .HTML или .JSON. Формат артефакта вы можете указать в строке --stdout
, например:
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:v2.0.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'
из приведенного выше примера требуется указать следующим образом:
--stdout > result.json'
,
и в строке archiveArtifacts artifacts:
необходимо указать название файла в заданном вами формате: 'result.json'.
Результаты сканирования можно получить в указанном вами формате, а также посмотреть в разделе Ресурсы → CI/CD.