Visão geral
KubeLinter é uma ferramenta de análise estática open source, também chamada de lint ou linter, que identifica configurações incorretas e erros de programação nas implantações Kubernetes. A ferramenta de linha de comando analisa automaticamente arquivos YAML e gráficos Helm para comparar as melhores práticas de configuração e segurança de Kubernetes.
Veja o KubeLinter em ação
Assista a esta demonstração hands-on para ver como funciona a ferramenta de linha de comando.
Por que KubeLinter?
Kubernetes, ou K8s, é conhecido por sua habilidade de implantar, gerenciar e escalar aplicações em containers, mas não é conhecido por proteger containers. As configurações do Kubernetes também costumam ser definidas em arquivos YAML, que são legíveis por humanos, mas difíceis de entender e produzir configurações válidas em escala. A validação estática sozinha em um arquivo YAML complexo não consegue detectar facilmente erros e violações, o que pode expor problemas de segurança.
E segurança é essencial.
De acordo com o relatório da Red Hat sobre adoção, segurança e tendências de mercado do Kubernetes de 2021, mais da metade dos entrevistados afirmam ter atrasado a implantação de aplicações Kubernetes na produção em virtude de preocupações com a segurança, já que 94% deles tiveram ao menos um incidente relacionado à segurança do Kubernetes em 2020. Isso ocorreu principalmente por erro humano, com configurações incorretas inseridas manualmente, o que contribuiu para cerca de 67% dos casos relatados.
É aqui que entra o KubeLinter.
A ferramenta lint, criada pela StackRox no final de 2020, pouco antes de ser adquirida pela Red Hat no início de 2021, foi especificamente desenvolvida para combater erros de segurança e melhorar a configuração exata entre implantações Kubernetes no início do processo de desenvolvimento. Ela faz verificações de arquivos de configuração e pode ser usada com sistemas de integração contínua (CI) para simplificar o processo de atualização de arquivos YAML e gráficos Helm ao empregar práticas recomendadas de DevSecOps.
Como uma ferramenta open source disponível com a licença do Apache 2.0, o KubeLinter permite ainda que os usuários da comunidade open source contribuam com o projeto.
Como funciona o KubeLinter?
Para verificar se os clusters do Kubernetes estão configurados corretamente e os bugs de programação são corrigidos antes da implantação, o KubeLinter segue o caminho até um gráfico e realiza testes diversos para verificar se o gráfico está bem formado e não contém erros. Em seguida, ele envia mensagens de erro do lint para tudo o que causar falha do gráfico na instalação ou uma mensagem de aviso para tudo o que não esteja alinhado com as práticas recomendadas de segurança.
O KubeLinter também é fácil de executar. Ele já vem com 40 verificações lint nativas de configurações incorretas comuns do K8s, como executar um container como usuário, dissociar seletores e armazenar dados confidenciais apenas em segredos. Ele suporta a configuração de verificações personalizadas e permite que os usuários tratem as configurações como código, ou seja, eles criam segurança no processo de desenvolvimento de aplicações desde o início.
Configuração do KubeLinter
O KubeLinter é altamente configurável. Os usuários podem criar, ativar e desativar suas regras personalizadas sem alterar tanto os fluxos de trabalho, além de passar feedback quase instantâneo sobre configurações incorretas e violações de segurança.
O KubeLinter pode ser adicionado a qualquer ferramenta de integração e entrega contínuas (CI/CD), como GitHub Action, Jenkins, CircleCI e Travis CI, além de verificar e identificar automaticamente erros nas configurações das aplicações. Os desenvolvedores melhoram seus trabalhos de correção e ainda podem ver automaticamente os problemas em todo o pipeline de produção.
As verificações padrão do KubeLinter também priorizam a segurança. Portanto, os usuários precisam optar manualmente se quiserem configurar o Kubernetes de maneira desprotegida.
Leva alguns minutos para fazer o download e instalar o KubeLinter. Desenvolvido como um binário autocontido que usa a linguagem de programação Go para leitura humana, ele se compara com o kubectl e compreende alguns dos mesmos pacotes.
Para instalar o KubeLinter, você pode criar a interface de linha de comando localmente com o Go, usar os containers Docker pré-construídos, instalar usando o Homebrew ou usar um código-fonte próprio. Depois da instalação, aponte a ferramenta para seus gráficos Helm e arquivos YAML do Kubernetes para gerar resultados quase que imediatos.
Por ser uma ferramenta open source, os desenvolvedores podem e devem esperar alterações nos elementos do KubeLinter à medida que ele for desenvolvido. Pode haver alterações de formatos de arquivos de configuração, sinalizações e utilização de comandos.