8.3. Contraintes de contexte de sécurité et capacités Linux supplémentaires de OpenShift Container Platform pour le compte de service kubevirt-controller
Les contraintes de contexte de sécurité (SCC) contrôlent les autorisations pour les modules. Ces autorisations comprennent les actions qu'un module, un ensemble de conteneurs, peut effectuer et les ressources auxquelles il peut accéder. Vous pouvez utiliser les contraintes de contexte de sécurité pour définir un ensemble de conditions qu'un module doit respecter pour être accepté dans le système.
virt-controller est un contrôleur de cluster qui crée les pods virt-launcher pour les machines virtuelles dans le cluster. Ces pods sont autorisés par le compte de service kubevirt-controller.
Le compte de service kubevirt-controller se voit attribuer des SCC et des capacités Linux supplémentaires afin de pouvoir créer des pods virt-launcher avec les autorisations appropriées. Ces autorisations étendues permettent aux machines virtuelles d'utiliser les fonctionnalités d'OpenShift Virtualization qui dépassent la portée des pods typiques.
Le compte de service kubevirt-controller dispose des SCC suivants :
-
scc.AllowHostDirVolumePlugin = true
Cela permet aux machines virtuelles d'utiliser le plugin de volume hostpath. -
scc.AllowPrivilegedContainer = false
Cela permet de s'assurer que le pod virt-launcher n'est pas exécuté en tant que conteneur privilégié. scc.AllowedCapabilities = []corev1.Capability{"SYS_NICE", "NET_BIND_SERVICE", "SYS_PTRACE"}
-
SYS_NICEpermet de définir l'affinité de l'unité centrale. -
NET_BIND_SERVICEpermet les opérations DHCP et Slirp. -
SYS_PTRACEpermet à certaines versions delibvirtde trouver l'identifiant de processus (PID) deswtpm, un émulateur logiciel de Trusted Platform Module (TPM).
-
8.3.1. Affichage des définitions SCC et RBAC pour le contrôleur kubevirt Copier lienLien copié sur presse-papiers!
Vous pouvez consulter la définition de SecurityContextConstraints pour kubevirt-controller en utilisant l'outil oc:
oc get scc kubevirt-controller -o yaml
$ oc get scc kubevirt-controller -o yaml
Vous pouvez voir la définition RBAC pour le rôle de cluster kubevirt-controller en utilisant l'outil oc:
oc get clusterrole kubevirt-controller -o yaml
$ oc get clusterrole kubevirt-controller -o yaml