Best Practices : sécuriser votre cluster kubernetes dans le cloud

Best Practices: sécuriser votre cluster kubernetes dans le cloud

Les services managés kubernetes sont énormément utilisés dans le cloud, AKS et EKS sont les deux services les plus utilisés pour du kubernetes managés. 

Ces services permettent de simplifier le processus de déploiement et de mise à l’échelle de votre environnement de conteneurs. 

Ces services sont managés mais ils peuvent présenter des risques de sécurité, nous allons détailler trois pratiques afin d’opérer sereinement vos cluster dans le cloud :  

1 – Activer la journalisation d’audit (audit logging) 

Les logs d’audit Kubernetes fournissent des détails sur l’activité au niveau du cluster. 

Pour obtenir des informations sur les événements au niveau du cloud provider, comme les modifications apportées à un profil ou à une ressource et l’état d’une ressource, vous pouvez également collecter des journaux d’audit spécifiques à la plate-forme. 

Par exemple, sur AWS vous pouvez activer les logs AWS CloudTrail pour avoir accès à des informations tel que l’utilisation des API et les activités des utilisateurs de votre infrastructure.

L’activation de tel service vous permettra de découvrir les ressources et les comptes cloud qui ne sont pas configurés conformément à vos politiques de sécurité. 

2 – Utiliser le principe du moindre privilège pour vos comptes cloud

Les applications Kubernetes basées sur le cloud et qui utilisent des services managés, nécessitent que différents utilisateurs et services aient différents niveaux d’accès, ce qui peut introduire des erreurs de configuration des autorisations qui peuvent être exploitées.

Par exemple, une personne peut profiter d’une autorisation IAM mal configurée pour prendre le contrôle d’un compte de service GKE et apporter des modifications à un cluster d’applications. 

La création de comptes d’utilisateurs et de services dotés de privilèges minimaux (et l’octroi d’autorisations supplémentaires uniquement lorsque cela est nécessaire) peut aider à protéger les ressources Kubernetes contre les accès non autorisés. 

3 – Restreindre l’accès à l’API de métadonnées du fournisseur cloud

Les cloud providers fournissent souvent une API de pour stocker des métadonnées sur les ressources de l’environnement. 

Les métadonnées peuvent inclure des informations d’identification cloud, des jetons d’identité et d’autres informations sensibles auxquelles les pods en cours d’exécution ont un accès complet par défaut. 

Par exemple, un pod compromis dans un cluster EKS pourrait exposer via ses métadonnées les informations d’identifications d’une instance EC2. 

Conclusion

Les microservices sont désormais utilisés à grande échelle dans toutes les entreprises, ce qui rend impératif le respect de toutes les bonnes pratiques de sécurité à tout moment en suivant les principes du moindre privilège et de la défense en profondeur.  Si un attaquant parvient à compromettre un composant, il ne doit pas obtenir un accès complet au système. Au contraire, veillez à ce que les attaquants doivent pénétrer dans des couches supplémentaires avant de pouvoir causer des dommages importants ou accéder à des données sensibles.

Vous avez un projet Cloud ?