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_NICE
permet de définir l'affinité de l'unité centrale. -
NET_BIND_SERVICE
permet les opérations DHCP et Slirp. -
SYS_PTRACE
permet à certaines versions delibvirt
de 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
Vous pouvez consulter la définition de SecurityContextConstraints
pour kubevirt-controller
en utilisant l'outil oc
:
$ 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