Pular para o conteúdo principal

Primitivos de Segurança

Em um cluster Kubernetes em produção, segurança é a principal preocupação.

Naturalmente todos os acessos aos hosts devem ser protegidos.

  • Desativar o root access.
  • Desativar acesso por autenticação com password.
  • Somente permitir acesso por chave SSH.
  • Outras precauções como acesso físico e virtual à infraestrutura que hospeda o Kubernetes.

Se algo for comprometido, tudo está comprometido

O kube-apiserver está no centro de toda comunicação do Kubernetes, sendo a comunicação entre os componentes do Kubernetes e o próprio usuário utilizando o kubectl. Através dele podemos fazer qualquer coisa no Kubernetes, logo a primeira linha de defesa é controlar o acesso ao kube-apiserver.

Precisamos nos perguntar...

Alt text

Quem pode acessar pode ser definido por diferentes métodos de autenticação.

  • Username e tokens armazenados em arquivos.
  • Certificados.
  • Provedores de autenticação externa - LDAP.
  • Service Accounts para máquinas.

Uma vez que o acesso é permitido, o que pode ser feito? Vários mecanismos serão estudados aqui.

  • RBAC Authorization
  • ABAC Authorization
  • Node Authorization
  • Webhook Mode

Toda a comunicação entre os componentes do Kubernetes é criptografada por TLS.

Alt text

Por padrão todos os pods podem acessar todos os pods dentro do cluster e para restringir esses acessos podemos usar políticas de rede.

Alt text

Alt text