Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-1792

The instructions for rule ocp4-machine-volume-encrypted need to be updated

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Normal Normal
    • None
    • 4.12
    • Compliance Operator
    • None
    • Moderate
    • None
    • False
    • Hide

      None

      Show
      None

      Description of problem:

      The instructions for rule ocp4-machine-volume-encrypted is not correct.
      To to retrieve if the FIPS flag is enabled, should use: 
      $ oc get machineconfig -o json | jq '[.items[] | select(.metadata.name | test("^rendered-worker-[0-9a-z]+$|^rendered-master-[0-9a-z]+$"))] | map(.spec.fips == true)' [   true,   true,   true,   true ]
      
      To retrieve if LUKS encryption is enabled, should use:
      $ oc get machineconfig -o json | jq '[.items[] | select(.metadata.name | test("^rendered-worker-[0-9a-z]+$|^rendered-master-[0-9a-z]+$"))] | map(.spec.config.storage.luks[0].clevis != null)' [   true,   true,   true,   true ] 

      Version-Release number of selected component (if applicable):

      4.12.0-0.nightly-2022-09-26-111919 + compliance-operator.v0.1.55

      How reproducible:

      always

      Steps to Reproduce:

       Install compliance-operator.v0.1.55.
      2. Check the instructions for rule ocp4-machine-volume-encrypted:
      $ oc get rule ocp4-machine-volume-encrypted -o=jsonpath={.instructions} 

      Actual results:

      With commands in the instructions, a user could not get the FIPS and LUKS encryption status correctly(on a fips enabled and LUKS encryption enabled cluster):  
      $ oc get machineconfig -o json | jq '. | [select(.items[].metadata.name | test("^rendered-worker-[0-9a-z]+$|^rendered-master-[0-9a-z]+$"))] | map(.spec.fips == true)'
      [
        false,
        false,
        false,
        false
      ]
      $ oc get machineconfig -o json | jq '. | [select(.items[].metadata.name | test("^rendered-worker-[0-9a-z]+$|^rendered-master-[0-9a-z]+$"))] | map(.spec.config.storage.luks[0].clevis != null)'
      [
        false,
        false,
        false,
        false
      ]
      

      Expected results:

      To to retrieve if the FIPS flag is enabled, should use: 
      $ oc get machineconfig -o json | jq '[.items[] | select(.metadata.name | test("^rendered-worker-[0-9a-z]+$|^rendered-master-[0-9a-z]+$"))] | map(.spec.fips == true)'
      [
        true,
        true,
        true,
        true
      ]
      
      To retrieve if LUKS encryption is enabled, should use:
      $ oc get machineconfig -o json | jq '[.items[] | select(.metadata.name | test("^rendered-worker-[0-9a-z]+$|^rendered-master-[0-9a-z]+$"))] | map(.spec.config.storage.luks[0].clevis != null)'
      [
        true,
        true,
        true,
        true
      ]
      

      Additional info:

      $ oc get rule ocp4-machine-volume-encrypted -o=jsonpath={.instructions}
      Run the following command to see if EBS encryption is enabled:
      $ oc get machineset --all-namespaces -o json | jq '[.items[] | .spec.template.spec.providerSpec.value.blockDevices[0].ebs.encrypted] | map(. == true)'
      Make sure that the result is an array of 'true' values.Run the following command to retrieve if the GCP disk encryption is enabled:
      $ oc get machineset --all-namespaces -o json | jq '[.items[] | select(.spec.template.spec.providerSpec.value.disks[0].encryptionKey.kmsKey.name != null) | .metadata.name]'
      Make sure that the result is an array MachineSet names. These MachineSets 
      have references to the GCP's KMS key names, which can be inspected by going through them
      with $ oc get machineset --all-namespaces -o yamlRun the following command to retrieve if the Azure disk encryption is enabled:
      $ oc get machineset --all-namespaces -o json | jq '[.items[] | select(.spec.template.spec.providerSpec.value.osDisk.managedDisk.diskEncryptionSet.id != null) | .metadata.name]}'
      Make sure that the result is an array of machineset names where
      disk encryption is enabled.
      This can be inspected by going through them
      with $ oc get machineset --all-namespaces -o yamlIf not, run the following command to retrieve if the FIPS flag is enabled:
      $ oc get machineconfig -o json | jq '. | [select(.items[].metadata.name | test("^rendered-worker-[0-9a-z]+$|^rendered-master-[0-9a-z]+$"))] | map(.spec.fips == true)'
      Make sure that the result is an array of 'true' values.
      Then, run this next command to retrieve if LUKS encryption is enabled:
      $ oc get machineconfig -o json | jq '. | [select(.items[].metadata.name | test("^rendered-worker-[0-9a-z]+$|^rendered-master-[0-9a-z]+$"))] | map(.spec.config.storage.luks[0].clevis != null)'
      

              jhrozek@redhat.com Jakub Hrozek (Inactive)
              xiyuan@redhat.com Xiaojie Yuan
              Xiaojie Yuan Xiaojie Yuan
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: