[!IMPORTANT] KubeClarity 已被弃用,由 openclarity/openclarity 接替。
查看发布声明了解更多信息。
此项目不再接收更新。我们建议您迁移。
KubeClarity 是一个用于检测和管理容器镜像和文件系统的软件物料清单 (SBOM) 及漏洞的工具。它扫描运行时 K8s 集群和 CI/CD 管道,以增强软件供应链安全性。

KubeClarity 内容分析器集成了以下 SBOM 生成器:
KubeClarity 漏洞扫描器集成了以下扫描器:

添加 Helm 仓库 ```shell helm repo add kubeclarity https://openclarity.github.io/kubeclarity
保存 KubeClarity 默认 chart 值
helm show values kubeclarity/kubeclarity > values.yaml
检查 values.yaml 中的配置,并根据需要更新所需的值。
要启用和配置支持的 SBOM 生成器和漏洞扫描器,请检查 Helm values 中 "vulnerability-scanner" 部分下的 "analyzer" 和 "scanner" 配置。
使用 Helm 部署 KubeClarity ```shell helm install --values values.yaml --create-namespace kubeclarity kubeclarity/kubeclarity -n kubeclarity
或用于兼容 OpenShift Restricted SCC 的安装: ```shell
helm install --values values.yaml --create-namespace kubeclarity kubeclarity/kubeclarity -n kubeclarity --set global.openShiftRestricted=true
--set kubeclarity-postgresql.securityContext.enabled=false --set kubeclarity-postgresql.containerSecurityContext.enabled=false
--set kubeclarity-postgresql.volumePermissions.enabled=true --set kubeclarity-postgresql.volumePermissions.securityContext.runAsUser="auto"
--set kubeclarity-postgresql.shmVolume.chmod.enabled=false
3. 将端口转发到KubeClarity UI: ```shell
kubectl port-forward -n kubeclarity svc/kubeclarity-kubeclarity 9999:8080
注意
KubeClarity 需要以下 K8s 权限:
权限 原因 读取 CREDS_SECRET_NAMESPACE(默认:kubeclarity)中的 secret 允许您配置镜像拉取 secret 以扫描私有镜像仓库。 读取 KubeClarity 部署命名空间中的 ConfigMap 用于获取扫描作业的已配置模板。 列出集群范围内的 Pod 用于计算需要扫描的目标 Pod。 列出命名空间 用于在 K8s 运行时扫描 UI 中获取要扫描的目标命名空间。 在集群范围内创建和删除作业 用于管理将在其命名空间中扫描目标 Pod 的作业。
Helm 卸载 ```shell helm uninstall kubeclarity -n kubeclarity
清理资源
默认情况下,Helm 不会删除 StatefulSets 的 PVC 和 PV。运行以下命令可以全部删除:
kubectl delete pvc -l app.kubernetes.io/instance=kubeclarity -n kubeclarity
构建 UI 和 后端,并在本地启动后端(两种方式):
VERSION=test make docker-backend
docker run -p 8080:8080 -e FAKE_RUNTIME_SCANNER=true -e FAKE_DATA=true -e ENABLE_DB_INFO_LOGS=true -e DATABASE_DRIVER=LOCAL ghcr.io/openclarity/kubeclarity:test run
make ui && make backend
cp -r ./ui/build ./site
FAKE_RUNTIME_SCANNER=true DATABASE_DRIVER=LOCAL FAKE_DATA=true ENABLE_DB_INFO_LOGS=true ./backend/bin/backend run
在浏览器中打开 KubeClarity UI:http://localhost:8080/
KubeClarity 包含一个 CLI 工具,可以在本地运行,特别适用于 CI/CD 流水线。它允许分析镜像和目录以生成 SBOM,并扫描其中的漏洞。结果可以导出到 KubeClarity 后端。
``` make cli ``` 将 `./cli/bin/cli` 复制到你的 PATH 下,命名为 `kubeclarity-cli`。
用法:``` kubeclarity-cli analyze <image/directory name> --input-type <dir|file|image(default)> -o
示例:```
kubeclarity-cli analyze --input-type image nginx:latest -o nginx.sbom
Optionally a list of the content analyzers to use can be configured using the ANALYZER_LIST env
variable seperated by a space (e.g ANALYZER_LIST="<analyzer 1 name> <analyzer 2 name>")
Example:``` ANALYZER_LIST="syft gomod" kubeclarity-cli analyze --input-type image nginx:latest -o nginx.sbom
### 漏洞扫描