Dans cet article, nous nous intéressons aux nouveautés concernant les améliorations de sécurité de Kubernetes sur les versions toujours maintenues au moment de l’écriture : 1.22, 1.23 et 1.24 publiées respectivement en août 2021, décembre 2021 et mai 2022.
À défaut d’une introduction à Kubernetes, voici une courte présentation des mots de vocabulaire utilisés. Kubernetes est un orchestrateur de conteneurs, destiné à distribuer et lancer des images de conteneurs sur un groupe de machines appelé cluster. On peut distinguer le ou les nœuds principaux, contenant les organes nécessaires au fonctionnement du cluster, sa base de données, son serveur d’API, des contrôleurs, etc. Les utilisateurs communiquent avec le serveur d’API, qui se charge de l’authentification et l’autorisation des requêtes. Le reste des nœuds du cluster, sur lesquels un daemon, kubelet, communique avec le serveur d’API, se charge de télécharger les images et lancer les conteneurs. Les conteneurs sont groupés sous forme de pods, la plus petite unité de charge de travail dans Kubernetes, qui contient plusieurs conteneurs.
Dans cet article, nous aborderons les contrôleurs d’admission, briques s’ajoutant après l’autorisation dans...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première
[1] https://kubernetes.io/docs/concepts/security/rbac-good-practices/
[2] https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#podspec-v1-core
[3] https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
[4] https://kubernetes.io/docs/tasks/debug/debug-application/debug-running-pod/#node-shell-session
[5] https://github.com/kubernetes/enhancements/issues/5
[6] https://cloud.redhat.com/blog/openshift-kubernetes-where-weve-been-and-where-were-going-part-1
[7] https://kubernetes.io/blog/2021/04/06/podsecuritypolicy-deprecation-past-present-and-future/
[8] https://kubernetes.io/docs/concepts/security/pod-security-policy/
[9] https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/
[10] https://github.com/open-policy-agent/gatekeeper
[11] https://www.openpolicyagent.org/docs/latest/policy-language/
[12] https://github.com/kyverno/kyverno
[13] https://landscape.cncf.io/
[14] https://github.com/cruise-automation/k-rail
[15] https://kubernetes.io/docs/concepts/security/pod-security-admission/
[16] https://kubernetes.io/docs/concepts/security/pod-security-standards/
[17] https://kubernetes.io/blog/2021/12/09/pod-security-admission-beta/
[18] https://www.youtube.com/watch?v=gcz5VsvOYmI
[19] https://docs.docker.com/engine/security/seccomp/
[20] https://kubernetes.io/docs/tutorials/security/seccomp/
[21] https://kubernetes.io/docs/concepts/architecture/cri/
[22] https://github.com/opencontainers/runtime-spec
[23] https://github.com/opencontainers/runtime-spec/blob/main/implementations.md
[24] https://github.com/kubernetes-sigs/security-profiles-operator
[25] https://kubernetes.io/docs/tasks/administer-cluster/verify-signed-images/
[26] https://github.com/sigstore/cosign
[27] https://www.sigstore.dev/
[28] https://slsa.dev/
[29] https://docs.sigstore.dev/cosign/kubernetes/#cosigned-admission-controller
[30] https://asciinema.org/a/488826
[31] https://github.com/kubernetes/kubernetes/issues/91506
[32] https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/
[33] https://github.com/cyberark/kubeletctl/blob/master/API_TABLE.md
[34] https://github.com/kubernetes/sig-security/issues
[35] https://github.com/kubernetes/website/pull/33992
[36] https://github.com/kubernetes/enhancements/pull/3204
[37] https://github.com/kubernetes/sig-security/issues/13
[38] https://github.com/kubernetes/sig-security/blob/main/sig-security-tooling/learning-sessions.md
[39] https://github.com/kubernetes/enhancements/tree/master/keps/sig-security/2763-ambient-capabilities