Clusters Kubernetes seguros
O Kubernetes gerencia e dimensiona seus contêineres de aplicativos em clusters, que agrupam cargas de trabalho em um ou mais pods que compartilham recursos de rede e armazenamento.
O Kubernetes também fornece um servidor de API que permite que usuários e contas de serviço façam alterações em pods, serviços, implantações e muito mais.
Como o Kubernetes é responsável por orquestrar seu aplicativo, os recursos de cluster devem ser configurados adequadamente para reduzir a probabilidade de um ataque.
Nesse artigo seguem algumas recomendações para proteger clusters Kubernetes.
Limitar o acesso à API do Kubernetes
Se um invasor obtiver acesso ao servidor da API do Kubernetes, ele poderá manipular ou destruir facilmente qualquer parte do seu aplicativo.
Para lidar com esse risco, o servidor de API fornece vários controles que você pode configurar para garantir que apenas usuários autenticados com as permissões apropriadas possam acessar a API do Kubernetes — as plataformas de nuvem impõem controles de autenticação por padrão.
Limitar o acesso ao servidor de API do Kubernetes também ajuda a proteger os segredos armazenados lá, como chaves de API, senhas de usuário e certificados, em cargas de trabalho, serviços externos e contas.
Os segredos são um tipo de recurso de primeira classe que existe independentemente de qualquer pod.
Usar um segredo elimina a necessidade de preparar dados confidenciais em definições de manifesto ou imagens de contêiner simples.
Eles são armazenados sem criptografia no armazenamento de dados subjacente do servidor (ou seja, etcd ) por padrão, para que qualquer pessoa com acesso ao etcd possa visualizar esses dados.
Os segredos também podem ser facilmente expostos a recursos, como por meio de uma variável de ambiente para um pod. Qualquer pessoa que gerencie esse pod também poderá ver o segredo exposto.
Você pode proteger dados confidenciais habilitando a criptografia em repouso para segredos. O Kubernetes oferece suporte a vários provedores de criptografia diferentes, mas recomenda o uso do serviço de gerenciamento de chaves (KMS) do seu provedor de nuvem para maximizar a segurança.
Os provedores KMS armazenam as chaves de descriptografia remotamente em vez de no Kubernetes, portanto, um invasor precisaria obter acesso ao servidor da API do Kubernetes e ao KMS para descriptografar segredos.
Para melhor visibilidade do estado de um cluster Kubernetes, você pode usar as regras de detecção do Kubernetes do nosso parceiro Datadog para notificá-lo rapidamente sobre quaisquer configurações que tornem o cluster mais vulnerável, como não aproveitar um provedor de criptografia para criptografar segredos ou RBAC para restringir o tráfego.
Crie pods isolados com privilégios limitados
Os pods compartilham configurações e contextos semelhantes aos de contêineres individuais, como políticas de rede e limites de recursos, para que você possa aproveitar as mesmas regras de isolamento para impedir que invasores criem ou modifiquem pods ou acessem outros contêineres.
O Kubernetes fornece políticas de segurança prontas para uso por meio de um controlador de admissão para fornecer mais controle sobre as configurações de pods em um cluster — os pods devem ser configurados de acordo com suas políticas para serem implantados com êxito.
Essas políticas oferecem vários níveis de proteção com base nas recomendações do Kubernetes, como:
– restringindo pods privilegiados e escalação de privilégios;
– limitando os recursos do pod (por exemplo, execute operações de montagem, modifique processos);
– restringindo o acesso ao namespace, portas e sistemas de arquivos do host.
É importante observar que o controlador de admissão de segurança do pod é um recurso beta a partir da v1.23, que pode não ser totalmente suportado por alguns provedores de nuvem.
Para mitigar essa limitação, você também pode aproveitar ferramentas de código aberto amplamente usadas, como o Open Policy Agent Gatekeeper, para implementar políticas de pod em seus ambientes de nuvem.
A integração do Gatekeeper do Datadog permite monitorar o status de suas políticas e garantir que elas sejam configuradas adequadamente.
O Datadog também sinalizará automaticamente novos pods que possam ser suspeitos, como aqueles com permissões privilegiadas ou acesso à rede do host.
Esses cenários podem indicar que um cluster não está configurado com uma política de segurança ou que uma política não é restritiva o suficiente.
Conclusão
Após a leitura desse texto foi possível notar como a solução da Datadog pode ajudar a proteger cluster Kubernetes.
Clique aqui e obtenha mais informações dessa e outras soluções, com nossos especialistas.