O Kubernetes oferece uma infraestrutura poderosa para orquestrar containers em larga escala, mas com isso vêm desafios significativos em termos de segurança. Garantir que seu cluster esteja protegido é fundamental para manter a integridade das suas aplicações e dados. Neste artigo, exploraremos as melhores práticas de segurança para Kubernetes, seguindo uma abordagem passo a passo.
O controle de acesso ao Kubernetes deve ser gerenciado com cuidado, e o Role-Based Access Control (RBAC) é uma ferramenta essencial para isso.
Certifique-se de que o RBAC está habilitado no seu cluster Kubernetes. Para clusters gerenciados, como GKE ou EKS, o RBAC geralmente vem ativado por padrão. Para clusters locais, como o Minikube, pode ser necessário ativá-lo manualmente.
Verifique a configuração do cluster com:
kubectl api-versions | grep rbac
Se o RBAC estiver ativado, você verá algo como:
rbac.authorization.k8s.io/v1
Crie uma política de RBAC para garantir que os usuários ou serviços tenham apenas as permissões mínimas necessárias.
Exemplo de arquivo role.yaml
para permitir leitura em pods:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list"]
Em seguida, crie o RoleBinding para associar o Role a um usuário ou serviço:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: default
subjects:
- kind: User
name: "johndoe"
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io