12.2. Configuration d'un profil seccomp personnalisé
Vous pouvez configurer un profil seccomp personnalisé, qui vous permet de mettre à jour les filtres en fonction des exigences de l'application. Cela permet aux administrateurs de clusters d'avoir un meilleur contrôle sur la sécurité des charges de travail s'exécutant dans OpenShift Container Platform.
Les profils de sécurité Seccomp répertorient les appels système (syscalls) qu'un processus peut effectuer. Les autorisations sont plus larges que SELinux, qui limite les opérations, telles que write
, à l'ensemble du système.
12.2.1. Création de profils seccomp
Vous pouvez utiliser l'objet MachineConfig
pour créer des profils.
Seccomp peut restreindre les appels système (syscalls) dans un conteneur, limitant ainsi l'accès de votre application.
Conditions préalables
- Vous avez des droits d'administrateur de cluster.
- Vous avez créé des contraintes de contexte de sécurité (SCC) personnalisées. Pour plus d'informations, voir Additional resources.
Procédure
Créer l'objet
MachineConfig
:apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker name: custom-seccomp spec: config: ignition: version: 3.2.0 storage: files: - contents: source: data:text/plain;charset=utf-8;base64,<hash> filesystem: root mode: 0644 path: /var/lib/kubelet/seccomp/seccomp-nostat.json
12.2.2. Configuration du profil seccomp personnalisé
Prérequis
- Vous avez des droits d'administrateur de cluster.
- Vous avez créé des contraintes de contexte de sécurité (SCC) personnalisées. Pour plus d'informations, voir "Ressources supplémentaires".
- Vous avez créé un profil seccomp personnalisé.
Procédure
-
Téléchargez votre profil seccomp personnalisé sur
/var/lib/kubelet/seccomp/<custom-name>.json
à l'aide de Machine Config. Voir "Ressources supplémentaires" pour les étapes détaillées. Mettre à jour le SCC personnalisé en fournissant une référence au profil seccomp personnalisé créé :
seccompProfiles: - localhost/<custom-name>.json 1
- 1
- Indiquez le nom de votre profil seccomp personnalisé.
12.2.3. Application du profil seccomp personnalisé à la charge de travail
Prérequis
- L'administrateur du cluster a configuré le profil seccomp personnalisé. Pour plus de détails, voir "Setting up the custom seccomp profile".
Procédure
Appliquez le profil seccomp à la charge de travail en définissant le champ
securityContext.seccompProfile.type
comme suit :Exemple :
spec: securityContext: seccompProfile: type: Localhost localhostProfile: <custom-name>.json 1
- 1
- Indiquez le nom de votre profil seccomp personnalisé.
Vous pouvez également utiliser les annotations de pods
seccomp.security.alpha.kubernetes.io/pod: localhost/<custom-name>.json
. Cependant, cette méthode est obsolète dans OpenShift Container Platform 4.12.
Lors du déploiement, le contrôleur d'admission valide les éléments suivants :
- Les annotations par rapport aux CCN actuels autorisées par le rôle de l'utilisateur.
- Le SCC, qui comprend le profil seccomp, est autorisé pour le pod.
Si le SCC est autorisé pour le pod, le kubelet exécute le pod avec le profil seccomp spécifié.
Assurez-vous que le profil seccomp est déployé sur tous les nœuds de travail.
Le SCC personnalisé doit avoir la priorité appropriée pour être automatiquement attribué au pod ou remplir d'autres conditions requises par le pod, telles que l'autorisation de CAP_NET_ADMIN.