Ce document explique comment configurer des profils Kubernetes Seccomp (Secure Computing Mode) pour les pods Apigee hybrid afin d'améliorer la sécurité en limitant les appels système (syscalls) que les conteneurs sont autorisés à effectuer.
À propos des profils Seccomp dans Kubernetes
Seccomp est une fonctionnalité de sécurité du noyau Linux qui limite les appels système qu'un processus peut effectuer. Lorsqu'ils sont utilisés avec Kubernetes, vous pouvez appliquer des profils Seccomp au securityContext d'un pod pour limiter les appels système disponibles pour ses conteneurs. Cela permet de réduire la surface d'attaque du conteneur et d'atténuer le risque d'évasion du conteneur ou d'escalade de privilèges en appliquant le principe du moindre privilège.
Pour en savoir plus sur Seccomp dans Kubernetes, consultez Secure Computing (Seccomp) dans la documentation Kubernetes.
Dans Apigee hybrid, les profils Seccomp ne sont pas activés par défaut. Vous pouvez choisir d'appliquer un profil Seccomp aux composants hybrides en ajoutant l'objet seccompProfile à votre fichier overrides.yaml.
Configurer les profils Seccomp
Vous pouvez appliquer des profils Seccomp de manière globale, par environnement ou par composant dans votre fichier overrides.yaml en ajoutant le bloc de configuration securityContext.seccompProfile. hybrid est compatible avec les types de profils Seccomp suivants :
RuntimeDefault: profil par défaut spécifié par l'environnement d'exécution du conteneur. Il s'agit de l'option recommandée, car elle offre un niveau de sécurité raisonnable tout en maintenant la compatibilité avec la plupart des charges de travail.Unconfined: n'applique aucune restriction Seccomp au pod. Il s'agit de l'option la moins sécurisée, qui doit être utilisée avec prudence.
Priorité de la configuration
Vous pouvez définir seccompProfile aux niveaux suivants dans overrides.yaml. Les paramètres au niveau du composant sont prioritaires sur ceux au niveau de l'environnement, qui sont eux-mêmes prioritaires sur les paramètres généraux :
- Au niveau du composant : s'applique à un composant spécifique (par exemple,
runtimeoucassandra). - Niveau de l'environnement : s'applique à tous les composants d'un environnement spécifique défini dans le tableau
envs[], sauf s'il est remplacé au niveau du composant. - Niveau global : s'applique à tous les composants du cluster, sauf s'il est remplacé au niveau de l'environnement ou du composant.
Exemples
Configuration globale
Pour appliquer le profil Seccomp RuntimeDefault à tous les composants qui n'ont pas de remplacement au niveau de l'environnement ou du composant, ajoutez ce qui suit au niveau supérieur de votre overrides.yaml :
securityContext: seccompProfile: type: RuntimeDefault
Configuration de l'environnement
Pour appliquer le profil Seccomp RuntimeDefault à tous les composants d'un environnement spécifique, ajoutez la configuration sous l'élément envs[] :
envs: - name: "my-environment" securityContext: seccompProfile: type: RuntimeDefault ...
Configuration des composants
Pour appliquer le profil Seccomp RuntimeDefault à un composant spécifique (par exemple, le composant d'exécution), ajoutez la configuration sous ce composant :
runtime: securityContext: seccompProfile: type: RuntimeDefault ...