3.13. Utiliser les pods dans un contexte de sécurité privilégié
La configuration par défaut d'OpenShift Pipelines 1.3.x et des versions ultérieures ne vous permet pas d'exécuter des pods avec un contexte de sécurité privilégié, si les pods résultent de l'exécution d'un pipeline ou d'une tâche. Pour de tels pods, le compte de service par défaut est pipeline
, et la contrainte de contexte de sécurité (SCC) associée au compte de service pipeline
est pipelines-scc
. La SCC pipelines-scc
est similaire à la SCC anyuid
, mais avec des différences mineures telles que définies dans le fichier YAML pour la SCC des pipelines :
Exemple pipelines-scc.yaml
snippet
En outre, la tâche de cluster Buildah
, livrée avec OpenShift Pipelines, utilise vfs
comme pilote de stockage par défaut.
3.13.1. Exécution des pods d'exécution de pipeline et d'exécution de tâches avec un contexte de sécurité privilégié Copier lienLien copié sur presse-papiers!
Procédure
Pour exécuter un pod (résultant de l'exécution d'un pipeline ou d'une tâche) avec le contexte de sécurité privileged
, procédez aux modifications suivantes :
Configurez le compte d'utilisateur ou le compte de service associé pour qu'il dispose d'une CSC explicite. Vous pouvez effectuer la configuration en utilisant l'une des méthodes suivantes :
Exécutez la commande suivante :
oc adm policy add-scc-to-user <scc-name> -z <service-account-name>
$ oc adm policy add-scc-to-user <scc-name> -z <service-account-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vous pouvez également modifier les fichiers YAML pour
RoleBinding
, etRole
ouClusterRole
:Exemple d'objet
RoleBinding
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple d'objet
ClusterRole
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Remplacer par un rôle de cluster approprié en fonction de la liaison de rôle que vous utilisez.
NoteLa meilleure pratique consiste à créer une copie des fichiers YAML par défaut et à apporter des modifications au fichier dupliqué.
-
Si vous n'utilisez pas le pilote de stockage
vfs
, configurez le compte de service associé à l'exécution de la tâche ou du pipeline pour qu'il ait un SCC privilégié, et définissez le contexte de sécurité commeprivileged: true
.
3.13.2. Exécution d'un pipeline et d'une tâche à l'aide d'un SCC personnalisé et d'un compte de service personnalisé Copier lienLien copié sur presse-papiers!
Lors de l'utilisation de la contrainte de contexte de sécurité (SCC) pipelines-scc
associée au compte de service par défaut pipelines
, les pods d'exécution de pipeline et d'exécution de tâche peuvent être confrontés à des dépassements de délai. Cela se produit parce que dans la SCC par défaut pipelines-scc
, le paramètre fsGroup.type
est défini sur MustRunAs
.
Pour plus d'informations sur les délais d'attente des pods, voir BZ#1995779.
Pour éviter les délais d'attente des pods, vous pouvez créer un SCC personnalisé avec le paramètre fsGroup.type
défini sur RunAsAny
, et l'associer à un compte de service personnalisé.
La meilleure pratique consiste à utiliser un SCC et un compte de service personnalisés pour les exécutions de pipeline et les exécutions de tâches. Cette approche permet une plus grande flexibilité et n'interrompt pas les exécutions lorsque les valeurs par défaut sont modifiées lors d'une mise à niveau.
Procédure
Définir une CSC personnalisée avec le paramètre
fsGroup.type
fixé àRunAsAny
:Exemple : CCN personnalisé
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer le SCC personnalisé :
Exemple : Créer le site
my-scc
SCCoc create -f my-scc.yaml
$ oc create -f my-scc.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer un compte de service personnalisé :
Exemple : Créer un compte de service
fsgroup-runasany
oc create serviceaccount fsgroup-runasany
$ oc create serviceaccount fsgroup-runasany
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Associer le SCC personnalisé au compte de service personnalisé :
Exemple : Associer le CCN
my-scc
au compte de servicefsgroup-runasany
oc adm policy add-scc-to-user my-scc -z fsgroup-runasany
$ oc adm policy add-scc-to-user my-scc -z fsgroup-runasany
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous souhaitez utiliser le compte de service personnalisé pour des tâches privilégiées, vous pouvez associer le
privileged
SCC au compte de service personnalisé en exécutant la commande suivante :Exemple : Associer le CCN
privileged
au compte de servicefsgroup-runasany
oc adm policy add-scc-to-user privileged -z fsgroup-runasany
$ oc adm policy add-scc-to-user privileged -z fsgroup-runasany
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Utilisez le compte de service personnalisé dans l'exécution du pipeline et l'exécution de la tâche :
Exemple : Pipeline exécuter YAML avec
fsgroup-runasany
compte de service personnaliséCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple : Exécution d'une tâche YAML avec le compte de service personnalisé
fsgroup-runasany
Copy to Clipboard Copied! Toggle word wrap Toggle overflow