×

在证明OpenShift Container Platform集群的合规性时,您可能需要提供扫描结果以用于审计目的。

从持久卷获取合规性运算符原始结果

步骤

合规性运算符会在持久卷中生成并存储原始结果。这些结果采用资产报告格式 (ARF)。

  1. 浏览ComplianceSuite对象

    $ oc get compliancesuites nist-moderate-modified \
    -o json -n openshift-compliance | jq '.status.scanStatuses[].resultsStorage'
    示例输出
    {
         "name": "ocp4-moderate",
         "namespace": "openshift-compliance"
    }
    {
         "name": "nist-moderate-modified-master",
         "namespace": "openshift-compliance"
    }
    {
         "name": "nist-moderate-modified-worker",
         "namespace": "openshift-compliance"
    }

    这显示了可以访问原始结果的持久卷声明。

  2. 使用其中一个结果的名称和命名空间来验证原始数据位置

    $ oc get pvc -n openshift-compliance rhcos4-moderate-worker
    示例输出
    NAME                 	STATUS   VOLUME                                 	CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    rhcos4-moderate-worker   Bound	pvc-548f6cfe-164b-42fe-ba13-a07cfbc77f3a   1Gi    	RWO        	gp2        	92m
  3. 通过生成一个挂载卷并复制结果的Pod来获取原始结果

    $ oc create -n openshift-compliance -f pod.yaml
    示例pod.yaml
    apiVersion: "v1"
    kind: Pod
    metadata:
      name: pv-extract
    spec:
      securityContext:
        runAsNonRoot: true
        seccompProfile:
          type: RuntimeDefault
      containers:
        - name: pv-extract-pod
          image: registry.access.redhat.com/ubi9/ubi
          command: ["sleep", "3000"]
          volumeMounts:
          - mountPath: "/workers-scan-results"
            name: workers-scan-vol
          securityContext:
            allowPrivilegeEscalation: false
            capabilities:
              drop: [ALL]
      volumes:
        - name: workers-scan-vol
          persistentVolumeClaim:
            claimName: rhcos4-moderate-worker
  4. Pod运行后,下载结果

    $ oc cp pv-extract:/workers-scan-results -n openshift-compliance .

    生成挂载持久卷的Pod会将声明保持为Bound。如果正在使用的卷的存储类权限设置为ReadWriteOnce,则该卷一次只能由一个Pod挂载。您必须在完成后删除Pod,否则运算符将无法调度Pod并继续在此位置存储结果。

  5. 提取完成后,可以删除Pod

    $ oc delete pod pv-extract -n openshift-compliance