657 字约 2 分钟
快速开始 用最小配置完成代码安全扫描的常见调整。
使用场景:扫描默认开箱即用,只在需要调整时才看本页: 排除第三方代码和构建产物、给某个能力单独指定忽略规则、临时关闭某项能力, 或用 include 拆分配置文件。字段的完整说明见 语法手册。
调整方式概览
配置分散在仓库根目录的 .scanignore 与 .cnb/security/ 下,按调整目的选择入口:
| 调整目的 | 配置入口 |
|---|---|
| 所有能力共用一套忽略规则 | 仓库根目录 .scanignore |
| 某个能力单独指定忽略规则 | 该能力的 scan.ignoreFrom |
| 关闭某个扫描能力 | 在该能力的 ignoreFrom 指定的文件中写入 **(见下文) |
| 配置过长需要拆分 | .cnb/security/code_scan_config.yml 的 include |
配置公共忽略规则
在仓库根目录新增 .scanignore,其中的 gitignore 风格路径规则默认应用到所有扫描能力:
.scanignore
# 仓库根路径
/go.mod
# 第三方代码
vendor/
node_modules/
# 测试装置
**/testdata/**
# 构建产物
dist/
build/仅需公共忽略规则时,无需创建 code_scan_config.yml。
按能力配置扫描范围
需要为某个能力使用不同的忽略规则时,通过 scan.ignoreFrom 指定文件:
.cnb/security/code_scan_config.yml
secrets:
scan:
ignoreFrom: .cnb/security/scanignore/secrets.cnb/security/scanignore/secrets
fixtures/
**/testdata/**secrets 改用指定文件后,其他能力继续使用根目录 .scanignore。 两个忽略文件不会合并:指定文件必须存在,并应包含该能力所需的全部规则。
关闭某个扫描能力
将对应能力的 ignoreFrom 指向一个内容为 ** 的文件,该能力即跳过所有路径。以关闭 secrets 为例:
.cnb/security/code_scan_config.yml
secrets:
scan:
ignoreFrom: .cnb/security/scanignore/disabled # 指向内容为 ** 的文件,secrets 跳过所有路径.cnb/security/scanignore/disabled
**拆分配置
配置较长时,可拆到独立的子文件中。所有 include 路径均相对仓库根目录解析:
.cnb/security/code_scan_config.yml
include:
- .cnb/security/checks/secrets.yml
- .cnb/security/checks/sca.yml.cnb/security/checks/secrets.yml
secrets:
scan:
ignoreFrom: .cnb/security/scanignore/secrets.cnb/security/checks/sca.yml
software-composition-analysis:
scan:
paths:
# 在根目录 .scanignore 的公共规则基础上,重新纳入指定路径
- "!third_party/our-fork/**"注意
include 路径必须相对仓库根目录,不支持 URL 或跨仓库引用。 include 文件会递归解析,单次最多 50 个。 更多规则见 配置文件。