Pas un remplaçant de Kyverno.
Kyverno régit toutes les ressources de votre cluster. Attestkeep n'en régit qu'une, l'image, et garde la trace de ce qu'il a décidé. Les deux se recoupent sur une seule règle, s'installent côte à côte sans conflit, et si vous utilisez déjà Kyverno, continuez à l'utiliser.
Ce qu'est Kyverno
Kyverno est le moteur de policies de Kubernetes, et ce titre n'a rien de complaisant : la CNCF l'a promu au statut graduated le 16 mars 2026, le niveau de Kubernetes, Prometheus, Envoy et Helm. Il valide, modifie, génère et nettoie des ressources de tout type ; ses policies sont des ressources Kubernetes, pas un langage qu'il faut d'abord apprendre ; il est publié sous Apache-2.0, sans licence à acheter.
Il vérifie aussi les images de container. Ses règles verifyImages et la plus récente ImageValidatingPolicy contrôlent les signatures et les attestations cosign (avec une clé publique, ou en keyless par rapport à une identité et un émetteur) et refusent un pod dont l'image ne porte pas ce que la policy exige. C'est une vraie sécurité d'image, et elle est gratuite. Quiconque prétend le contraire cherche à vous vendre quelque chose.
Où ils se recoupent
Sur une règle : cette image est-elle signée par quelqu'un en qui nous avons confiance ? Les deux projets y répondent à l'admission, les deux utilisent les formats de cosign, les deux fonctionnent avec une clé ou une identité keyless. Si la vérification de signature est tout ce dont vous avez besoin, Kyverno le fait déjà et vous n'avez pas besoin de nous pour cela.
La jonction
Un moteur de policies évalue la requête qu'il a devant lui. Il peut lire une attestation produite par quelqu'un d'autre et raisonner sur son contenu. Mais produire cette attestation, tenir à jour une base de vulnérabilités, rescanner une image admise il y a trois semaines parce qu'une CVE est sortie hier, et garder l'historique de chaque verdict pour pouvoir rendre compte d'une période : rien de cela n'est le travail d'un moteur de policies, et Kyverno ne le prétend pas.
C'est cette jonction que les équipes comblent avec un second outil et un pipeline entre les deux : un scanner qui écrit des rapports, un moteur qui les lit, et quelque part un tableur qui en fait quelque chose qu'un auditeur acceptera. Attestkeep, c'est cette jonction en une seule release : le scanner, la vérification de signature, le stockage des verdicts et le rapport sont le même programme, si bien que la trace d'une décision ne peut pas s'écarter de la décision.
Ce qu'Attestkeep n'a pas, c'est le reste de Kyverno. Il n'écrit pas de labels, ne génère pas de ressources, n'impose rien sur les replicas, les limites, les namespaces ou les network policies, et ne fait tourner aucun webhook de mutation. Hors de l'image, il n'a pas d'avis.
Tableau comparatif
| Fonction | Kyverno | Attestkeep |
|---|---|---|
| Vérification des signatures et attestations d'image à l'admission | Oui, avec clé et keyless | Oui, avec clé et keyless |
| Scanner de vulnérabilités propre | Non | Trivy, intégré à la release |
| Rescan des images déjà en service | Non | Toute image, chaque jour |
| Signalement des vulnérabilités exploitées connues | Non | CISA KEV |
| Policy sur d'autres ressources que les images | Toute ressource | Non |
| Modifier et générer des ressources | Oui | Non, validation seulement |
| Trace de chaque décision | Policy reports | Stockage des verdicts, sous le hash de la policy |
| Rapport de période selon un jeu de contrôles | Non | 13 instruments, 293 exigences citées |
| Console dans la même release | Non | Oui |
| Licence | Apache-2.0, gratuit | Community gratuite pour toujours ; éditions payantes : capacité, SSO, support |
Les combiner
Ils sont conçus pour cohabiter. Attestkeep n'enregistre que des webhooks de validation, aucun webhook de mutation : il n'y a donc aucun problème d'ordre d'admission à prévoir. Il se limite en outre aux namespaces que vous lui indiquez. Kyverno garde tout ce qu'il faisait déjà, et la répartition logique est celle que suggèrent les noms : Kyverno s'occupe de la forme de vos ressources, Attestkeep du contenu de l'image et de la trace qui explique pourquoi elle a été admise.
Si vous exprimez déjà une règle d'image dans Kyverno, laissez-la là ou déplacez-la ici, mais pas les deux. Deux moteurs qui refusent le même pod produisent deux messages différents pour un seul refus, et la personne d'astreinte ne lit que le premier.
Lequel vous faut-il
Kyverno seul est la bonne réponse quand le problème est la policy à l'échelle du cluster, quand la vérification de signature couvre tout ce dont vous avez besoin en sécurité d'image, ou quand un scanner et un processus de preuve existent déjà ailleurs et fonctionnent.
Ajouter Attestkeep se justifie dès qu'on vous pose une question à laquelle un moteur de policies ne peut pas répondre à partir de la requête qu'il a devant lui : qu'est-ce qui tournait le trimestre dernier, qu'avons-nous refusé et pourquoi, laquelle de ces vulnérabilités est réellement exploitée, et où se trouve l'enregistrement signé qui l'atteste. Le paquet de preuves est cette réponse, et la Community Edition est gratuite pour toujours : vous pouvez mettre les deux côte à côte sur votre propre cluster avant de décider quoi que ce soit.
Installez-le vous-même.
Créez un compte, confirmez votre e-mail avec le code envoyé, prenez la clé Community gratuite sur la page Licences et installez avec Helm.
Créer un compte