IBM Cloud Docs
提高 DevSecOps 中的合规性管道性能

提高 DevSecOps 中的合规性管道性能

启用并行以确保管道任务在 DevSecOps 工具链中同时运行。

准备工作

直接使用 IBM管理的工作程序或 TAAS 管理的工作程序,因为这是先决条件步骤。

要使用专用工作程序,请确保工作程序节点的管道必须是 Tekton V v0.45 或更高版本。 有关更多信息,请参阅 安装指示信息

在 DevsecOps 中启用并行

要在 DevsecOps中启用并行,请执行以下步骤:

  1. 转至 PR,CI,CD 或 CC 管道的 触发器 页面。
  2. 单击存储库条目上的 操作 图标 "操作" 图标,然后单击 编辑
  3. 将分支更新为 open-v10,然后单击 更新

管道定义
图 1。管道定义

PR 管道结构

PR 管道对给定应用程序存储库的拉取请求运行合规性检查,并充当合并到主分支的保护。 通过打开或更新针对主分支的拉取请求来触发 PR 管道。

有关更多信息,请参阅 PR 管道文档

表 1. PR 管道结构的阶段以及每个阶段的描述
PR 管道阶段 阶段描述
code-pr-start 克隆与拉取请求关联的 GitHub 存储库。
code-setup 设置构建和测试环境以准备其余管道阶段。
code-detect-secrets 运行以检测应用程序代码上的私钥扫描。
code-unit-tests 对与 PR 关联的代码运行单元测试。
code-compliance-checks Code Risk Analyzer (CRA) 和 Mend Unified Agent 扫描开放式源代码依赖关系上的漏洞检测以及应用程序存储库上的任何其他合规性检查。
code-pr-finish 合并管道状态。 如果先前的运行合规性检查失败,那么阶段将失败。 此阶段是“故障安全”行为,用于确保先修复合规性问题,然后才能合并 PR 和/或部署构建。

PR 管道结构
图 2。 PR 管道结构

CI 管道结构

CI 管道从应用程序存储库构建可部署工件。 它扫描,测试和标记构建的工件,同时收集要在库存中发布的每个阶段的证据,并通过部署和变更管理进行跟踪。

有关更多信息,请参阅 CI 管道文档

表 2. CI 管道结构的阶段以及每个阶段的描述
CI 管道阶段 阶段描述
code-ci-start 设置管道环境,包括将配置和应用程序存储库克隆到管道本地文件系统
code-setup 设置构建和测试环境以准备其余管道阶段。
code-detect-secrets 对应用程序代码运行检测密钥扫描。
code-unit-tests 对应用程序代码运行单元测试和应用程序测试。
code-peer-review 代码更改的同级复审。
code-static-scan 对应用程序代码运行静态扫描。
code-compliance-checks Code Risk Analyzer (CRA) 和 Mend Unified Agent 扫描开放式源代码依赖关系上的漏洞检测以及应用程序存储库上的任何其他合规性检查。
build-artifact 构建工件和映像。
build-sign-artifact 对构建的工件和图像进行签名。
build-scan-artifact 使用 Vulnerability Advisor扫描容器映像。
deploy-dev 将构建的工件部署到开发环境。
code-dynamic-scan 在部署到集群的应用程序上运行 OWASP-Zap 动态扫描。
deploy-acceptance-tests 在开发环境上对已部署的已构建工件运行验收和集成测试。
deploy-release 将构建的工件添加到将由 Continuous Delivery 管道使用的库存。
code-ci-finish 收集,创建日志文件,工件和证据并将其上载到证据锁定程序。 如果有任何合规性检查。 先前在管道中运行失败,此阶段失败。 此阶段是“故障安全”行为,用于确保在可以合并 PR 和/或部署构建之前修复合规性问题。

CI 管道结构
图 3。 CI 管道结构

CD 管道结构

CD 管道将编译证据和变更请求摘要的所有内容。 它将构建部署到环境 (例如,登台或生产),同时将所有证据上载到证据锁定程序。

有关更多信息,请参阅 CD 管道文档

表 3. CD 管道结构的阶段以及每个阶段的描述
CD 管道阶段 阶段描述
prod-start 计算部署增量
prod-setup 设置构建和测试环境。
prod-verify-artifact 验证 CI 管道中构建的映像的特征符。
prod-change-request 创建和核准变更请求并实现状态。
prod-deployment 将构建部署到环境。
prod-acceptance-tests 运行验收测试。
prod-finish 发布验收测试,部署记录,收集 CycloneDX SBOM 和关闭变更请求。

CD 管道结构
图 4。 CD 管道结构

CC 管道结构

CC 管道对已部署的工件及其源存储库执行定期扫描。 它会扫描库存中的最新已部署状态,并在突发事件存储库中创建或更新突发事件问题。

有关更多信息,请参阅 CC 管道文档

表 4. CC 管道结构的阶段以及每个阶段的描述
CC 管道阶段 阶段描述
cc-start 克隆存储库,基于标记处理库存以及注册存储库和工件
cc-setup 在以后的阶段中设置扫描的管道环境。 这可能包括安装构建依赖关系或执行 Maven 构建
cc-detect-secrets 运行以扫描和检测应用程序代码中的私钥
cc-static-scan 对应用程序代码运行静态扫描代码
cc-dynamic-scan 在部署到集群的应用程序上运行 OWASP-Zap 动态扫描
cc-compliance-checks Code Risk Analyzer (CRA) 和 Mend Unified Agent 扫描开放式源代码依赖关系上的漏洞检测以及应用程序存储库上的任何其他合规性检查。
cc-scan-artifact 使用 Vulnerability Advisor扫描容器映像。
cc-finish 收集,创建日志文件,工件和证据并将其上载到证据锁定程序。 如果先前在管道中运行的任何合规性检查失败,那么此阶段将失败。 此阶段具有“故障安全”行为,以确保先修复合规性问题,然后才能合并 PR 和/或部署构建。

CC 管道结构
图 5。 CC 管道结构

Dev 方式管道结构

Dev 方式管道仅用于测试管道。

它们缺少以下功能:

  • 证据收集
  • 基于证据的选通。

开发方式管道结构未准备好生产。

开发方式 PR 管道结构
图 6。 Dev 方式 PR 管道结构

开发方式 CI 管道结构
图 7。 Dev 方式 CI 管道结构

在 DevsecOps 中禁用并行

要在 DevsecOps中禁用并行性,请执行以下步骤:

  1. 转至 PR 或 CI 或 CC 管道的 触发器 页面。
  2. 单击存储库条目上的 操作 图标 "操作" 图标,然后选择 编辑
  3. 将分支更新为 open-v9,然后选择 更新