配置与 Jenkins CI / CD 的集成包括以下步骤:
printf "login:password" | openssl base64 -A
其中 login 和 password 是卡巴斯基容器安全制造商的镜像仓库中账户的用户名和密码。
-e API_CA_CERT=${KCS_CA_CERT}表示身份验证已执行,并且在 CI/CD 中启动的扫描器可以确保接收服务器是真实的。 -e SKIP_API_SERVER_VALIDATION=true表示不使用 Ingress 控制器的 CA 证书对接收服务器进行身份验证。要创建环境变量,请将以下行添加到 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 格式的下载构件,以接收扫描结果。您可以在 --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: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”部分查看。