Mettre en œuvre une stratégie d'observabilité complète pour un système distribué.
→Collecter et corréler les trois piliers : métriques (données numériques de séries temporelles via Prometheus), logs (événements structurés via Fluent Bit) et traces (flux de requêtes via OpenTelemetry).
Pourquoi: Aucun pilier seul n'est suffisant. Les corréler (par exemple, en intégrant des identifiants de trace dans les logs) est essentiel pour diagnostiquer rapidement les problèmes dans les architectures de microservices complexes.
Appliquer automatiquement les politiques de sécurité et organisationnelles sur tous les clusters Kubernetes.
→Utiliser un moteur de politiques comme OPA/Gatekeeper ou Kyverno, intégré en tant que contrôleur d'admission validant/mutant. Stocker les politiques dans Git et les synchroniser via GitOps.
Pourquoi: Cela fournit des garde-fous automatisés et préventifs, offrant aux développeurs un retour rapide dans leur pipeline CI/CD plutôt que des points de révision lents et manuels.
Sélectionner un moteur de politiques pour Kubernetes basé sur les compétences de l'équipe et la complexité des politiques.
→Utiliser Kyverno pour les politiques pouvant être exprimées en YAML de style Kubernetes familier. Utiliser OPA/Gatekeeper pour les politiques complexes nécessitant un langage plus puissant et spécifiquement conçu (Rego) et une intégration de données externes.
Pourquoi: Kyverno a une courbe d'apprentissage plus faible pour les praticiens de Kubernetes. OPA/Rego est plus puissant mais nécessite l'apprentissage d'un nouveau langage.
Assurer l'intégrité et l'authenticité des images de conteneurs déployées en production.
→Mettre en œuvre la signature d'images dans le pipeline CI à l'aide de Sigstore/Cosign. Utiliser un contrôleur de politiques (Kyverno, Gatekeeper) pour créer une politique d'admission qui vérifie les signatures d'images avant d'autoriser la création d'un pod.
Pourquoi: Cela garantit que seules les images construites par des pipelines CI de confiance et qui n'ont pas été altérées peuvent s'exécuter dans le cluster, empêchant l'exécution de code non autorisé.
Référence↗
Sécuriser toutes les communications service-à-service au sein du cluster avec une approche zéro confiance.
→Déployer un maillage de services (par exemple, Istio, Linkerd) et activer le TLS mutuel strict (mTLS) pour tout le trafic au sein du maillage.
Pourquoi: mTLS fournit à la fois un chiffrement en transit et une identité forte, vérifiable cryptographiquement, pour le client et le serveur, empêchant l'usurpation d'identité et les attaques de l'homme du milieu à l'intérieur du cluster.
Appliquer les meilleures pratiques de sécurité pour toutes les charges de travail exécutées dans le cluster.
→Activer le contrôleur d'admission Pod Security intégré. Configurer les espaces de noms pour appliquer le profil `restricted` aux charges de travail et `baseline` aux composants de la plateforme.
Pourquoi: Le profil `restricted` applique un durcissement de sécurité critique (par exemple, exécution en tant que non-root, suppression de toutes les capacités, interdiction de l'escalade de privilèges) et constitue une mesure de sécurité fondamentale.
Référence↗
Détecter les comportements anormaux ou malveillants à l'intérieur des conteneurs en cours d'exécution au niveau du système d'exploitation.
→Déployer un outil de sécurité d'exécution qui utilise eBPF, tel que Falco ou Tetragon. Définir des règles pour détecter les appels système suspects, l'accès aux fichiers et l'exécution de processus.
Pourquoi: Les outils de sécurité traditionnels sont aveugles à l'activité à l'intérieur des conteneurs. eBPF offre une visibilité profonde et à faible surcharge sur les événements au niveau du noyau, permettant la détection de menaces que d'autres outils manquent.
Construire un pipeline de données d'observabilité évolutif et résilient.
→Utiliser l'OpenTelemetry (OTel) Collector. Enchaîner les processeurs pour transformer les données (par exemple, le processeur `attributes` pour supprimer les PII, le processeur `batch` pour l'efficacité). Utiliser le processeur `memory_limiter` tôt dans le pipeline pour prévenir les OOM.
Pourquoi: Le Collector découple l'instrumentation des backends et fournit un moyen flexible et indépendant du fournisseur pour traiter, filtrer et acheminer les données de télémétrie avant l'exportation.
Référence↗