Sécuriser vos conteneurs à l'aide de SELinux

Cette page explique comment sécuriser vos conteneurs en activant SELinux. SELinux est compatible avec RHEL et CentOS. Si vos machines hôtes exécutent RHEL ou CentOS et que vous souhaitez activer SELinux pour votre cluster, vous devez activer SELinux sur toutes vos machines hôtes. À partir de la version 1.9.0 de GKE sur Bare Metal, vous pouvez activer ou désactiver SELinux avant ou après la création ou la mise à niveau du cluster. Lorsque SELinux est activé sur l'hôte, il est activé pour l'environnement d'exécution du conteneur.

Vérifier si SELinux est activé

SELinux est activé par défaut sur RHEL et CentOS. Pour le vérifier, exécutez la commande suivante :

$ getenforce

La commande renvoie Enforcing, Permissive ou Disabled. Si la commande renvoie Enforcing, vous pouvez procéder à la mise à niveau ou à la création de vos clusters.

Activer SELinux

Si la commande getenforce renvoie Permissive, vous pouvez passer en mode Enforcing à l'aide de la commande setenforce. Le passage de Permissive à Enforcing à l'aide du mode setenforce ne nécessite pas de redémarrage du système. Toutefois, si vous souhaitez que les modifications soient persistantes lors des redémarrages, vous devez mettre à jour le fichier /etc/selinux/config.

Pour passer en mode Enforcing, exécutez la commande suivante :

$ sudo setenforce 1 # temporary
$ sudo sed -i 's/SELINUX=permissive/SELINUX=enforcing/g' /etc/selinux/config # persistent - after reboot

Si SELinux est défini sur Disabled, nous vous recommandons de l'activer d'abord en mode Permissive, puis de redémarrer le système pour vérifier qu'il démarre correctement. S'il n'y a pas d'erreur SELinux, vous pouvez passer en toute sécurité SELinux en mode Enforcing.

  1. Facultatif : Activez SELinux en mode Permissive :

    $ sudo sed -i 's/SELINUX=disabled/SELINUX=permissive/g' /etc/selinux/config
    $ sudo reboot
    
  2. Si le système redémarre correctement sans erreur SELinux, vous pouvez activer le mode Enforcing :

    $ sudo sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config
    $ sudo reboot
    

Une fois que SELinux est activé en mode Enforcing, SELinux est activé pour tous les processus de l'hôte, y compris l'environnement d'exécution du conteneur.