Sobes.tech
Middle+

Quelles pratiques connaissez-vous pour améliorer la sécurité de l'application dans Kubernetes?

sobes.tech IA

Réponse de l'IA

  • Utilisation des politiques réseau pour contrôler le trafic entre les pods.
  • Application de quotas de ressources et de plages de limites pour restreindre la consommation de ressources par les pods.
  • Désactivation du mode privilégié pour les conteneurs.
  • Minimisation des privilèges accordés aux comptes de service.
  • Utilisation de secrets pour stocker des données sensibles.
  • Analyse régulière des images de conteneurs à la recherche de vulnérabilités.
  • Application de contraintes de contexte de sécurité (SCC) dans OpenShift ou de politiques de sécurité des pods (PSP) (obsolètes) / normes de sécurité des pods dans Kubernetes pur.
  • Utilisation d'outils pour l'audit du cluster, tels que Kubesec ou OpenSCAP.
  • Mise en œuvre du principe du moindre privilège au niveau du cluster et des applications.
  • Segmentation des pods et des espaces de noms.
  • Utilisation de l'immutabilité pour les déploiements.

Exemple d'utilisation de la politique réseau:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-frontend-to-backend
spec:
  podSelector:
    matchLabels:
      app: backend # S'applique uniquement aux pods avec cette étiquette
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: frontend # Permet le trafic entrant uniquement depuis les pods frontend
    ports:
    - protocol: TCP
      port: 8080 # Permet le trafic uniquement sur ce port

Exemple d'utilisation du contexte de sécurité:

apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo
spec:
  securityContext:
    runAsUser: 1000 # Exécuter le conteneur en tant qu'utilisateur avec l'ID 1000
    runAsGroup: 3000 # Exécuter le conteneur en tant que groupe avec l'ID 3000
    fsGroup: 2000 # Le système de fichiers appartiendra au groupe 2000
  containers:
  - name: sec-ctx-demo
    image: busybox
    command: [ "sh", "-c", "sleep 1h" ]
    securityContext:
      allowPrivilegeEscalation: false # Interdire l'élévation des privilèges
      readOnlyRootFilesystem: true # Rendre le système de fichiers racine en lecture seule