Middle+
Que práticas conhece para melhorar a segurança da aplicação no Kubernetes?
sobes.tech IA
Resposta da IA
- Utilização de Políticas de Rede para controlar o tráfego entre os pods.
- Aplicação de Quotas de Recursos e Limites de Intervalo para restringir o consumo de recursos pelos pods.
- Desativação do modo privilegiado para os contêineres.
- Minimização dos privilégios concedidos às Contas de Serviço.
- Uso de segredos para armazenar dados sensíveis.
- Escaneamento regular das imagens de contêineres em busca de vulnerabilidades.
- Aplicação de Restrições de Contexto de Segurança (SCC) no OpenShift ou Políticas de Segurança de Pod (PSP) (obsoletas) / Padrões de Segurança de Pod no Kubernetes puro.
- Uso de ferramentas para auditoria do cluster, como Kubesec ou OpenSCAP.
- Implementação do princípio do menor privilégio ao nível do cluster e das aplicações.
- Segmentação de pods e espaços de nomes.
- Uso de Imutabilidade para implementações.
Exemplo de uso de Política de Rede:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-frontend-to-backend
spec:
podSelector:
matchLabels:
app: backend # Aplica-se apenas a pods com esta etiqueta
ingress:
- from:
- podSelector:
matchLabels:
app: frontend # Permite tráfego de entrada apenas de pods frontend
ports:
- protocol: TCP
port: 8080 # Permite tráfego apenas nesta porta
Exemplo de uso de Contexto de Segurança:
apiVersion: v1
kind: Pod
metadata:
name: security-context-demo
spec:
securityContext:
runAsUser: 1000 # Executar o contêiner como utilizador com ID 1000
runAsGroup: 3000 # Executar o contêiner como grupo com ID 3000
fsGroup: 2000 # O sistema de ficheiros pertencerá ao grupo 2000
containers:
- name: sec-ctx-demo
image: busybox
command: [ "sh", "-c", "sleep 1h" ]
securityContext:
allowPrivilegeEscalation: false # Proibir a escalada de privilégios
readOnlyRootFilesystem: true # Tornar o sistema de ficheiros raiz somente leitura