Fermer

avril 26, 2021

Faciliter la conformité de la sécurité avec l'opérateur de conformité OpenShift: partie 2


Dans la première partie de cette série j'ai discuté de la puissance de Red Hat's Compliance Operator pour sécuriser vos clusters OpenShift 4.x. J'ai donné un aperçu rapide de l'installation, puis j'ai expliqué comment lancer des analyses de conformité et examiner les résultats de haut niveau. J'ai également montré la puissance de l'Opérateur de Conformité en appliquant toutes les corrections automatisées fournies avec l'opérateur.

Dans cette section, je vais extraire les résultats de mes scans et générer un joli rapport d'évaluation OpenSCAP au format html , ainsi qu'une simple liste de tâches pour les éléments restants qui nécessitent une correction manuelle.

Si vous vous souvenez de mon premier message, j'ai effectué des analyses contre mes nœuds worker et master, ainsi que la plate-forme OpenShift Container Platform elle-même. J'ai montré comment vous pouvez voir les résultats de ces analyses dans l'onglet ComplianceScan de l'opérateur.

 Compop 1.1

Les résultats de ces analyses sont stockés dans une revendication de volume persistant (PVC), un pour chaque type de scan. Si vous accédez au projet de conformité OpenShift dans la console, vous verrez qu'il a trois PVC qui lui sont assignés:

 Compop 1.2

Vous pouvez voir la même chose depuis la CLI en exécutant cette commande:

$ oc get pvc -n openshift-compliance

Je veux extraire les fichiers que l'analyse a générés à partir de ces PVC, et pour ce faire, je vais créer un pod et montez ces volumes.

La documentation Red Hat OpenShift contient un simple fichier yaml qui peut être utilisé pour créer ce pod et monter les volumes. Voici à quoi ressemble le yaml:

 Compop 1.3

Notez que vous pouvez monter les trois volumes sur ce pod unique. Cependant, vous pourriez rencontrer un problème avec cela si vos PVC sont dans différentes zones de disponibilité dans un environnement cloud, donc pour ce didacticiel, je vais simplement monter les résultats des nœuds de travail.

J'ai enregistré ce fichier sous pv-extract .yaml, puis exécutez cette commande CLI OpenShift pour créer le pod:

$ oc create -f pv-extract.yaml

Donnez au pod le temps de créer, puis vous devriez pouvoir copier les résultats du volume vers votre machine locale. Avant de faire cela, j'ai d'abord créé une petite structure de répertoires sur mon hôte bastion pour héberger tous les résultats. J'ai créé un répertoire appelé scan-results avec les sous-répertoires master, worker et ocp. Ensuite, j'ai exécuté cette commande:

