配置 Checkov 扫描

概述

Checkov 是一款用于“基础设施即代码”( IaC )的静态代码分析工具。 它会扫描云配置,以查找安全和合规性方面的配置错误。 它确保:

  • “基础设施即代码”符合安全最佳实践。
  • 扫描诸如开放端口、硬编码的密钥、权限过高以及不安全的配置等问题。
  • 可在各类云平台和容器编排系统上运行,有助于规避部署过程中的安全风险。

此扫描是 PR(应用预览版)、CI 和 CC 管道中“合规性检查”阶段的一部分。

启用和配置 Checkov 扫描

您可以通过两种不同的框架运行 Checkov 扫描:

  • Terraform 计划:对生成的 Terraform 计划运行 Checkov 扫描。 要启用此功能,请将 opt-in-checkov 作为文本属性添加到管道或触发器属性中,并将值设置为非空字符串( 0 除外)。
  • Kubernetes: 对 Kubernetes 的清单文件运行 Checkov 扫描。 要启用此功能,请将 opt-in-checkov-kubernetes 作为文本属性添加到管道或触发器属性中,并将值设置为非空字符串( 0 除外)。 注意:由于 Code Risk Analyzer(CRA)已 弃用,Checkov Kubernetes 扫描可作为 cra-deploy-analysis 的替代方案,并能生成 com.ibm.code_cis_check 中的证据。

启用这些功能会从合规性检查阶段运行以下脚本:

如果环境中尚未安装 Checkov,这些脚本会自动安装它。

契诃夫参数

下表中列出的管道环境属性与密钥用于自定义 Checkov 扫描。

契诃夫参数
参数名称 说明
checkov-args 直接传递给 checkov 命令的其他参数。
tf-dir 源代码仓库中 main.tf 所在的位置或路径。 (默认值为 .)
checkov-version 如果环境中尚未安装 Checkov,请安装此版本。 (默认安装最新版本)
checkov-prisma-api-url Prisma Cloud API URL。 必须是 *.prismacloud.io*.prismacloud.cn*.bridgecrew.cloud 格式的域名。
checkov-bc-api-key Bridgecrew API 密钥或 Prisma Cloud 访问密钥。 使用 get_secret 检索此内容。

契诃夫证据及附件

DevSecOps 管道会将证据上传至存储库,并将该证据纳入变更请求的证据摘要中。

Checkov Terraform 计划证据

下表列出了 Terraform Plan checkov 扫描的证据详情。

检查 Checkov Terraform 计划中的证据字段及其值
字段
tool type checkov
evidence type com.ibm.code_vulnerability_scan
asset type repo
attachments Checkov 结果 JSON 文件
契诃夫 Kubernetes 证据

下表列出了 Kubernetes 检查扫描的证据详情。

Checkov Kubernetes 证据字段和值
字段
tool type checkov
evidence type com.ibm.code_cis_check
asset type repo
attachments Checkov 结果 JSON 文件

查看您的扫描结果

您可以通过以下方法查看扫描结果: