Modifica dell'etichetta SELinux solo per la configurazione di distribuzione che ha il pod che monta la PVC dell'applicazione legacy
Verificare che l'applicazione legacy e i pod di openshift-storage utilizzino le stesse etichette SELinux sui file, modificando l'etichetta SELinux nella configurazione di distribuzione che ha il pod che monta l'applicazione legacy.
Procedura
- Creare un nuovo
scccon le opzioniMustRunAseseLinuxOptions, con MCS (Multi Category Security) utilizzato dal progettoopenshift-storage.File YAML di esempio: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 - Crea un account di servizio per la distribuzione e aggiungalo al
sccappena creato.- Creare un account di servizio, dove < service_account_name> è il nome dell'account di servizio.
oc create serviceaccount <service_account_name>Ad esempio:
oc create serviceaccount testnamespacesa - Aggiungi l'account di servizio al
sccappena creato:oc adm policy add-scc-to-user restricted-pvselinux -z <service_account_name>Ad esempio:
oc adm policy add-scc-to-user restricted-pvselinux -z testname
- Creare un account di servizio, dove < service_account_name> è il nome dell'account di servizio.
- Correggi la distribuzione dell'applicazione legacy in modo che utilizzi l'account del servizio creato di recente.Ciò consente di specificare l'etichetta SELinux nella distribuzione.
oc patch dc/<pod_name> '{"spec":{"template":{"spec":{"serviceAccountName": "<service_account_name>"}}}}'Ad esempio:oc patch dc/cephfs-write-workload-generator-no-cache --patch '{"spec":{"template":{"spec":{"serviceAccountName": "testnamespacesa"}}}}' - Modificare la distribuzione per specificare il contesto di sicurezza da utilizzare sull'etichetta SELinux nella configurazione di distribuzione:
oc edit dc <pod_name> -n <application_namespace>Aggiungere le seguenti righe:spec: template: metadata: securityContext: seLinuxOptions: Level: <security_context_value>- valore_contesto_sicurezza
Puoi trovare questo valore quando esegui il comando per creare una cartella dedicata per S3 nella condivisione NSFS nel PV CephFS e nella PVC del pod dell'applicazione legacy.
Ad esempio:
oc edit dc cephfs-write-workload-generator-no-cache -n testnamespacespec: template: metadata: securityContext: seLinuxOptions: level: s0:c26,c0 - Verificare che il contesto di sicurezza da utilizzare con l'etichetta SELinux nella configurazione di distribuzione sia specificato correttamente
oc get dc <pod_name> -n <application_namespace> -o yaml | grep -A 2 securityContextAd esempio:oc get dc cephfs-write-workload-generator-no-cache -n testnamespace -o yaml | grep -A 2 securityContextsecurityContext: seLinuxOptions: level: s0:c26,c0L'applicazione legacy viene riavviata e inizia utilizzando le stesse etichette SELinux dello spazio dei nomi
openshift-storage.