$ oc cp pv-extract: / workers-scan-results ./scan-results/worker/[19459008[19659002Deplusilestimportantdesupprimercepodsinonlevolumeneserapasdisponiblepourleprochainscan:

$ oc delete pod pv-extract

Maintenant, dans ce répertoire téléchargé, vous verrez qu'un ou plusieurs sous-répertoires ont été copiés à partir du pod. Ceux-ci sont numérotés séquentiellement, en commençant par 0. Dans mon cas, il y en a trois:

$ ls -l

total 0

drwxr-xr-x. 2 ec2-user ec2-user 224 14 avril 18:05 0

drwxr-xr-x. 2 ec2-user ec2-user 224 avril 14 18:05 1

 Plates-formes et technologie - Un guide des chefs d'entreprise sur les principales tendances du cloud

drwxr-xr-x. 2 ec2-user ec2-user 259 14 avril 18:15 2

Si vous vous souvenez bien, la configuration par défaut de ScanSetting contenait une entrée de style cron pour exécuter les analyses quotidiennement. Chaque résultat d'analyse est contenu dans un répertoire distinct. De plus, lorsque j’ai lancé manuellement un scan, il a également créé un répertoire séparé.

Travaillons avec le répertoire numéro 2, car il contient les résultats de mon scan après avoir appliqué toutes les corrections automatiques. Vous verrez que dans mon cas, ce répertoire contient trois fichiers bzip'd:

$ ls

rhcos4-modéré-worker-ip-10-0-0-1.ec2.internal-pod.xml. bzip2

rhcos4-travailleur-modéré-ip-10-0-0-2.ec2.internal-pod.xml.bzip2

rhcos4-travailleur-modéré-ip-10-0-0-3.ec2. internal-pod.xml.bzip2

Il y a un fichier pour chacun des trois nœuds de travail qui ont été analysés.

Je veux convertir ces fichiers en un rapport OpenSCAP, et pour ce faire, je dois d'abord installez OpenSCAP. La machine sur laquelle je travaille en tant qu'hôte bastion est une machine RHEL8 et les étapes ci-dessous sont pour cela. Vous devrez peut-être ajuster ces étapes quelque peu pour votre version de système d'exploitation. De plus, je vais exécuter ces deux commandes en tant que root (ou vous pouvez utiliser sudo):

# curl -L http://copr.fedoraproject.org/coprs/openscapmaint/openscap-latest/repo / epel- 8 / openscapmaint-openscap-latest-epel-8.repo

-o /etc/yum.repos.d/openscapmaint-openscap-latest-epel-8.repo

# yum install -y openscap openscap-utils scap-security-guide –skip-broken

Maintenant qu'OpenSCAP est installé, je vais prendre l'un des nœuds worker bzip2 et générez un rapport au format html avec cette commande:

$ oscap xccdf generate report > .html

Pour mon exemple, voici à quoi ressemble la commande :

$ oscap xccdf génère un rapport rhcos4-modéré-worker-ip-10-0-0-1.ec2.internal-pod.xml.bzip2> worker-ip-10-0-0-1 .html

Une fois ce rapport généré, je peux le visualiser dans un navigateur Web et voir que j'ai un format très bien d rapport, avec beaucoup de détails utiles.

Voici quelques extraits de ce à quoi ressemble ce rapport:

 Compop 1.4

 Compop 1.5

 Compop 1.6

Vous verrez également que vous avez la possibilité d'explorer chaque résultat en cliquant dessus:

 Compop 1.7

Souvenez-vous que vous voudrez pour l'exécuter pour chaque volume (worker, master, ocp) et pour chaque fichier bzip2. Cela dépasse le cadre de ce blog, mais clairement, ce type d'exercice, où vous exécuterez des étapes similaires à plusieurs reprises, se prête bien à une certaine automatisation (comme Ansible) et / ou gitops.

Une dernière chose que j'aimerais à afficher dans cet article est un moyen simple de créer une liste de tâches des éléments restants. Souvenez-vous qu'après avoir exécuté mon scan, j'ai exécuté cette commande pour voir les résultats de haut niveau:

$ oc get compliancecheckresult

Elle a fourni une liste de toutes les vérifications et leur statut (réussite, échec, etc…).

 Compop 1.8

** Remarque, ceci n'est qu'un échantillon. La liste complète des résultats est beaucoup plus longue.

Vous pouvez changer le format de sortie de cette commande en yaml ou json et le sortir dans un fichier pour obtenir toutes les informations détaillées. Par exemple:

$ oc get compliancecheckresult -o yaml> checkresult.yaml

Vous pouvez prendre ce fichier et le convertir en csv ou l'importer dans une base de données simple, selon vos préférences. J'aime utiliser l'un des sites de conversion en ligne, comme http://onlineyamltools.com pour le convertir en csv, que je peux ensuite manipuler dans une feuille de calcul.

Dans le prochain blog, je Nous allons discuter des options pour corriger les résultats qui n'ont pas de correctif automatisé inclus avec l'opérateur.

Références:

Red Hat OpenShift Compliance Operator Documentation




Source link