5.14. Utilisation du plugin oc-compliance
Bien que l'Opérateur de Conformité automatise de nombreux contrôles et remédiations pour le cluster, le processus complet de mise en conformité d'un cluster nécessite souvent une interaction de l'administrateur avec l'API de l'Opérateur de Conformité et d'autres composants. Le plugin oc-compliance facilite ce processus.
5.14.1. Installation du plugin oc-compliance Copier lienLien copié sur presse-papiers!
Procédure
Extraire l'image
oc-compliancepour obtenir le binaireoc-compliance:podman run --rm -v ~/.local/bin:/mnt/out:Z registry.redhat.io/compliance/oc-compliance-rhel8:stable /bin/cp /usr/bin/oc-compliance /mnt/out/
$ podman run --rm -v ~/.local/bin:/mnt/out:Z registry.redhat.io/compliance/oc-compliance-rhel8:stable /bin/cp /usr/bin/oc-compliance /mnt/out/Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
W0611 20:35:46.486903 11354 manifest.go:440] Chose linux/amd64 manifest from the manifest list.
W0611 20:35:46.486903 11354 manifest.go:440] Chose linux/amd64 manifest from the manifest list.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vous pouvez maintenant lancer
oc-compliance.
5.14.2. Récupération des résultats bruts Copier lienLien copié sur presse-papiers!
Lorsqu'un contrôle de conformité est terminé, les résultats des contrôles individuels sont répertoriés dans la ressource personnalisée (CR) ComplianceCheckResult qui en résulte. Cependant, un administrateur ou un auditeur peut avoir besoin des détails complets de l'analyse. L'outil OpenSCAP crée un fichier au format ARF (Advanced Recording Format) contenant les résultats détaillés. Ce fichier ARF est trop volumineux pour être stocké dans une carte de configuration ou une autre ressource Kubernetes standard, un volume persistant (PV) est donc créé pour le contenir.
Procédure
L'obtention des résultats du PV avec l'Opérateur de Conformité est un processus en quatre étapes. Cependant, avec le plugin
oc-compliance, vous pouvez utiliser une seule commande :oc compliance fetch-raw <object-type> <object-name> -o <output-path>
$ oc compliance fetch-raw <object-type> <object-name> -o <output-path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<object-type>peut êtrescansettingbinding,compliancescanoucompliancesuite, en fonction de l'objet avec lequel les balayages ont été lancés. <object-name>est le nom de la reliure, de la suite ou de l'objet de numérisation pour lequel le fichier ARF doit être rassemblé, et<output-path>est le répertoire local dans lequel les résultats doivent être placés.Par exemple :
oc compliance fetch-raw scansettingbindings my-binding -o /tmp/
$ oc compliance fetch-raw scansettingbindings my-binding -o /tmp/Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Affiche la liste des fichiers du répertoire :
ls /tmp/ocp4-cis-node-master/
$ ls /tmp/ocp4-cis-node-master/
Exemple de sortie
ocp4-cis-node-master-ip-10-0-128-89.ec2.internal-pod.xml.bzip2 ocp4-cis-node-master-ip-10-0-150-5.ec2.internal-pod.xml.bzip2 ocp4-cis-node-master-ip-10-0-163-32.ec2.internal-pod.xml.bzip2
ocp4-cis-node-master-ip-10-0-128-89.ec2.internal-pod.xml.bzip2 ocp4-cis-node-master-ip-10-0-150-5.ec2.internal-pod.xml.bzip2 ocp4-cis-node-master-ip-10-0-163-32.ec2.internal-pod.xml.bzip2
Extraire les résultats :
bunzip2 -c resultsdir/worker-scan/worker-scan-stage-459-tqkg7-compute-0-pod.xml.bzip2 > resultsdir/worker-scan/worker-scan-ip-10-0-170-231.us-east-2.compute.internal-pod.xml
$ bunzip2 -c resultsdir/worker-scan/worker-scan-stage-459-tqkg7-compute-0-pod.xml.bzip2 > resultsdir/worker-scan/worker-scan-ip-10-0-170-231.us-east-2.compute.internal-pod.xml
Voir les résultats :
ls resultsdir/worker-scan/
$ ls resultsdir/worker-scan/
Exemple de sortie
worker-scan-ip-10-0-170-231.us-east-2.compute.internal-pod.xml worker-scan-stage-459-tqkg7-compute-0-pod.xml.bzip2 worker-scan-stage-459-tqkg7-compute-1-pod.xml.bzip2
worker-scan-ip-10-0-170-231.us-east-2.compute.internal-pod.xml
worker-scan-stage-459-tqkg7-compute-0-pod.xml.bzip2
worker-scan-stage-459-tqkg7-compute-1-pod.xml.bzip2
5.14.3. Réexécution des analyses Copier lienLien copié sur presse-papiers!
Bien qu'il soit possible d'exécuter des analyses en tant que tâches planifiées, vous devez souvent réexécuter une analyse à la demande, en particulier après l'application de remédiations ou lorsque d'autres changements sont apportés au cluster.
Procédure
La relance d'une analyse à l'aide de l'opérateur de conformité nécessite l'utilisation d'une annotation sur l'objet de l'analyse. Cependant, avec le plugin
oc-compliance, vous pouvez réexécuter une analyse à l'aide d'une seule commande. Entrez la commande suivante pour réexécuter les analyses de l'objetScanSettingBindingnommémy-binding:oc compliance rerun-now scansettingbindings my-binding
$ oc compliance rerun-now scansettingbindings my-bindingCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Rerunning scans from 'my-binding': ocp4-cis Re-running scan 'openshift-compliance/ocp4-cis'
Rerunning scans from 'my-binding': ocp4-cis Re-running scan 'openshift-compliance/ocp4-cis'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.14.4. Utilisation des ressources personnalisées ScanSettingBinding Copier lienLien copié sur presse-papiers!
En utilisant les ressources personnalisées (CR) ScanSetting et ScanSettingBinding fournies par l'Opérateur de Conformité, il est possible d'exécuter des analyses pour plusieurs profils tout en utilisant un ensemble commun d'options d'analyse, telles que schedule, machine roles, tolerations, et ainsi de suite. Bien que cela soit plus facile que de travailler avec plusieurs objets ComplianceSuite ou ComplianceScan, cela peut perturber les nouveaux utilisateurs.
La sous-commande oc compliance bind vous aide à créer un CR ScanSettingBinding.
Procédure
Exécutez :
oc compliance bind [--dry-run] -N <binding nom> [-S <scansetting nom>] <objtype/objname> [..<objtype/objname>]
$ oc compliance bind [--dry-run] -N <binding nom> [-S <scansetting nom>] <objtype/objname> [..<objtype/objname>]Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Si vous omettez l'indicateur
-S, le paramètre de balayagedefaultfourni par l'opérateur de conformité est utilisé. -
Le type d'objet est le type d'objet Kubernetes, qui peut être
profileoutailoredprofile. Plusieurs objets peuvent être fournis. -
Le nom de l'objet est le nom de la ressource Kubernetes, par exemple
.metadata.name. Ajouter l'option
--dry-runpour afficher le fichier YAML des objets créés.Par exemple, compte tenu des profils et des paramètres de numérisation suivants :
oc get profile.compliance -n openshift-compliance
$ oc get profile.compliance -n openshift-complianceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get scansettings -n openshift-compliance
$ oc get scansettings -n openshift-complianceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME AGE default 10m default-auto-apply 10m
NAME AGE default 10m default-auto-apply 10mCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Si vous omettez l'indicateur
Pour appliquer les paramètres de
defaultaux profilsocp4-cisetocp4-cis-node, exécutez :oc compliance bind -N my-binding profile/ocp4-cis profile/ocp4-cis-node
$ oc compliance bind -N my-binding profile/ocp4-cis profile/ocp4-cis-nodeCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Creating ScanSettingBinding my-binding
Creating ScanSettingBinding my-bindingCopy to Clipboard Copied! Toggle word wrap Toggle overflow Une fois que le CR
ScanSettingBindingest créé, le profil lié commence à numériser pour les deux profils avec les paramètres correspondants. Dans l'ensemble, il s'agit de la méthode la plus rapide pour commencer la numérisation avec l'opérateur de conformité.
5.14.5. Contrôles d'impression Copier lienLien copié sur presse-papiers!
Les normes de conformité sont généralement organisées selon la hiérarchie suivante :
- Un référentiel est la définition de haut niveau d'un ensemble de contrôles pour une norme particulière. Par exemple, FedRAMP Moderate ou Center for Internet Security (CIS) v.1.6.0.
- Un contrôle décrit une famille d'exigences qui doivent être respectées pour être en conformité avec le référentiel. Par exemple, FedRAMP AC-01 (politique et procédures de contrôle d'accès).
- Une règle est un contrôle unique spécifique au système mis en conformité, et une ou plusieurs de ces règles correspondent à un contrôle.
- L'Opérateur de Conformité gère le regroupement des règles dans un profil pour un seul benchmark. Il peut être difficile de déterminer les contrôles que l'ensemble des règles d'un profil satisfait.
Procédure
La sous-commande
oc compliancecontrolsfournit un rapport sur les normes et les contrôles auxquels un profil donné satisfait :oc compliance controls profile ocp4-cis-node
$ oc compliance controls profile ocp4-cis-nodeCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.14.6. Récupérer les détails de la mise en conformité Copier lienLien copié sur presse-papiers!
L'opérateur de conformité fournit des objets de remédiation qui sont utilisés pour automatiser les changements nécessaires pour rendre le cluster conforme. La sous-commande fetch-fixes peut vous aider à comprendre exactement quelles remédiations de configuration sont utilisées. Utilisez la sous-commande fetch-fixes pour extraire les objets de remédiation d'un profil, d'une règle ou d'un objet ComplianceRemediation dans un répertoire à inspecter.
Procédure
Voir les remédiations pour un profil :
oc compliance fetch-fixes profile ocp4-cis -o /tmp
$ oc compliance fetch-fixes profile ocp4-cis -o /tmpCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- L'avertissement
No fixes to persistest attendu chaque fois que des règles d'un profil n'ont pas de remédiation correspondante, soit parce que la règle ne peut pas être remédiée automatiquement, soit parce qu'une remédiation n'a pas été fournie.
Vous pouvez visualiser un exemple de fichier YAML. La commande
headvous montrera les 10 premières lignes :head /tmp/ocp4-api-server-audit-log-maxsize.yaml
$ head /tmp/ocp4-api-server-audit-log-maxsize.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Visualiser la remédiation à partir d'un objet
ComplianceRemediationcréé après une analyse :oc get complianceremediations -n openshift-compliance
$ oc get complianceremediations -n openshift-complianceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME STATE ocp4-cis-api-server-encryption-provider-cipher NotApplied ocp4-cis-api-server-encryption-provider-config NotApplied
NAME STATE ocp4-cis-api-server-encryption-provider-cipher NotApplied ocp4-cis-api-server-encryption-provider-config NotAppliedCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc compliance fetch-fixes complianceremediations ocp4-cis-api-server-encryption-provider-cipher -o /tmp
$ oc compliance fetch-fixes complianceremediations ocp4-cis-api-server-encryption-provider-cipher -o /tmpCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Persisted compliance remediation fix to /tmp/ocp4-cis-api-server-encryption-provider-cipher.yaml
Persisted compliance remediation fix to /tmp/ocp4-cis-api-server-encryption-provider-cipher.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Vous pouvez visualiser un exemple de fichier YAML. La commande
headvous montrera les 10 premières lignes :head /tmp/ocp4-cis-api-server-encryption-provider-cipher.yaml
$ head /tmp/ocp4-cis-api-server-encryption-provider-cipher.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Soyez prudent avant d'appliquer les mesures correctives directement. Certaines remédiations peuvent ne pas être applicables en bloc, comme les règles usbguard dans le profil modéré. Dans ce cas, autorisez l'opérateur de conformité à appliquer les règles, car cela permet de traiter les dépendances et de s'assurer que le cluster reste dans un bon état.
5.14.7. Visualisation des détails de l'objet ComplianceCheckResult Copier lienLien copié sur presse-papiers!
Lorsque les analyses sont terminées, les objets ComplianceCheckResult sont créés pour les règles d'analyse individuelles. La sous-commande view-result fournit une sortie lisible par l'homme des détails de l'objet ComplianceCheckResult.
Procédure
Exécutez :
oc compliance view-result ocp4-cis-scheduler-no-bind-address
$ oc compliance view-result ocp4-cis-scheduler-no-bind-addressCopy to Clipboard Copied! Toggle word wrap Toggle overflow