sse-secure-systems/connaisseur

GitHub: sse-secure-systems/connaisseur

一个 Kubernetes 准入控制器,通过验证容器镜像签名来确保集群中仅部署可信且未被篡改的镜像。

Stars: 470 | Forks: 63

[![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/sse-secure-systems/connaisseur/blob/master/LICENSE) [![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/connaisseur)](https://artifacthub.io/packages/search?repo=connaisseur) [![cicd](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/7adbde1c3c194851.svg)](https://github.com/sse-secure-systems/connaisseur/actions/workflows/02_push.yml) [![nightly](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/9013e09afd194853.svg)](https://github.com/sse-secure-systems/connaisseur/actions/workflows/05_nightly.yaml) [![codecov](https://codecov.io/gh/sse-secure-systems/connaisseur/branch/master/graph/badge.svg)](https://codecov.io/gh/sse-secure-systems/connaisseur) ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/4f728ab910194854.svg) 一个用于将容器镜像签名验证和信任锚定集成到集群中的 Kubernetes admission controller。 **:point_right: 完整文档可在[此处](https://sse-secure-systems.github.io/connaisseur/)获取 :book:** **:point_right: 欢迎通过 [GitHub Discussions](https://github.com/sse-secure-systems/connaisseur/discussions) 联系我们 :speech_balloon:** ## 什么是 Connaisseur? Connaisseur 确保 Kubernetes 集群中容器镜像的完整性和来源。 为此,它会拦截发送到 Kubernetes 集群的资源创建或更新请求,识别所有容器镜像,并根据预配置的公钥验证其签名。 根据验证结果,它会接受或拒绝这些请求。 Connaisseur 基于三个核心价值观开发:*安全性*、*易用性*、*兼容性*。 它的构建旨在可扩展,目前旨在支持以下签名解决方案: - [Notary V1](https://github.com/theupdateframework/notary) / [Docker Content Trust](https://docs.docker.com/engine/security/trust/) - [Sigstore](https://sigstore.dev/) / [Cosign](https://github.com/sigstore/cosign) - [Notary V2](https://github.com/notaryproject/nv2) (计划中) 它提供了若干附加功能,例如: - [告警](docs/features/alerting.md):*根据验证结果发送告警* - [检测模式](docs/features/detection_mode.md):*警告但不阻止无效镜像* - [命名空间验证](docs/features/namespaced_validation.md):*将验证限制在特定的命名空间* ## 快速开始 开始验证镜像签名仅需几分钟时间: ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/9672363998194855.gif) Connaisseur 预配置了其自身仓库和 [Docker 官方镜像](https://docs.docker.com/docker-hub/official_images/)的公钥(官方镜像可在[此处](https://hub.docker.com/search?q=&type=image&image_filter=official)找到)。 可以通过 `helm/values.yaml` 对其进行完全配置。 为了快速开始,请克隆 Connaisseur 仓库: ``` git clone https://github.com/sse-secure-systems/connaisseur.git ``` 接下来,通过 [Helm](https://helm.sh) 安装 Connaisseur: ``` helm install connaisseur helm --atomic --create-namespace --namespace connaisseur ``` 安装完成后,您就可以开始了。 可以通过官方 Docker 镜像(如 `hello-world`)来测试成功的验证: ``` kubectl run hello-world --image=docker.io/hello-world ``` 或者使用我们签名的 `testimage`: ``` kubectl run demo --image=docker.io/securesystemsengineering/testimage:signed ``` 两者都会返回 `pod/ created`。然而,当尝试部署未签名的镜像时: ``` kubectl run demo --image=docker.io/securesystemsengineering/testimage:unsigned ``` Connaisseur 会拒绝该请求并返回错误 `(...) Unable to find signed digest (...)`. 由于上述镜像是使用 Docker Content Trust 签名的,您可以使用 `docker trust inspect --pretty ` 检查信任数据。 要卸载 Connaisseur,请使用: ``` helm uninstall connaisseur --namespace connaisseur ``` 恭喜 :tada: 您刚刚验证了集群中的首批镜像! 要开始配置和验证您自己的镜像与签名,请遵循我们的[安装指南](https://sse-secure-systems.github.io/connaisseur/latest/getting_started/)。 ## 讨论、支持与反馈 我们希望根据社区的需求来指导 Connaisseur 的开发,我们期待您的反馈,并在您需要支持时乐于提供帮助!因此,请随时通过 [GitHub Discussions](https://github.com/sse-secure-systems/connaisseur/discussions) 与我们联系。 ## 安全政策 我们感谢任何关于漏洞报告的社区支持!如何提交报告在我们的[安全政策](docs/SECURITY.md)中进行了描述。 ## 联系方式 您可以通过电子邮件 [connaisseur@securesystems.dev](mailto:connaisseur@securesystems.dev) 联系我们。
标签:Apache-2.0, DCT, DevSecOps, Docker, EVTX分析, EVTX分析, Lerna, Notary, PyVis, Web截图, XML注入, 上游代理, 准入控制器, 子域名突变, 安全防御评估, 完整性校验, 容器安全, 文本排版, 策略执行, 请求拦截, 逆向工具, 透明加密, 镜像来源, 镜像签名验证