云原生DevOps运维【免费下载链接】devtronThe only Kubernetes dashboard you need项目地址https://gitcode.com/gh_mirrors/dev/devtron点击查看免费下载本篇介绍 Devtron 的Code Scan插件如何接入 CI 工作流在 Build 流水线的 Pre-build stage 中添加该任务后Devtron 会调用 Trivy 对源代码进行扫描在构建容器镜像之前检测漏洞Vulnerabilities、错误配置Misconfigurations、许可证风险License Risks和泄露的密钥Exposed Secrets。读完后你将掌握插件接入的完整操作步骤、任务输入/输出变量的配置约定以及该插件背后依赖的安全扫描模块与扫描工具元数据在源码中的对应实现。一、插件定位与前置条件Devtron 提供 DevSecOps 能力其安全扫描体系分为三类Image Scan、Code Scan、Kubernetes Manifest Scan见 安全特性文档。Code Scan 属于其中在构建产物之前扫描源代码的一环扫描时机代码提交之后、构建镜像之前。尽早发现问题避免问题带入镜像后修复成本更高默认扫描工具Devtron 集成Trivy可检测四类问题——Vulnerability、License Risks、Misconfigurations、Exposed Secrets扫描结果展示位置应用App Details页面的Code Scan区域。Code Scan 是 Devtron 官方插件列表中的一员见 插件列表 中的 Code-Scan 条目本文即对应 docs/user-guide/plugins/code-scan.md 的完整指引。前置条件Prerequisites在集成 Code Scan 插件之前必须先通过 Devtron 的Stack Manager安装Vulnerability Scanning (Trivy/Clair)集成。这一前置要求在源码中有直接对应Devtron 将漏洞扫描建模为安全模块模块名为security.trivyTrivy与security.clairClair并带有对应的工具版本号pkg/module/bean/bean.go 中定义了ModuleNameSecurityClair ModuleName security.clair、ModuleNameSecurityTrivy ModuleName security.trivy以及TRIVY_V1 V1、CLAIR_V4 V4等工具版本常量pkg/module/ModuleService.go 在模块启用流程中对security.trivy固定使用TRIVY_V1版本、对security.clair使用CLAIR_V4版本源码注释说明 Clair V2 已不再使用。因此若未在 Stack Manager 中启用该扫描模块Code Scan 任务将没有可用的底层扫描服务。二、接入步骤Workflow Editor 实操以下 8 个步骤完整继承自原文档在已启用 Vulnerability Scanning 集成的前提下操作进入Applications→Devtron Apps点击目标应用进入应用详情页进入App Configuration→Workflow Editor点击New Workflow选择Build and Deploy from Source Code工作流类型在Create build pipeline窗口填写必填字段进入Pre-build stage。提示如果已经配置了工作流则直接编辑edit现有的 build pipeline再导航到Pre-build stage即可无需新建工作流。在TASKS区域点击 Add task按钮在插件列表中选择Code Scan插件按下文用户输入章节填入相应值最后点击Update Pipeline保存流水线。选择 Pre-build stage 的意义在于扫描发生在 CI 构建之前属于 安全特性文档 中Before Building Artifact描述的扫描时机。按该文档的说明你可以基于扫描结果通过插件的Pass/Failure Condition设置决定是否让 CI 继续执行例如仅当高危漏洞数为 0 时才允许构建镜像从而把代码扫描作为流水线的质量门禁。三、用户输入User Inputs详解Task Name任务名称为任务命名用于在流水线任务列表中区分不同任务。例如Code Scanning。Description任务描述简要说明任务用途及选择该插件的原因信息量以他人能理解该任务目的为标准。例如The Code Scan plugin is integrated for scanning the in-code vulnerabilities.Input Variables输入变量Code Scan 插件不需要任何输入变量——这与需要指定规则集、项目 Key 等参数的其他扫描类插件如 SonarQube、Codacy见 Codacy不同Code Scan 开箱即用无需额外配置即可基于 Trivy 完成四类检测。Output Variables输出变量Code Scan 不会生成任何输出变量。这意味着它不会向流水线下游如 Build stage、其他任务注入可引用的变量其产物是写入 App Details 页Code Scan区域的扫描结果数据而不是供模板渲染使用的变量。配置完成后点击Update Pipeline即可完成任务接入。四、源码侧印证扫描结果的落库与查询Code Scan 的结果最终归入 Devtron 统一的策略治理Policy Governance扫描数据体系。从源码结构看pkg/policyGovernance/security/scanTool/ScanToolMetadataService.go 负责扫描工具Trivy/Clair 等的元数据管理与 Stack Manager 安装的 Vulnerability Scanning 模块一一对应pkg/policyGovernance/security/imageScanning/ImageScanService.go 实现了扫描执行详情FetchExecutionDetailResult、漏洞明细列表FetchVulnerabilityListing、按严重度统计CalculateSeverityCountInfo区分 critical/high/moderate/low/unknown以及按严重程度排序过滤等能力是 App Details 页面扫描结果视图的数据来源部署前的漏洞状态校验入口为GetArtifactVulnerabilityStatus支撑根据扫描结果决定能否继续的门禁逻辑。另外pkg/pipeline/types/CiCdConfig.go 中定义了扫描服务的连接与重试配置如IMAGE_SCANNER_ENDPOINT指向 image-scanner 微服务IMAGE_SCAN_MAX_RETRIES默认 3 次、IMAGE_SCAN_RETRY_DELAY默认 5 秒说明扫描执行是通过 Devtron 的扫描微服务进行的Dashboard 端负责编排与结果展示。五、小结项目说明插件名称Code Scan扫描工具Trivy需在 Stack Manager 安装 Vulnerability Scanning (Trivy/Clair) 集成检测类型Vulnerabilities、Misconfigurations、License Risks、Exposed Secrets接入位置CI 流水线 Pre-build stage通过 Add task 添加输入变量无输出变量无结果展示在 App Details 的 Code Scan 区域保存动作点击 Update PipelineCode Scan 插件以零输入变量、零输出变量的轻量形态把 Trivy 的代码级扫描嵌入 Devtron 工作流它不向下游传递变量而是以扫描结果本身作为交付物配合 Pass/Failure Condition 可作为 CI 阶段的安全门禁。如需进一步了解 Devtron 完整的扫描体系Image Scan、Manifest Scan、安全策略可继续阅读 Security Features。赞分享云原生DevOps运维【免费下载链接】devtronThe only Kubernetes dashboard you need项目地址https://gitcode.com/gh_mirrors/dev/devtron点击查看免费下载相关推荐Devtron CI 流水线 Pre/Post-Build 阶段实战预设插件与自定义脚本配置指南Devtron CI 流水线 Pre/Post Build 阶段实战预设插件与自定义脚本配置指南 本文基于 Devtron 开源仓库 关联文档 https:云原生DevOps运维Devtron 集成 SonarQube v1.1.0 插件实现 CI 流水线持续代码质量与安全扫描Devtron 集成 SonarQube v1.1.0 插件实现 CI 流水线持续代码质量与安全扫描 文章导读 本文围绕 Devtron 内置的 Sonarq云原生DevOps运维Devtron Semgrep 插件接入指南在 CI 流水线中落地静态代码扫描Devtron Semgrep 插件接入指南在 CI 流水线中落地静态代码扫描 Semgrep 是 Devtron 提供的一款 PRESET预置CI 插件云原生DevOps运维创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考