Parce que… c’est l’épisode 0x339!

Shameless plug

Description

Bienvenue à cet épisode technique où Sébastien nous présente le concept de conteneurisation et sa pertinence, en particulier dans le monde de Kubernetes. Les containers, souvent considérés comme la pierre angulaire de la modernité en informatique, sont comparés à des versions allégées des systèmes d’exploitation, construites par couches superposées. Cette superposition permet de standardiser et de faciliter la distribution.

Docker, avec son système de “docker build”, a rendu populaire cette manière de construire des containers. On commence avec une image de base, souvent un système d’exploitation complet comme Debian ou Ubuntu, puis on ajoute des couches selon les besoins de l’application. Cependant, cette approche peut s’avérer lourde et vulnérable aux attaques.

Pour résoudre ce problème, on préfère souvent utiliser des images de base plus légères, comme Alpine, qui est un OS minimaliste. L’avantage est double : sécurité renforcée et rapidité de déploiement. En effet, un conteneur minimaliste limite l’exposition aux attaques.

Cependant, toutes les applications ne sont pas adaptées à ce modèle minimaliste. Par exemple, les langages interprétés comme Python ou Node.js nécessitent un environnement d’exécution plus complet, d’où la nécessité d’avoir des containers plus volumineux. Dans ces cas, la sécurité repose en partie sur l’isolation du container, qui est réalisée grâce aux fonctionnalités Linux.

Les “capabilités” de Linux permettent de restreindre les permissions d’un conteneur. Par exemple, un conteneur peut être privé de l’accès au réseau ou avoir des permissions d’accès aux disques restreintes. Ces restrictions ajoutent une couche de sécurité supplémentaire. En outre, il est recommandé de ne pas exécuter les conteneurs en tant qu’utilisateur “root”, car cela présente des risques supplémentaires.

En conclusion, la conteneurisation, popularisée par des outils comme Docker, a transformé la manière dont les applications sont déployées. Toutefois, il est crucial de comprendre et de maîtriser les aspects de sécurité associés pour garantir un environnement sûr et efficace.

Notes

  • À venir

Collaborateurs

Crédits

Télécharger .m4a (25.3M) Télécharger .mp3 (21.4M)

Tags: alpine, conatiner, conteneur, docker, java, k8s, kubernetes, python, root


Tweet