Présentation
KubeLinter est un outil d'analyse statique Open Source, ou lint. Son rôle est de repérer les défauts de configuration et les erreurs de programmation dans les déploiements Kubernetes. Cet outil en ligne de commande analyse automatiquement les fichiers YAML et les charts Helm par rapport à la configuration de Kubernetes et aux bonnes pratiques de sécurité.
Origine de KubeLinter
La technologie Kubernetes, que l'on appelle aussi K8s, est bien connue pour ses excellentes capacités en matière de déploiement, de gestion et de mise à l'échelle d'applications conteneurisées. Par contre, elle n'est pas très réputée pour son efficacité en matière de sécurisation des conteneurs. D'ordinaire, les configurations pour Kubernetes sont définies dans des fichiers YAML que les utilisateurs peuvent facilement lire malgré leur complexité, et qui produisent des configurations valides à grande échelle. Dans ce type de fichiers, la validation statique seule ne permet pas de détecter toutes les erreurs et les violations, ce qui risque d'entraîner des problèmes de sécurité.
Or, la sécurité est un aspect essentiel.
D'après le rapport de 2021 de Red Hat sur l'adoption, la sécurité et les tendances du marché pour Kubernetes, plus de la moitié des personnes interrogées ont remis à plus tard le déploiement d'applications Kubernetes en production pour des raisons de sécurité : 94 % d'entre elles ont fait face à au moins un incident de sécurité lié à Kubernetes en 2020. La cause principale est d'origine humaine : dans environ 67 % des cas signalés, les incidents sont liés à des défauts de configuration saisis manuellement.
C'est là que KubeLinter entre en jeu.
L'outil lint, créé par StackRox fin 2020, juste avant son acquisition par Red Hat début 2021, a été conçu dans le but précis de lutter contre les erreurs de sécurité et d'améliorer la précision de la configuration des déploiements Kubernetes, notamment au début du processus de développement. Il effectue des vérifications des fichiers de configuration et peut s'utiliser en association avec des systèmes d'intégration continue (CI) pour simplifier le processus de mise à jour des fichiers YAML et des charts Helm, conformément aux bonnes pratiques DevSecOps.
Et parce que KubeLinter est un outil Open Source sous licence Apache 2.0, tous les utilisateurs de la communauté peuvent contribuer au projet.
Ressources Red Hat
Fonctionnement de KubeLinter
Pour vérifier que les clusters Kubernetes sont correctement configurés et que les bogues de programmation ont été résolus avant le déploiement, KubeLinter examine le chart et exécute une série de tests afin de s'assurer qu'il est bien construit et qu'il ne contient pas d'erreurs. Ensuite, l'outil envoie des messages d'erreur lint pour chaque cause qu'il trouve être à l'origine de l'échec de l'installation du chart. Il envoie également des messages d'avertissement dès qu'il détecte un élément qui ne correspond pas aux bonnes pratiques de sécurité.
L'outil KubeLinter a été conçu pour être facile à utiliser. Ses 40 vérifications lint intégrées détectent les défauts de configuration K8s les plus courants, comme l'exécution d'un conteneur en tant qu'utilisateur, les problèmes de sélecteurs, ou encore le stockage de données sensibles uniquement dans des secrets. Il prend en charge la configuration de vérifications personnalisées et permet aux utilisateurs de traiter les configurations comme du code, ce qui les aide à sécuriser l'application bien plus tôt dans le processus de développement.
Configuration de KubeLinter
KubeLinter est un outil hautement configurable. Les utilisateurs peuvent créer, activer et désactiver leurs propres règles personnalisées sans provoquer de changements majeurs dans les workflows et avec une analyse quasi instantanée des défauts de configuration et des violations de la sécurité.
KubeLinter peut être utilisé avec tous les outils d'intégration continue et de distribution continue (CI/CD), notamment GitHub Action, Jenkins, CircleCI et Travis CI. Il peut aussi vérifier et identifier automatiquement les erreurs présentes dans les configurations d'applications. Les développeurs consacrent ainsi moins de temps à la correction des problèmes, qui peuvent être détectés automatiquement dans l'ensemble du pipeline de production.
Les vérifications par défaut de KubeLinter sont axées sur la sécurité et doivent être activées manuellement par les utilisateurs pour configurer Kubernetes de manière sécurisée.
Le téléchargement et l'installation de KubeLinter ne prennent que quelques minutes. Cet outil binaire et autonome a été développé avec le langage de programmation Go lisible par l'homme. Il se compose de plusieurs des paquets de l'outil kubectl, auquel on peut le comparer.
Pour installer KubeLinter, il est possible de créer en local l'interface en ligne de commande avec Go, d'utiliser des conteneurs Docker préconçus, de passer par Homebrew, ou de le faire à partir du code source. Après l'installation, l'outil doit être relié aux charts Helm et fichiers YAML de Kubernetes pour obtenir des résultats presque instantanément.
Et parce que c'est un outil Open Source, les développeurs sont assurés de bénéficier des changements apportés au fur et à mesure de son développement. Ces changements peuvent concerner le format des fichiers de configuration, les options et l'utilisation des commandes.
Le blog officiel de Red Hat
Découvrez les dernières informations concernant notre écosystème de clients, partenaires et communautés.