15.2. A propos des valeurs de contraintes de contexte de sécurité pré-allouées
Le contrôleur d'admission est conscient de certaines conditions dans les contraintes du contexte de sécurité (SCC) qui l'amènent à rechercher des valeurs pré-allouées à partir d'un espace de noms et à remplir le SCC avant de traiter le module. Chaque stratégie SCC est évaluée indépendamment des autres stratégies, les valeurs pré-allouées, lorsqu'elles sont autorisées, pour chaque politique étant agrégées avec les valeurs de spécification du pod afin d'obtenir les valeurs finales pour les différents ID définis dans le pod en cours d'exécution.
Les SCC suivants amènent le contrôleur d'admission à rechercher des valeurs pré-allouées lorsqu'aucune plage n'est définie dans la spécification du pod :
-
Une stratégie
RunAsUser
deMustRunAsRange
sans minimum ni maximum. Admission recherche l'annotationopenshift.io/sa.scc.uid-range
pour remplir les champs de l'intervalle. -
Une stratégie
SELinuxContext
deMustRunAs
sans niveau défini. Admission recherche l'annotationopenshift.io/sa.scc.mcs
pour remplir le niveau. -
Une stratégie
FSGroup
deMustRunAs
. L'admission recherche l'annotationopenshift.io/sa.scc.supplemental-groups
. -
Une stratégie
SupplementalGroups
deMustRunAs
. L'admission recherche l'annotationopenshift.io/sa.scc.supplemental-groups
.
Pendant 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 :
-
RunAsAny
etMustRunAsNonRoot
ne fournissent pas de valeurs par défaut. Si le module a besoin d'une valeur de paramètre, telle qu'un identifiant de groupe, vous devez définir la valeur dans la spécification du module. -
MustRunAs
(valeur unique) fournissent une valeur par défaut qui est toujours utilisée. Par exemple, pour les ID de groupe, même si la spécification du pod définit sa propre valeur d'ID, la valeur du paramètre par défaut de l'espace de noms apparaît également dans les groupes du pod. -
MustRunAsRange
etMustRunAs
(basées sur une fourchette) fournissent la valeur minimale de la fourchette. Comme pour la stratégieMustRunAs
à valeur unique, la valeur par défaut du paramètre de l'espace de noms apparaît dans le pod en cours d'exécution. Si 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.
FSGroup
et SupplementalGroups
reviennent à l'annotation openshift.io/sa.scc.uid-range
si l'annotation openshift.io/sa.scc.supplemental-groups
n'existe pas pour l'espace de noms. Si aucune des deux n'existe, le CCN n'est pas créé.
Par défaut, la stratégie FSGroup
basée sur l'annotation se configure avec une seule plage basée sur la valeur minimale de l'annotation. Par exemple, si votre annotation est 1/3
, la stratégie FSGroup
se configure avec une valeur minimale et maximale de 1
. Si vous voulez permettre à davantage de groupes d'être acceptés pour le champ FSGroup
, vous pouvez configurer un CSC personnalisé qui n'utilise pas l'annotation.
L'annotation openshift.io/sa.scc.supplemental-groups
accepte une liste de blocs délimitée par des virgules au format <start>/<length
ou <start>-<end>
. L'annotation openshift.io/sa.scc.uid-range
n'accepte qu'un seul bloc.