5.8. 检索 Compliance Operator 原始结果

为 OpenShift Container Platform 集群提供合规性时,您可能需要提供扫描结果以供审核。

5.8.1. 从持久性卷中获取 Compliance Operator 原始结果

流程

Compliance Operator 生成原始结果并将其存储在持久性卷中。这些结果采用资产报告格式 (ARF)。

  1. 探索 ComplianceSuite 对象:

    $ oc get compliancesuites nist-moderate-modified -o json \
        | jq '.status.scanStatuses[].resultsStorage'
        {
          "name": "rhcos4-moderate-worker",
          "namespace": "openshift-compliance"
        }
        {
          "name": "rhcos4-moderate-master",
          "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 来获取原始结果:

    Pod 示例

    apiVersion: "v1"
    kind: Pod
    metadata:
      name: pv-extract
    spec:
      containers:
        - name: pv-extract-pod
          image: registry.access.redhat.com/ubi8/ubi
          command: ["sleep", "3000"]
          volumeMounts:
          - mountPath: "/workers-scan-results"
            name: workers-scan-vol
      volumes:
        - name: workers-scan-vol
          persistentVolumeClaim:
            claimName: rhcos4-moderate-worker

  4. Pod 运行后,下载结果:

    $ oc cp pv-extract:/workers-scan-results .
    重要

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

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

    $ oc delete pod pv-extract