O que é segurança nativa do Kubernetes?
Há duas abordagens principais em relação à segurança de container: voltada a containers e nativa do Kubernetes.
As plataformas voltadas a containers operam no nível do container para proteger imagens e o ambiente de execução do container. Essas ferramentas oferecem controles no próprio nível do container usando técnicas como proxies embutidos ou shims para controlar as comunicações entre containers, por exemplo.
A segurança nativa do Kubernetes opera na camada do Kubernetes. Ela extrai contexto do Kubernetes e envia políticas ao Kubernetes para que ele as aplique.
A segurança nativa do Kubernetes depende de integrações profundas com o Kubernetes para extrair contexto e usar os controles nativos do Kubernetes. Essa arquitetura melhora a segurança de duas maneiras principais ao oferecer contexto e insights detalhados e detectar ameaças específicas ao Kubernetes.
O que torna a segurança "nativa da nuvem"?
A segurança nativa do Kubernetes baseia-se no princípio de que a segurança é implementada de forma mais eficaz quando está alinhada a aplicações conteinerizadas de gerenciamento do sistema.
Uma plataforma de segurança deve apresentar as seguintes características para ser considerada como nativa do Kubernetes:
- Integrar-se diretamente com o servidor da API do Kubernetes para obter visibilidade em primeira mão das cargas de trabalho e da infraestrutura do Kubernetes
- Avaliar as vulnerabilidades no próprio software do Kubernetes
- Basear a funcionalidade de segurança, incluindo gerenciamento de políticas, em recursos do modelo de objetos do Kubernetes, inclusive implantações, namespaces, serviços, pods e outros
- Analisar dados declarativos de artefatos específicos do Kubernetes (por exemplo, manifestos de carga de trabalho) e configurações
- Usar os recursos de segurança integrados do Kubernetes para lidar com a imposição sempre que possível para ter mais automação, escalabilidade e confiabilidade
- Implantar e executar como uma aplicação do Kubernetes, incluindo integrações e suporte para ferramentas comuns em cadeias de ferramentas nativas em nuvem
A segurança nativa do Kubernetes oferece visibilidade não só à configuração dos seus containers, como também à implantação do Kubernetes.
Também é importante entender como, ou se, suas cargas de trabalho estão isoladas. O Kubernetes, por padrão, permite que todas as implantações se comuniquem dentro e fora dos namespaces. Uma profunda visibilidade das configurações de política de rede, de preferência em formato visual em vez de texto em um arquivo YAML, mostrará quais cargas de trabalho não estão isoladas.
Para compreender sua postura geral de segurança, você deve garantir que as configurações do Kubernetes, como permissões de funções, acesso a segredos e tráfego de rede permitido, e as configurações nos componentes do plano de controle sejam bloqueadas, sigam as melhores práticas e tenham como escopo os privilégios menos possíveis necessários para que suas aplicações sejam executadas.
Recursos da Red Hat
Segurança do Kubernetes na nuvem
Assim como acontece com outros recursos computacionais, muitas organizações optam por executar o Kubernetes na nuvem. Você tem várias opções de como executar o Kubernetes na nuvem:
- Kubernetes autogerenciado
- Distribuição comercial do Kubernetes
- Serviço gerenciado do Kubernetes
Seja qual for o modelo escolhido, você e o provedor de nuvem "compartilham" a responsabilidade de garantir a implantação. Embora o modelo típico de responsabilidade compartilhada se aplique com o Kubernetes, especialmente com os serviços gerenciados, os limites em termos de responsabilidade pela segurança às vezes podem parecer confusos.
Com serviços gerenciados do Kubernetes, o provedor de nuvem gerencia o plano de controle do Kubernetes, que inclui os componentes do Kubernetes que controlam o cluster e os dados sobre o estado e a configuração do cluster.
Os serviços normalmente englobam a configuração do plano de controle, permitindo a redundância desses nós, muitas vezes incluindo a execução em regiões diferentes para evitar uma interrupção caso parte da infraestrutura do provedor de nuvem seja desativada.
Geralmente, os provedores de nuvem:
- Manterão o Kubernetes atualizado
- Aplicarão patches ao plano de controle
- Poderão oferecer patches do sistema operacional do nó, o que geralmente depende da sua escolha de sistema operacional
- Oferecerão com frequência aos nós imagens de sistema operacional otimizadas para containers
- Algumas vezes, incluirão verificações de vulnerabilidade, mas você deve criar a política, por exemplo, usando o controlador de permissão/proibição de admissão com base nos resultados da varredura
O cliente é sempre responsável pela segurança da carga de trabalho do Kubernetes, incluindo estes aspectos de segurança:
- Imagens de container: a origem, o conteúdo e as vulnerabilidades
- Implantações: serviços de rede, armazenamento, privilégios
- Gerenciamento de configuração: funções, grupos, vinculações de funções, contas de serviço
- Aplicação: gerenciamento de segredos, rótulos, anotações
- Segmentação de rede: políticas de rede no cluster
- Ambiente de execução: detecção de ameaças e resposta a incidentes
As vantagens da segurança nativa do Kubernetes
As plataformas de segurança nativas do Kubernetes oferecem várias vantagens.
Maior proteção
A segurança nativa do Kubernetes oferece insights mais detalhados ao associar os dados declarativos do Kubernetes para descobrir vulnerabilidades no Kubernetes e em containers.
Maior eficiência operacional
O uso do mesmo framework para o gerenciamento da infraestrutura e segurança reduz a curva de aprendizado do Kubernetes, e o contexto do Kubernetes viabiliza uma detecção mais rápida de ameaças e avaliações de risco priorizadas.
Risco operacional reduzido
O acesso aos controles nativos do Kubernetes assegura que a segurança tenha o ritmo e a escalabilidade do Kubernetes. Ao usar políticas incorporadas no Kubernetes, você evitará conflito entre os controles externos e o orquestrador.
Risco operacional reduzido
A segurança nativa do Kubernetes ajuda a reduzir problemas operacionais decorrentes de configurações inconsistentes, falta de coordenação e erros do usuário.
Devido à curva de aprendizado da maioria dos usuários com o Kubernetes, é fácil cometer erros, incluindo conceder privilégios elevados ao usar os Controles de Acesso Baseados em Função (RBAC) do Kubernetes, como dar a um usuário ou conta de serviço permissões administrativas completas de cluster ou expor desnecessariamente os segredos do Kubernetes, permitindo que as implantações tenham acesso aos segredos mesmo quando não são necessários.
As plataformas de segurança nativas do Kubernetes podem identificar essas configurações errôneas de forma automática e contínua.
Integrar controles de segurança diretamente no Kubernetes também elimina o risco de ter um software de controle separado que, em caso de uma falha, não seria aberto e permitiria todo o tráfego sem segurança habilitada ou não fecharia e corromperia todo o tráfego de aplicações.
Quando o orquestrador do Kubernetes aplica os controles de política, a segurança ganha imediatamente toda a escalabilidade do Kubernetes, bem como a gama de opções de imposição de políticas que ele inclui.
No entanto, o uso de proxies embutidos ou shims para imposição de política resulta em pontos únicos de falha, desafios de escalabilidade e limitações de desempenho.
Com o Kubernetes, você pode, por exemplo, aplicar políticas de rede para segmentar seu tráfego, usar controladores de admissão para aplicar políticas a solicitações direcionadas ao servidor da API do Kubernetes, usar segredos para armazenar credenciais confidenciais e aplicar Controles de Acesso Baseados em Função (RBAC) para autorizar determinados recursos para usuários e contas de serviço específicos.
Você também pode usar ferramentas padronizadas adicionais, como plug-ins de rede em conformidade com a Interface de Rede de Container (CNI) em conjunto com a plataforma de segurança nativa do Kubernetes e alterar essas ferramentas conforme necessário.
Melhore a eficiência operacional
Ao oferecer uma plataforma exclusiva e unificada para provisionamento e serviços de infraestrutura operacional, o Kubernetes simplifica e unifica os fluxos de trabalho para as equipes de desenvolvimento e operações de aplicações.
Essa mesma abordagem consolidada, em que todos trabalham em uma fonte comum de verdade e usando a mesma infraestrutura, também pode se estender à segurança quando você implanta uma plataforma de segurança nativa do Kubernetes.
Essa abordagem economiza tempo e dinheiro, reduzindo a curva de aprendizado e permitindo análises e correções mais rápidas.
Quando as equipes de DevOps e de segurança usam ferramentas diferentes, pode haver conflitos na configuração delas.
A equipe de DevOps pode especificar uma política de rede do Kubernetes permitindo o tráfego entre dois nós, e a equipe de segurança poderia apresentar um controle por meio de um software de controle separado que bloqueie esse tráfego.
Ao analisar as configurações no Kubernetes, a equipe de DevOps percebe que a aplicação está trabalhando com fluxo de tráfego, além de não descobrir o motivo da falha da aplicação. Isso acontece porque eles não conseguem ver os controles aplicados pelo software de controle separado.
Quando as equipes de DevOps e de segurança utilizam as mesmas criações para compilar e enviar aplicações conteinerizadas e para protegê-las, elas não precisam aprender a usar tantas interfaces, ferramentas e modelos.
A equipe de DevOps aplica arquivos de manifesto do Kubernetes para definir os recursos de que uma determinada aplicação precisa. Usar esses mesmos ativos para reunir o contexto de segurança e aplicar políticas reduz a complexidade e melhora a proteção.
A segurança nativa do Kubernetes trata o Kubernetes como a fonte da verdade para as políticas de segurança, e todos (equipes de segurança, operações, DevOps e engenharia de confiabilidade de sites (SRE)) trabalharão com base na mesma fonte da verdade.
Além disso, os problemas de segurança são mapeados diretamente para os objetos e recursos do Kubernetes que essas equipes usam todos os dias, simplificando ainda mais as operações.
Evite o risco operacional derivado da implantação de um software de segurança separado usando a imposição nativa do Kubernetes para suas políticas de segurança.
Análise e remediação mais rápida
Os containers complicam a segurança das aplicações nativas em nuvem em vários âmbitos, incluindo o fato de os incidentes poderem ser muito espalhados, os containers produzirem grandes volumes de dados para processar e serem efêmeros, o que torna obsoleta a resposta a incidentes tradicionais.
A segurança nativa do Kubernetes permite que você detecte ameaças aos containers com mais precisão e reduz o tempo e o esforço necessários para aplicar a segurança com eficácia no seu ambiente.
Com o contexto do Kubernetes, o comportamento esperado é claro. Como resultado, a segurança nativa do Kubernetes pode identificar anomalias com maior fidelidade, e você pode aplicar, com mais confiança, várias opções de imposição, como a eliminação de um pod.
Ao mesmo tempo, usar o contexto do Kubernetes também reduz os falsos positivos e excesso de alertas.
A segurança nativa do Kubernetes também oferece a capacidade de adotar uma abordagem baseada em riscos para as tarefas de segurança.
Talvez suas implantações contenham várias violações de política, mas por onde começar? Novamente, o contexto do Kubernetes ajuda.
Reunir diferentes aspectos dos metadados do Kubernetes, incluindo se um cluster está em desenvolvimento ou produção, se está exposto à Internet ou não, quão crítica é a aplicação e se algum processo suspeito está sendo executado nela, mostrará para onde sua equipe deve voltar a atenção agora.
Detectar vulnerabilidades específicas do Kubernetes, especialmente uma que coloque o servidor da API do Kubernetes em risco, é muito importante para prevenir, identificar e corrigi-las. As ferramentas de segurança nativas do Kubernetes podem identificar automaticamente essas vulnerabilidades.
A integração com o servidor da API do Kubernetes oferece monitoramento de segurança para os containers em execução nos clusters do Kubernetes e também para os recursos do Kubernetes, como implantações, conjuntos de daemons, serviços, pods e outros recursos.
A natureza aberta das implantações do Kubernetes apresenta outro vetor de ameaça. Como o Kubernetes é antes de tudo uma plataforma para operações de infraestrutura, nem todos os componentes são necessariamente seguros por padrão para facilidade operacional de uso.
Aplicar políticas de rede do Kubernetes para limitar as comunicações é outro elemento crítico para proteger as implantações dele. As plataformas de segurança nativa do Kubernetes podem criar uma base automaticamente para sua atividade de rede, identificar quais caminhos de comunicação são necessários para executar sua aplicação e criar o arquivo YAML correto para reduzir o escopo de acesso à rede.
Com as configurações de segurança automáticas em uma plataforma nativa do Kubernetes, você poderá identificar e interromper continuamente as ameaças na camada do Kubernetes.
Configure uma vez e use em qualquer ambiente
A segurança nativa do Kubernetes também viabiliza alta portabilidade e reutilização. Aplicar uma abordagem única e padronizada que é executada em todos os lugares onde o Kubernetes funciona garante a aplicação consistente de políticas em todos os ambientes.
A segurança nativa do Kubernetes permite que os usuários especifiquem uma única configuração, como uma política de rede, que deve ser aplicada a todos os pods em uma implantação, em vez de ter que configurar controles no nível do sistema em cada host de um cluster.
Ao vincular políticas aos sistemas de CI/CD e ao framework do controlador de admissão do Kubernetes, as organizações podem aplicar políticas de controle mais facilmente no início do ciclo de vida de desenvolvimento do software, evitando exposições no ambiente de execução.
Além disso, usar construções do Kubernetes, como o controlador de admissão, mantém a segurança profundamente vinculada aos conjuntos de ferramentas do Kubernetes.
Blog da Red Hat
Tudo relacionado à Red Hat: soluções, treinamentos e certificações Red Hat, casos de sucesso de clientes, novidades dos nossos parceiros e notícias sobre projetos das comunidades open source.