O Kubernetes se tornou um padrão em software nativo da nuvem no que diz respeito a contêineres. De fato, a pesquisa mais recente da Native Computing Foundation (CNCF) descobriu que o uso do Kubernetes na produção cresceu para 78%. No entanto, como acontece com qualquer tecnologia que ganha popularidade em um curto espaço de tempo, há muita confusão sobre o que é o Kubernetes e quais considerações de segurança acompanham o Kubernetes e a conteinerização. Caso em questão: na mesma pesquisa do CNCF, 40% dos entrevistados mencionaram a segurança como um desafio para o uso/implantação de contêineres e 38% apontaram a complexidade como um desafio.
Para os engenheiros de segurança encarregados de fortalecer a implantação de contêineres, há definitivamente uma curva de aprendizado a ser superada. Para ajudá-lo a se atualizar, vamos dar uma olhada no que é o Kubernetes, como ele funciona e explorar alguns conceitos básicos de segurança do Kubernetes.
O Kubernetes é uma plataforma usada para orquestrar e gerenciar cargas de trabalho de contêineres (por exemplo Contêineres Docker).
Desde seu lançamento inicial em 2014, o Kubernetes - um projeto de graduação CNCF de código aberto com raízes que remontam à equipe de desenvolvimento do Google - tornou-se uma das ferramentas mais populares nos círculos de DevOps e nativos da nuvem.
Um pré-requisito para entender o Kubernetes é primeiro entender os contêineres. Em poucas palavras, os contêineres são pacotes de software leves que incluem todas as dependências de que um aplicativo precisa para ser executado. Os contêineres resolvem o problema de executar o aplicativo de forma confiável em diferentes ambientes. Por serem leves e portáteis, os contêineres ganharam popularidade e são vitais para o desenvolvimento do microsserviço moderno e dos aplicativos da Web.
Embora o uso de um único contêiner não exija muito gerenciamento e orquestração, os grandes aplicativos precisam ser escalonáveis. As equipes de desenvolvimento modernas precisam ser capazes de automatizar e dimensionar o processo de implantação de contêineres. É aí que entram as ferramentas de gerenciamento de carga de trabalho em contêineres, como o Kubernetes. O Kubernetes fornece o gerenciamento e a orquestração que faltam.
A frase "gerenciamento e orquestração" é muito usada quando se discute o Kubernetes. No entanto, isso não nos diz muito sobre os detalhes. Em termos simples, o que isso significa é que o Kubernetes permite o balanceamento de carga, o gerenciamento de configuração, a configuração de recursos de armazenamento, a alocação automática de recursos (por exemplo, o Unidade de processamento central (Central Processing Unit, CPU) e RAM por contêiner), e o aumento ou a redução da implantação do contêiner.
Pode haver muita confusão em torno do tópico Docker vs. Kubernetes. No entanto, na verdade, é bastante simples:
Esse último ponto é o que pode levar a algumas confusões. Acontece que o Docker oferece uma ferramenta, o Swarm, que oferece funcionalidade semelhante ao Kubernetes. No entanto, o Kubernetes é, de longe, a ferramenta de gerenciamento e orquestração mais popular.
Além dos contêineres, há outros conceitos importantes a serem compreendidos ao começar a usar o Kubernetes. Vamos dar uma olhada em alguns termos-chave:
O Kubernetes pode ser útil efetivamente em qualquer lugar onde uma abordagem de infraestrutura como código para a implantação de contêineres possa ser útil. Isso significa que as equipes de desenvolvimento ágil e as equipes com foco em práticas de DevOps geralmente usarão o Kubernetes para ajudar a automatizar seus pipelines de integração contínua/entrega contínua (CI/CD). Além disso, o Kubernetes pode ajudar a dimensionar automaticamente o aplicativo nativo da nuvem, monitorando a integridade dos nós e a utilização de recursos e aumentando ou diminuindo o dimensionamento conforme necessário.
É claro que, embora o Kubernetes agregue valor do ponto de vista da automação e da escalabilidade, ele também acrescenta uma nova ruga para as equipes de segurança. Como o senhor pode garantir que seus aplicativos e serviços sejam implementados com segurança? Como sempre, isso começa com a compreensão de seu modelo de ameaças e apetite por riscos, mas há alguns princípios básicos para ajudá-lo a começar.
Também é fundamental ter um plano de visibilidade de contêineres e varredura de vulnerabilidade para garantir que a correção de problemas ocorra rapidamente e que o senhor permaneça em conformidade com todos os padrões relevantes. Para começar a usar o scanner de vulnerabilidade de contêineres e as avaliações de postura de segurança, recomendamos a leitura de Continuous Container Visibility and Conformidade (PDF).
Agora que o senhor entende como o Kubernetes funciona em alto nível, controlando e gerenciando a implantação de contêineres automaticamente, pode dar os próximos passos para implantar o k8s com segurança. Para se aprofundar na implementação de segurança com contêineres, Kubernetes e infraestrutura sem servidor, inscreva-se para assistir ao webinar gratuito How to Layer Security into Modern Cloud aplicativo, apresentado pelo especialista em segurança de nuvem Hillel Solow.