Modification du libellé SELinux uniquement pour la configuration de déploiement comportant le pod qui monte la réservation de volume persistant de l'application existante
Vérifiez que l'application existante et les pods openshift-storage utilisent les mêmes libellés SELinux sur les fichiers, en modifiant le libellé SELinux sur la configuration de déploiement comportant le pod qui monte l'application existante.
Procédure
- Créez un
sccavec les optionsMustRunAsetseLinuxOptions, avec la sécurité multicatégorie (MCS) utilisée par le projetopenshift-storage.Exemple de fichier YAML:cat << EOF >> scc.yamlallowHostDirVolumePlugin: false allowHostIPC: false allowHostNetwork: false allowHostPID: false allowHostPorts: false allowPrivilegeEscalation: true allowPrivilegedContainer: false allowedCapabilities: null apiVersion: security.openshift.io/v1 defaultAddCapabilities: null fsGroup: type: MustRunAs groups: - system:authenticated kind: SecurityContextConstraints metadata: annotations: name: restricted-pvselinux priority: null readOnlyRootFilesystem: false requiredDropCapabilities: - KILL - MKNOD - SETUID - SETGID runAsUser: type: MustRunAsRange seLinuxContext: seLinuxOptions: level: s0:c26,c0 type: MustRunAs supplementalGroups: type: RunAsAny users: [] volumes: - configMap - downwardAPI - emptyDir - persistentVolumeClaim - projected - secret EOFoc create -f scc.yaml - Créez un compte de service pour le déploiement et ajoutez-le au
sccnouvellement créé.- Créez un compte de service, où < service_account_name> est le nom du compte de service.
oc create serviceaccount <service_account_name>Par exemple :
oc create serviceaccount testnamespacesa - Ajoutez le compte de service au
sccnouvellement créé:oc adm policy add-scc-to-user restricted-pvselinux -z <service_account_name>Par exemple :
oc adm policy add-scc-to-user restricted-pvselinux -z testname
- Créez un compte de service, où < service_account_name> est le nom du compte de service.
- Correction du déploiement d'application existant afin qu'il utilise le compte de service nouvellement créé.Cela vous permet de spécifier le libellé SELinux dans le déploiement.
oc patch dc/<pod_name> '{"spec":{"template":{"spec":{"serviceAccountName": "<service_account_name>"}}}}'Par exemple :oc patch dc/cephfs-write-workload-generator-no-cache --patch '{"spec":{"template":{"spec":{"serviceAccountName": "testnamespacesa"}}}}' - Editez le déploiement pour spécifier le contexte de sécurité à utiliser au niveau du libellé SELinux dans la configuration de déploiement:
oc edit dc <pod_name> -n <application_namespace>Ajoutez les lignes suivantes :spec: template: metadata: securityContext: seLinuxOptions: Level: <security_context_value>- valeur_contexte_sécurité
Vous pouvez trouver cette valeur lorsque vous exécutez la commande pour créer un dossier dédié pour S3 dans le partage NSFS sur le volume persistant et la réservation de volume persistant CephFS du pod d'application existant.
Par exemple :
oc edit dc cephfs-write-workload-generator-no-cache -n testnamespacespec: template: metadata: securityContext: seLinuxOptions: level: s0:c26,c0 - Vérifiez que le contexte de sécurité à utiliser au niveau du libellé SELinux dans la configuration de déploiement est correctement spécifié.
oc get dc <pod_name> -n <application_namespace> -o yaml | grep -A 2 securityContextPar exemple :oc get dc cephfs-write-workload-generator-no-cache -n testnamespace -o yaml | grep -A 2 securityContextsecurityContext: seLinuxOptions: level: s0:c26,c0L'application existante est redémarrée et commence à utiliser les mêmes libellés SELinux que l'espace de nom
openshift-storage.