13.2. À propos des valeurs préaffectées de contraintes de contexte de sécurité
Le contrôleur d’admission est conscient de certaines conditions dans les contraintes de contexte de sécurité (SCC) qui le déclenchent pour rechercher des valeurs préaffectées à partir d’un espace de noms et peupler le SCC avant de traiter le pod. Chaque stratégie SCC est évaluée indépendamment des autres stratégies, avec les valeurs pré-affectées, lorsque cela est permis, pour chaque politique agrégée avec des valeurs de spécification de pod pour faire les valeurs finales pour les différents ID définis dans le pod en cours d’exécution.
Les CCN suivants font en sorte que le contrôleur d’admission recherche des valeurs préaffectées lorsqu’aucune plage n’est définie dans la spécification du pod:
- La stratégie RunAsUser de MustRunAsRange n’est pas définie au minimum ou au maximum. Admission recherche l’annotation openshift.io/sa.scc.uid-range pour peupler les champs de gamme.
- La stratégie SELinuxContext de MustRunAs sans définition de niveau. L’admission recherche l’annotation openshift.io/sa.scc.mcs pour peupler le niveau.
- La stratégie FSGroup de MustRunAs. L’admission recherche l’annotation openshift.io/sa.scc.supplémental-groups.
- La stratégie des groupes supplémentaires de MustRunAs. L’admission recherche l’annotation openshift.io/sa.scc.supplémental-groups.
Au cours de la phase de génération, le fournisseur de contexte de sécurité utilise des valeurs par défaut pour toutes les valeurs de paramètres qui ne sont pas spécifiquement définies dans le pod. Les valeurs par défaut sont basées sur la stratégie sélectionnée:
- Les stratégies RunAsAny et MustRunAsNonRoot ne fournissent pas de valeurs par défaut. Lorsque le pod a besoin d’une valeur de paramètre, comme un ID de groupe, vous devez définir la valeur dans la spécification de pod.
- Les stratégies MustRunAs (valeur unique) fournissent une valeur par défaut qui est toujours utilisée. À titre d’exemple, pour les ID de groupe, même si la spécification de pod définit sa propre valeur ID, la valeur du paramètre par défaut de l’espace de noms apparaît également dans les groupes du pod.
- Les stratégies MustRunAsRange et MustRunAs (basées sur la plage) fournissent la valeur minimale de la plage. Comme pour une seule stratégie MustRunAs, la valeur par défaut de l’espace de noms apparaît dans le pod en cours d’exécution. Lorsqu’une stratégie basée sur une plage est configurable avec plusieurs plages, elle fournit la valeur minimale de la première plage configurée.
Les stratégies FSGroup et SupplementalGroups reviennent à l’annotation openshift.io/scc.uid-range si l’annotation openshift.io/scc.supplémental-groups n’existe pas sur l’espace de noms. Dans le cas contraire, la CSC n’est pas créée.
La stratégie FSGroup basée sur l’annotation se configure par défaut avec une seule plage basée sur la valeur minimale pour l’annotation. Ainsi, si votre annotation lit 1/3, la stratégie FSGroup se configure avec une valeur minimale et maximale de 1. Lorsque vous souhaitez que plus de groupes soient acceptés pour le champ FSGroup, vous pouvez configurer un SCC personnalisé qui n’utilise pas l’annotation.
L’annotation openshift.io/sa.scc.supplémental-groups accepte une liste de blocs délimitée par virgule dans le format <start>/<longueur ou <start>-<end>. L’annotation openshift.io/sa.scc.uid-range n’accepte qu’un seul bloc.