在 GitLab 中运行扫描器
要在 GitLab 中精简版 SBOM 模式下启动扫描器,需在 CI/CD 进程中配置镜像扫描时编辑 .gitlab-ci.yml 配置文件,如下所示:
- 添加在 CI/CD 中启动用于镜像扫描的扫描器的镜像相关信息,如下所示:
scan_image:
stage: scanner
image:
name:repo.cloud.example.com/repository/company/scanner:v.2.0.0-lite
entrypoint: [""]
pull_policy: always
- 指定编排平台标签,如下所示:
k8s
在提供的示例中,为 Kubernetes 指定了
k8s
标签,您也可以为其他受支持的编排平台指定标签。 - 指定内部版本 ID、扫描镜像的镜像仓库数据和用于安全连接到此仓库的证书、管道 ID 和授权来自卡巴斯基容器安全中的 CI/CD 扫描程序的请求的 API 令牌等变量,如下所示:
SCAN_TARGET: ${CI_REGISTRY_IMAGE}:master
COMPANY_EXT_REGISTRY_USERNAME: ${COMPANY_EXT_REGISTRY_USERNAME}
COMPANY_EXT_REGISTRY_PASSWORD: ${COMPANY_EXT_REGISTRY_PASSWORD}
COMPANY_EXT_REGISTRY_TLS_CERT: ${COMPANY_EXT_REGISTRY_TLS_CERT}
BUILD_NUMBER: ${CI_JOB_ID}
BUILD_PIPELINE: ${CI_PIPELINE_ID}
API_TOKEN:
<API 令牌值>
HTTP_PROXY
–<用于 HTTP 请求的代理服务器>
HTTPS_PROXY
–<用于 HTTPS 请求的代理服务器>
NO_PROXY
–<要从代理范围排除的域或合适的域掩码>
COMPANY_EXT_REGISTRY_TLS_CERT
变量中用于与镜像仓库进行安全连接的证书的详细信息以 .PEM 格式的字符串指定:
-----BEGIN CERTIFICATE-----\n...
证书详细信息
> ...\n-----END CERTIFICATE-----
。 - 如果需要,指定一个用于扫描解决方案的 API 证书的变量:
API_CA_CERT: ${KCS_CA_CERT}
如果未设置
API_CA_CERT
变量,则扫描将会开始但无法完成。 - 指定卡巴斯基容器安全的 API 主机服务器的网址:
API_BASE_URL:
<网址>
- 指定在扫描器用以下其中一种受支持的格式启动时创建构件的命令:
- 要生成 .JSON 格式的构件:
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --stdout > artifact-result.json
artifacts:
paths:
- artifact-result.json
- 要生成 .HTML 格式的构件:
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --html --stdout > artifact-result.html
artifacts:
paths:
- artifact-result.html
- 要生成 .SPDX 格式的 SBOM 构件:
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --spdx --stdout > artifact-result.spdx
artifacts:
paths:
- artifact-result.spdx
- 要生成 .JSON 格式的 SBOM 构件:
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --cdx --stdout > artifact-result.cdx.json
artifacts:
paths:
- artifact-result.cdx.json
- 要生成 .JSON 格式的构件: