Jenkins NeuVector Vulnerability Scanner 插件配置与使用
本文永久链接: https://www.xtplayer.cn/neuvector/jenkins-neuvector-plugin-configuration-and-usage/
插件概览
NeuVector Vulnerability Scanner 插件是 NeuVector 容器安全平台的重要组成部分,旨在帮助 DevOps 团队在 CI/CD 流水线的构建阶段(Build Phase)发现容器镜像中的安全漏洞。通过在 Jenkins 中集成该插件,可以在镜像推送到仓库或部署到生产环境前,自动执行漏洞扫描,并根据严重程度决定构建的成败。
该插件支持两种核心扫描模式:
- Controller & Scanner 模式:适用于企业级生产环境,需部署 NeuVector Controller 和 Scanner,支持集中策略管理和准入控制。
- Standalone Scanner 模式:轻量级模式,无需部署 Controller 和许可证,直接在 Jenkins 节点上动态启动扫描器,适合快速验证。
NeuVector 部署
这里仅以 Controller & Scanner 模式为例,它将基于 Rancher/Kubernetes 方式部署(生产推荐)。
登录 rancher ui,切换到需要安装 NeuVector App 的集群,比如 local 集群,再切换到 集群|tool 页面。
找到 NeuVector App,点击右上角三个点菜单,然后点击安装。
- 选择需要安装的版本、安装到哪个项目、勾选并配置 Rancher 系统容器镜像的容器镜像仓库用以从指定镜像仓库中拉取镜像。接着点击右下角的下一步。
NeuVector App 参数配置
不同的架构配置会有所差异
通过域名去访问 NeuVector Controller
- 在后期与 NeuVector Vulnerability Scanner 插件的对接中,需要 NeuVector Controller URL 为 https 地址。因此如果配置 NeuVector ingress,需要提前创建 ssl 证书密文。
- 可以根据文档 https://open-docs.neuvector.com/5.2/configuration/console/replacecert/#generate-and-use-self-signed-certificate-pkcs8-or-pcks1 中的方法生成自签名 ssl 证书,或者使用你自己创建的自签名 ssl 证书或者购买的权威授信 ssl 证书。
- 在 rancher ui 上切换到 存储|密文,然后在 cattle-neuvector-system 命名空间中创建一个 TLS 类型的证书密文。或者使用以下命令手动创建 ssl 证书,替换其中的 crt、key 文件路径。
kubectl create secret generic nv-api-https-cert -n cattle-neuvector-system \ |
SSL 证书密文创建完成后,回到 NeuVector App 配置界面。在 Ingress Configuration 中勾选 Controller Ingress Status,并设置 Controller Ingress Host。
在 Service Configuration 配置中,Controller REST API Service Type 选择 clusterip 或者 NodePort。如果设置为 NodePort,会自动创建一个 NodePort 类型的 svc。NeuVector Controller API 也可以通过此 NodePort 地址进行访问。
表单模式中无法为 ingress 配置 ssl 证书,需要点击 编辑 YAML 切换到 YAML 编辑模式。找到
controller.ingress.tls层级,大约在 111 行前后。将 tls 设置为 true,默认为 false,并设置 secretName 为前面创建的 ssl 证书密文。
以上配置保存之后,或自动生成带有证书的 ingress 配置,即可通过 https 域名访问 NeuVector Controller API。
通过 NodePort 访问 NeuVector Controller API
- 如果不需要通过域名访问 NeuVector Controller API,那么不需要启用 Ingress Configuration 配置。 Service Configuration 配置中,Controller REST API Service Type 选择 NodePort。
Jenkins 安装与配置初始化
可以参考 Jenkins 官方文档 https://www.jenkins.io/doc/book/installing/ 进行安装,这里以 Linux Ubuntu/Debian 主机安装为例。
安装 Java
sudo apt update
sudo apt install fontconfig openjdk-21-jre
java -version安装 Jenkins
# 添加 Jenkins 仓库密钥
sudo wget -O /etc/apt/keyrings/jenkins-keyring.asc \
https://pkg.jenkins.io/debian-stable/jenkins.io-2026.key
# 添加 Jenkins 仓库
echo "deb [signed-by=/etc/apt/keyrings/jenkins-keyring.asc]" \
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
# 安装 Jenkins
sudo apt update
sudo apt install jenkins启动 Jenkins
sudo systemctl start jenkins
sudo systemctl enable jenkins # 设置开机自启
sudo systemctl status jenkins # 检查状态防火墙配置(如需开放端口):
# 默认 Jenkins 端口为 8080
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload初始化设置
访问
http://node-ip:8080。获取初始管理员密码:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
按照向导完成插件安装(建议选择”安装推荐的插件”)
创建管理员账户,或者以 admin 继续
配置 Jenkins URL 。
NeuVector Vulnerability Scanner 插件安装与配置
插件安装
- 登录 Jenkins,点击右上角设置图标,进入插件管理。
- 切换到
Available选项卡,在过滤框中输入 “NeuVector Vulnerability Scanner”。 - 勾选插件并点击
Install without restart进行安装。
插件配置
登录 Jenkins,点击右上角设置图标,进入系统配置
NeuVector Vulnerability Scanner
- NeuVector Scanner Source Name: 根据喜好设置。
- NeuVector Scanner Registry URL: 拉取 neuvector/scanner:latest 镜像的镜像仓库,默认为 docker.io。如果无法访问 docker.io 或者从 docker.io 拉取镜像缓慢,可以设置为 registry.rancher.com。如果是离线环境,此处需要设置为私有镜像仓库地址。
- NeuVector Scanner Image Repository: 一般保持默认。
- NeuVector Scanner Registry User、NeuVector Scanner Registry Password: 如果是内部镜像仓库并且镜像 repo 设置为私有,那么需要登录才可以拉取镜像,此处设置有权限下载镜像的账号名称和密码。
Controller Endpoint Url
- Nickname: 根据喜好设置。
- NeuVector Controller REST API URL: 前面步骤中配置的 NeuVector ingress 域名或者 NeuVector NodePort 地址,需要以 https。
- NeuVector Username、NeuVector Password:NeuVector 默认用户名和密码为 admin:admin (https://open-docs.neuvector.com/configuration/console/#default-username-and-password),根据实际情况填写此配置。
- NeuVector Server API Key: 登录 NeuVector 原生 ui,在 Settings > Users, API Keys & Roles 中创建 API Key。
- Skip API Key check:当前 NeuVector Vulnerability Scanner 插件支持两种认证模式,用户名和 API KEY。如果勾选此选项,将禁用 API key 认证。
- NeuVector Server Certificate:可以保持默认。
- Skip TLS certificate check:如果 NeuVector Controller 是使用 NodePort,或者 NeuVector Controller ingress 使用的是自签名 ssl 证书。建议勾选此处以跳过 CA 校验。
- Timeout minutes: 默认 1 分钟,建议增加超时时间。如果镜像比较大拉取时间较久,超时后将导致 Jenkins 任务失败。
- 最后点击 Test Connection,如果显示 Connection Success 说明配置正确。
- 也可以添加多个 Controller Endpoint URL,在 Jenkins Pipeline 配置中根据需要进行选择。
Registry
添加镜像仓库认证配置信息,用以拉取需要扫描的镜像。
- Nickname:根据喜好设置。
- Registry URL:镜像仓库地址,需要为 https 地址。
- Registry Username、Registry Password:镜像仓库的用户名和密码。
Pipeline 配置
在 Jenkins 首页,点击左上角的新建任务。
输入任务名称,并选择类型,比如选择第一个流水线。
在流水线定义中,选择 Pipeline script,并输入脚本内容
node ("") {
stage('Scan image') {
neuvector controllerEndpointUrlSelection:
'nv-api',
nameOfVulnerabilityToExemptFour: '',
nameOfVulnerabilityToExemptOne: '',
nameOfVulnerabilityToExemptThree: '',
nameOfVulnerabilityToExemptTwo: '',
nameOfVulnerabilityToFailFour: '',
nameOfVulnerabilityToFailOne: '',
nameOfVulnerabilityToFailThree: '',
nameOfVulnerabilityToFailTwo: '',
numberOfHighSeverityToFail: '',
numberOfMediumSeverityToFail: '',
registrySelection: 'jcr',
repository: 'rancher/rancher',
scanTimeout: 1000,
sendReportToController: true,
tag: 'v2.13.4',
scanLayers: true
}
}更多脚本配置参数请参考文档 https://plugins.jenkins.io/neuvector-vulnerability-scanner/#plugin-content-controller--scanner 。


