Middle+
¿Qué prácticas conoces para mejorar la seguridad de la aplicación en Kubernetes?
sobes.tech AI
Respuesta de la IA
- Uso de políticas de red para controlar el tráfico entre pods.
- Aplicación de cuotas de recursos y rangos límite para restringir el consumo de recursos por los pods.
- Desactivación del modo privilegiado para los contenedores.
- Minimización de los privilegios otorgados a las cuentas de servicio.
- Uso de secretos para almacenar datos sensibles.
- Escaneo regular de las imágenes de los contenedores en busca de vulnerabilidades.
- Aplicación de restricciones de contexto de seguridad (SCC) en OpenShift o políticas de seguridad de pods (PSP) (obsoletas) / estándares de seguridad de pods en Kubernetes puro.
- Uso de herramientas para auditoría del clúster, como Kubesec o OpenSCAP.
- Implementación del principio de privilegios mínimos a nivel de clúster y aplicaciones.
- Segmentación de pods y espacios de nombres.
- Uso de inmutabilidad para despliegues.
Ejemplo de uso de la política de red:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-frontend-to-backend
spec:
podSelector:
matchLabels:
app: backend # Solo se aplica a pods con esta etiqueta
ingress:
- from:
- podSelector:
matchLabels:
app: frontend # Permite tráfico entrante solo desde pods frontend
ports:
- protocol: TCP
port: 8080 # Permite tráfico solo en este puerto
Ejemplo de uso del contexto de seguridad:
apiVersion: v1
kind: Pod
metadata:
name: security-context-demo
spec:
securityContext:
runAsUser: 1000 # Ejecutar el contenedor como usuario con ID 1000
runAsGroup: 3000 # Ejecutar el contenedor como grupo con ID 3000
fsGroup: 2000 # El sistema de archivos pertenecerá al grupo 2000
containers:
- name: sec-ctx-demo
image: busybox
command: [ "sh", "-c", "sleep 1h" ]
securityContext:
allowPrivilegeEscalation: false # Prohibir la escalada de privilegios
readOnlyRootFilesystem: true # Hacer que el sistema de archivos raíz sea de solo lectura