5.8. Adapter l'opérateur de conformité
Bien que l'Opérateur de Conformité soit livré avec des profils prêts à l'emploi, ceux-ci doivent être modifiés pour répondre aux besoins et aux exigences de l'organisation. Le processus de modification d'un profil est appelé tailoring.
L'opérateur de conformité fournit l'objet TailoredProfile
pour aider à adapter les profils.
5.8.1. Création d'un nouveau profil personnalisé
Vous pouvez créer un profil personnalisé à partir de zéro en utilisant l'objet TailoredProfile
. Définissez un title
et un description
appropriés et laissez le champ extends
vide. Indiquez à l'opérateur de conformité le type d'analyse que ce profil personnalisé va générer :
- Analyse des nœuds : Analyse du système d'exploitation.
- Platform scan : Analyse la configuration d'OpenShift.
Procédure
Définissez l'annotation suivante sur l'objet TailoredProfile
:
exemple new-profile.yaml
apiVersion: compliance.openshift.io/v1alpha1 kind: TailoredProfile metadata: name: new-profile annotations: compliance.openshift.io/product-type: Node 1 spec: extends: description: My custom profile 2 title: Custom profile 3
- 1
- Définissez
Node
ouPlatform
en conséquence. - 2
- Utilisez le champ
description
pour décrire la fonction du nouvel objetTailoredProfile
. - 3
- Donnez un titre à votre objet
TailoredProfile
à l'aide du champtitle
.NoteL'ajout du suffixe
-node
au champname
de l'objetTailoredProfile
est similaire à l'ajout de l'annotation de type de produitNode
et génère une analyse du système d'exploitation.
5.8.2. Utiliser des profils personnalisés pour étendre les ProfileBundles existants
Alors que la norme TailoredProfile
CR permet les opérations d'adaptation les plus courantes, la norme XCCDF offre encore plus de flexibilité dans l'adaptation des profils OpenSCAP. En outre, si votre organisation a déjà utilisé OpenScap, il se peut que vous disposiez d'un fichier d'adaptation XCCDF et que vous puissiez le réutiliser.
L'objet ComplianceSuite
contient un attribut facultatif TailoringConfigMap
qui permet de pointer vers un fichier d'adaptation personnalisé. La valeur de l'attribut TailoringConfigMap
est le nom d'une carte de configuration, qui doit contenir une clé appelée tailoring.xml
et la valeur de cette clé est le contenu de l'adaptation.
Procédure
Parcourez les règles disponibles pour Red Hat Enterprise Linux CoreOS (RHCOS)
ProfileBundle
:$ oc get rules.compliance -n openshift-compliance -l compliance.openshift.io/profile-bundle=rhcos4
Parcourez les variables disponibles sur le même site
ProfileBundle
:$ oc get variables.compliance -n openshift-compliance -l compliance.openshift.io/profile-bundle=rhcos4
Créez un profil personnalisé nommé
nist-moderate-modified
:Choisissez les règles que vous souhaitez ajouter au profil personnalisé
nist-moderate-modified
. Cet exemple étend le profilrhcos4-moderate
en désactivant deux règles et en modifiant une valeur. Utilisez la valeurrationale
pour décrire la raison de ces changements :Exemple
new-profile-node.yaml
apiVersion: compliance.openshift.io/v1alpha1 kind: TailoredProfile metadata: name: nist-moderate-modified spec: extends: rhcos4-moderate description: NIST moderate profile title: My modified NIST moderate profile disableRules: - name: rhcos4-file-permissions-var-log-messages rationale: The file contains logs of error messages in the system - name: rhcos4-account-disable-post-pw-expiration rationale: No need to check this as it comes from the IdP setValues: - name: rhcos4-var-selinux-state rationale: Organizational requirements value: permissive
Tableau 5.2. Attributs des variables de spécification Attribut Description extends
Nom de l'objet
Profile
sur lequelTailoredProfile
est construit.title
Titre lisible par l'homme de l'adresse
TailoredProfile
.disableRules
Une liste de paires de noms et de raisons. Chaque nom renvoie au nom d'un objet de règle à désactiver. La valeur de justification est un texte lisible par l'homme décrivant la raison pour laquelle la règle est désactivée.
manualRules
Une liste de paires de noms et de justifications. Lorsqu'une règle manuelle est ajoutée, le statut du résultat de la vérification sera toujours
manual
et la remédiation ne sera pas générée. Cet attribut est automatique et n'a pas de valeur par défaut lorsqu'il est défini en tant que règle manuelle.enableRules
Une liste de paires de noms et de justifications. Chaque nom fait référence au nom d'un objet de règle qui doit être activé. La valeur rationale est un texte lisible par l'homme décrivant la raison pour laquelle la règle est activée.
description
Texte lisible par l'homme décrivant le site
TailoredProfile
.setValues
Une liste de groupes de noms, de raisons d'être et de valeurs. Chaque nom fait référence à un nom de l'ensemble de valeurs. La justification est un texte lisible par l'homme décrivant l'ensemble. La valeur est le paramètre réel.
Ajouter l'attribut
tailoredProfile.spec.manualRules
:Exemple
tailoredProfile.spec.manualRules.yaml
apiVersion: compliance.openshift.io/v1alpha1 kind: TailoredProfile metadata: name: ocp4-manual-scc-check spec: extends: ocp4-cis description: This profile extends ocp4-cis by forcing the SCC check to always return MANUAL title: OCP4 CIS profile with manual SCC check manualRules: - name: ocp4-scc-limit-container-allowed-capabilities rationale: We use third party software that installs its own SCC with extra privileges
Créer l'objet
TailoredProfile
:oc create -n openshift-compliance -f new-profile-node.yaml 1
- 1
- L'objet
TailoredProfile
est créé dans l'espace de noms par défautopenshift-compliance
.
Exemple de sortie
tailoredprofile.compliance.openshift.io/nist-moderate-modified created
Définir l'objet
ScanSettingBinding
pour lier le nouveau profil personnalisénist-moderate-modified
à l'objet par défautScanSetting
.Exemple
new-scansettingbinding.yaml
apiVersion: compliance.openshift.io/v1alpha1 kind: ScanSettingBinding metadata: name: nist-moderate-modified profiles: - apiGroup: compliance.openshift.io/v1alpha1 kind: Profile name: ocp4-moderate - apiGroup: compliance.openshift.io/v1alpha1 kind: TailoredProfile name: nist-moderate-modified settingsRef: apiGroup: compliance.openshift.io/v1alpha1 kind: ScanSetting name: default
Créer l'objet
ScanSettingBinding
:$ oc create -n openshift-compliance -f new-scansettingbinding.yaml
Exemple de sortie
scansettingbinding.compliance.openshift.io/nist-moderate-modified created