Resumen
KubeLinter es una herramienta open source de análisis estático, también conocida como lint o linter, que identifica los errores de configuración y programación en las implementaciones de Kubernetes. La herramienta de línea de comandos analiza de forma automática los archivos YAML y los charts de Helm, y establece una comparación con la configuración de Kubernetes y las prácticas recomendadas de seguridad.
Motivos para elegir KubeLinter
La popularidad de Kubernetes, o bien de K8s, se debe a que permite implementar, gestionar y ajustar las aplicaciones en contenedores, no a su capacidad para protegerlos. Por lo general, las configuraciones de este sistema se definen en los archivos YAML, los cuales comprenden las personas, pero son complejos a la hora de crear configuraciones válidas según sea necesario. En este complejo lenguaje de programación (YAML), la validación estática por sí sola no puede detectar fácilmente los errores y las violaciones, lo cual deja a la vista los problemas de seguridad.
Y este aspecto es fundamental.
Según el informe de Red Hat sobre la adopción, la seguridad y las tendencias de mercado de Kubernetes para 2021, más de la mitad de los encuestados se vieron obligados a retrasar la implementación de las aplicaciones de Kubernetes en producción debido a problemas de seguridad. De ellos, el 94 % experimentó al menos un incidente de seguridad relacionado con la plataforma en 2020. Esto se debió principalmente a errores humanos, ya que casi el 67 % de los casos informados fueron errores de configuración ingresados de forma manual.
Aquí es donde entra en juego KubeLinter.
A finales de 2020, StackRox creó una herramienta para la detección de errores, que luego adquirió Red Hat a principios de 2021. Esta herramienta se diseñó específicamente para eliminar los errores de seguridad y mejorar la precisión de la configuración en las implementaciones de Kubernetes al comienzo del proceso de desarrollo. Verifica los archivos de configuración y se puede utilizar en los sistemas de integración continua (CI) para simplificar el proceso de actualización de los archivos YAML y los charts de Helm, sin dejar de aplicar las prácticas recomendadas de DevSecOps.
Como se trata de una herramienta open source que está disponible con la licencia Apache 2.0, los usuarios pueden contribuir al proyecto a través de la comunidad open source.
Recursos de Red Hat
Funcionamiento de KubeLinter
Para verificar si los clústeres de Kubernetes están bien configurados y si se corrigieron los errores de programación antes de la implementación, KubeLinter accede a los charts y ejecuta varias pruebas que le permiten comprobar que sus ajustes sean los adecuados y que no tengan errores. Luego, envía mensajes con las fallas encontradas que impiden la instalación adecuada del chart, o bien mensajes de advertencia sobre todo aquello que no se ajuste a las prácticas recomendadas de seguridad.
El diseño de KubeLinter facilita su ejecución. Incluye 40 verificaciones de errores para los problemas de configuración más comunes de K8s, por ejemplo, la ejecución de un contenedor como usuario, la disparidad entre los selectores y el almacenamiento de datos confidenciales únicamente en secretos. Admite la configuración de verificaciones personalizadas y permite que los usuarios traten los ajustes como código. Gracias a esto, pueden incorporar la seguridad al proceso de desarrollo de las aplicaciones desde el comienzo.
Configuración de KubeLinter
KubeLinter es sumamente configurable. Los usuarios pueden crear, habilitar y deshabilitar sus propias reglas personalizadas con cambios mínimos en los flujos de trabajo y comentarios casi instantáneos sobre los errores de configuración y las violaciones a la seguridad.
KubeLinter se puede agregar a todas las herramientas de integración y distribución continuas (CI/CD), entre ellas GitHub Action, Jenkins, CircleCI y Travis CI, y puede buscar e identificar automáticamente errores en las configuraciones de las aplicaciones. Gracias a ello, los desarrolladores obtienen ayuda para resolver los problemas, y pueden detectarlos de manera automática durante todo el proceso de producción.
Las verificaciones predeterminadas de KubeLinter también se centran en la seguridad, por lo cual los usuarios deberán seleccionar manualmente si desean configurar Kubernetes de manera poco segura.
La descarga e instalación de KubeLinter solo tarda unos minutos. Se diseñó como un código binario independiente que utiliza el lenguaje de programación Go, el cual es comprensible para las personas. Además, es similar a kubectl, ya que se utilizaron algunos de los mismos paquetes de esta interfaz para crearla.
Si desea instalar KubeLinter, tiene varias opciones: utilizar Go para diseñar la interfaz de la línea de comandos de forma local, utilizar contenedores de Docker diseñados previamente, instalarla con Homebrew o diseñarla usted mismo a partir del código fuente. Luego, dirija la herramienta a los charts de Helm y los archivos YAML de Kubernetes para obtener resultados casi de manera instantánea.
Como se trata de una herramienta open source, los desarrolladores deben prever que sus elementos se modificarán a medida que se vaya desarrollando. Los cambios pueden incluir cuestiones relacionadas con los formatos de los archivos de configuración, los indicadores y el uso de los comandos.
Blogs de Red Hat
Aquí encuentras la información más reciente sobre nuestros clientes, partners y comunidades open source.