Rechercher

5.14. Utilisation du plugin oc-compliance

download PDF

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

Procédure

  1. Extraire l'image oc-compliance pour obtenir le binaire oc-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/

    Exemple de sortie

    W0611 20:35:46.486903   11354 manifest.go:440] Chose linux/amd64 manifest from the manifest list.

    Vous pouvez maintenant lancer oc-compliance.

5.14.2. Récupération des résultats bruts

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>
  • <object-type> peut être scansettingbinding, compliancescan ou compliancesuite, 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/

    Exemple de sortie

    Fetching results for my-binding scans: ocp4-cis, ocp4-cis-node-worker, ocp4-cis-node-master
    Fetching raw compliance results for scan 'ocp4-cis'.......
    The raw compliance results are available in the following directory: /tmp/ocp4-cis
    Fetching raw compliance results for scan 'ocp4-cis-node-worker'...........
    The raw compliance results are available in the following directory: /tmp/ocp4-cis-node-worker
    Fetching raw compliance results for scan 'ocp4-cis-node-master'......
    The raw compliance results are available in the following directory: /tmp/ocp4-cis-node-master

Affiche la liste des fichiers du répertoire :

$ 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

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

Voir les résultats :

$ 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

5.14.3. Réexécution des analyses

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'objet ScanSettingBinding nommé my-binding:

    $ oc compliance rerun-now scansettingbindings my-binding

    Exemple de sortie

    Rerunning scans from 'my-binding': ocp4-cis
    Re-running scan 'openshift-compliance/ocp4-cis'

5.14.4. Utilisation des ressources personnalisées ScanSettingBinding

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

  1. Exécutez :

    $ oc compliance bind [--dry-run] -N <binding nom> [-S <scansetting nom>] <objtype/objname> [..<objtype/objname>]
    • Si vous omettez l'indicateur -S, le paramètre de balayage default fourni par l'opérateur de conformité est utilisé.
    • Le type d'objet est le type d'objet Kubernetes, qui peut être profile ou tailoredprofile. 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-run pour 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

      Exemple de sortie

      NAME              AGE
      ocp4-cis          9m54s
      ocp4-cis-node     9m54s
      ocp4-e8           9m54s
      ocp4-moderate     9m54s
      ocp4-ncp          9m54s
      rhcos4-e8         9m54s
      rhcos4-moderate   9m54s
      rhcos4-ncp        9m54s
      rhcos4-ospp       9m54s
      rhcos4-stig       9m54s

      $ oc get scansettings -n openshift-compliance

      Exemple de sortie

      NAME                 AGE
      default              10m
      default-auto-apply   10m

  2. Pour appliquer les paramètres de default aux profils ocp4-cis et ocp4-cis-node, exécutez :

    $ oc compliance bind -N my-binding profile/ocp4-cis profile/ocp4-cis-node

    Exemple de sortie

    Creating ScanSettingBinding my-binding

    Une fois que le CR ScanSettingBinding est 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

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 compliance controls fournit un rapport sur les normes et les contrôles auxquels un profil donné satisfait :

    $ oc compliance controls profile ocp4-cis-node

    Exemple de sortie

    +-----------+----------+
    | FRAMEWORK | CONTROLS |
    +-----------+----------+
    | CIS-OCP   | 1.1.1    |
    +           +----------+
    |           | 1.1.10   |
    +           +----------+
    |           | 1.1.11   |
    +           +----------+
    ...

5.14.6. Récupérer les détails de la mise en conformité

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

  1. Voir les remédiations pour un profil :

    $ oc compliance fetch-fixes profile ocp4-cis -o /tmp

    Exemple de sortie

    No fixes to persist for rule 'ocp4-api-server-api-priority-flowschema-catch-all' 1
    No fixes to persist for rule 'ocp4-api-server-api-priority-gate-enabled'
    No fixes to persist for rule 'ocp4-api-server-audit-log-maxbackup'
    Persisted rule fix to /tmp/ocp4-api-server-audit-log-maxsize.yaml
    No fixes to persist for rule 'ocp4-api-server-audit-log-path'
    No fixes to persist for rule 'ocp4-api-server-auth-mode-no-aa'
    No fixes to persist for rule 'ocp4-api-server-auth-mode-node'
    No fixes to persist for rule 'ocp4-api-server-auth-mode-rbac'
    No fixes to persist for rule 'ocp4-api-server-basic-auth'
    No fixes to persist for rule 'ocp4-api-server-bind-address'
    No fixes to persist for rule 'ocp4-api-server-client-ca'
    Persisted rule fix to /tmp/ocp4-api-server-encryption-provider-cipher.yaml
    Persisted rule fix to /tmp/ocp4-api-server-encryption-provider-config.yaml

    1
    L'avertissement No fixes to persist est 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.
  2. Vous pouvez visualiser un exemple de fichier YAML. La commande head vous montrera les 10 premières lignes :

    $ head /tmp/ocp4-api-server-audit-log-maxsize.yaml

    Exemple de sortie

    apiVersion: config.openshift.io/v1
    kind: APIServer
    metadata:
      name: cluster
    spec:
      maximumFileSizeMegabytes: 100

  3. Visualiser la remédiation à partir d'un objet ComplianceRemediation créé après une analyse :

    $ oc get complianceremediations -n openshift-compliance

    Exemple de sortie

    NAME                                             STATE
    ocp4-cis-api-server-encryption-provider-cipher   NotApplied
    ocp4-cis-api-server-encryption-provider-config   NotApplied

    $ oc compliance fetch-fixes complianceremediations ocp4-cis-api-server-encryption-provider-cipher -o /tmp

    Exemple de sortie

    Persisted compliance remediation fix to /tmp/ocp4-cis-api-server-encryption-provider-cipher.yaml

  4. Vous pouvez visualiser un exemple de fichier YAML. La commande head vous montrera les 10 premières lignes :

    $ head /tmp/ocp4-cis-api-server-encryption-provider-cipher.yaml

    Exemple de sortie

    apiVersion: config.openshift.io/v1
    kind: APIServer
    metadata:
      name: cluster
    spec:
      encryption:
        type: aescbc

Avertissement

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

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
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.