5장. Compliance Operator

5.1. Compliance Operator 릴리스 정보

OpenShift Container Platform 관리자는 Compliance Operator를 통해 클러스터의 필수 규정 준수 상태를 설명하고 격차에 대한 개요와 문제를 해결하는 방법을 제공할 수 있습니다.

이 릴리스 노트는 OpenShift Container Platform의 Compliance Operator 개발을 추적합니다.

Compliance Operator에 대한 개요는 Compliance Operator 이해를 참조하십시오.

5.1.1. OpenShift Compliance Operator 0.1.53

OpenShift Compliance Operator 0.1.53에 다음 권고를 사용할 수 있습니다.

5.1.1.1. 버그 수정

  • 이전 버전에서는 ocp4-kubelet-enable-streaming-connections 규칙에 잘못된 변수 비교가 포함되어 잘못된 검사 결과가 발생했습니다. 이제 streamingConnectionIdleTimeout 을 설정할 때 Compliance Operator에서 정확한 검사 결과를 제공합니다. (BZ#2069891)
  • 이전에는 IBM Z 아키텍처에서 /etc/openvswitch/conf.db 의 그룹 소유권이 올바르지 않아 ocp4-cis-worker-worker-file-groupowner-ovs-conf-db 검사 실패가 발생했습니다. 이제 IBM Z 아키텍처 시스템에서 검사에 NOT-APPLICABLE 이 표시됩니다. (BZ#2072597)
  • 이전에는 배포의 보안 컨텍스트 제약 조건(SCC) 규칙에 대한 불완전한 데이터로 인해 FAIL 상태에서 보고되는 ocp4-cis-scc-limit-container-capabilities 규칙이 보고되었습니다. 이제 최종 결과는 사람의 개입이 필요한 다른 검사와 일치합니다. (BZ#2077916)
  • 이전 버전에서는 다음 규칙이 API 서버 및 TLS 인증서 및 키의 추가 구성 경로를 고려하지 않아 인증서 및 키가 올바르게 설정된 경우에도 오류가 보고되었습니다.

    • ocp4-cis-api-server-kubelet-client-cert
    • ocp4-cis-api-server-kubelet-client-key
    • ocp4-cis-kubelet-configure-tls-cert
    • ocp4-cis-kubelet-configure-tls-key

    이제 규칙 보고서가 kubelet 구성 파일에 지정된 레거시 파일 경로를 정확하게 보고하고 관찰합니다. (BZ#2079813)

  • 이전 버전에서는 content_rule_oauth_oauthclient_inactivity_timeout 규칙에 따라 시간 초과에 대한 규정 준수를 평가할 때 배포에 설정된 구성 가능한 시간 초과가 포함되지 않았습니다. 이로 인해 시간 초과가 유효한 경우에도 규칙이 실패합니다. 이제 Compliance Operator에서 var_oauth_inactivity_timeout 변수를 사용하여 유효한 시간 초과 길이를 설정합니다. (BZ#2081952)
  • 이전에는 Compliance Operator에서 권한 있는 사용에 대해 적절히 레이블이 지정되지 않은 네임스페이스에 관리 권한을 사용했기 때문에 Pod 보안 수준 위반과 관련된 경고 메시지가 표시되었습니다. 이제 Compliance Operator에 권한을 위반하지 않고 결과에 액세스할 수 있도록 적절한 네임스페이스 레이블 및 권한 조정이 있습니다. (BZ#2088202)
  • 이전 버전에서는 rhcos4-high-master-sysctl-kernel-yama-ptrace-scoperhcos4-sysctl-kernel-core-pattern 에 대한 자동 수정을 적용하면 수정되었지만 해당 규칙이 나중에 검사 결과에 실패했습니다. 이제 규칙에서 수정 사항이 적용된 후에도 PASS 를 정확하게 보고합니다. (BZ#2094382)
  • 이전에는 메모리 부족 예외로 인해 Compliance Operator가 CrashLoopBackoff 상태로 실패했습니다. 이제 Compliance Operator가 메모리의 대규모 머신 구성 데이터 세트를 올바르게 처리하도록 개선되었습니다. (BZ#2094854)

5.1.1.2. 알려진 문제

  • ScanSettingBinding 오브젝트 내에 "debug":true 가 설정된 경우 ScanSettingBinding 오브젝트에서 생성한 Pod는 해당 바인딩이 삭제될 때 제거되지 않습니다. 이 문제를 해결하려면 다음 명령을 실행하여 나머지 Pod를 삭제합니다.

    $ oc delete pods -l compliance.openshift.io/scan-name=ocp4-cis

    (BZ#2092913)

5.1.2. OpenShift Compliance Operator 0.1.52

OpenShift Compliance Operator 0.1.52에서 다음 권고를 사용할 수 있습니다.

5.1.2.1. 새로운 기능 및 개선 사항

5.1.2.2. 버그 수정

  • 이전에는 DAC_OVERRIDE 기능이 삭제된 보안 환경의 마운트 권한 문제로 인해 OpenScap 컨테이너가 충돌했습니다. 이제 실행 가능한 마운트 권한이 모든 사용자에게 적용됩니다. (BZ#2082151)
  • 이전에는 규정 준수 규칙 ocp4-configure-network-policiesMANUAL 으로 구성할 수 있었습니다. 이제 규정 준수 규칙 ocp4-configure-network-policiesAUTOMATIC 으로 설정됩니다. (BZ#2072431)
  • 이전에는 Compliance Operator 검사 Pod가 검사 후 제거되지 않았기 때문에 Cluster Autoscaler가 축소되지 않았습니다. 이제 디버깅 목적으로 명시적으로 저장되지 않는 한 Pod는 기본적으로 각 노드에서 제거됩니다. (BZ#2075029)
  • 이전에는 KubeletConfig 에 Compliance Operator를 적용하면 Machine Config Pools가 너무 일찍 일시 정지되지 않아 노드가 NotReady 상태가되었습니다. 이제 Machine Config Pools가 적절하게 일시 중지되지 않고 노드가 올바르게 작동합니다. (BZ#2071854)
  • 이전에는 Machine Config Operator에서 최신 릴리스에서 url로 인코딩된 코드 대신 base64 를 사용하여 Compliance Operator 수정이 실패했습니다. 이제 Compliance Operator에서 base64url-encoded Machine Config 코드를 모두 처리하도록 인코딩을 확인하고 수정이 올바르게 적용됩니다. (BZ#2082431)

5.1.2.3. 알려진 문제

  • ScanSettingBinding 오브젝트 내에 "debug":true 가 설정된 경우 ScanSettingBinding 오브젝트에서 생성한 Pod는 해당 바인딩이 삭제될 때 제거되지 않습니다. 이 문제를 해결하려면 다음 명령을 실행하여 나머지 Pod를 삭제합니다.

    $ oc delete pods -l compliance.openshift.io/scan-name=ocp4-cis

    (BZ#2092913)

5.1.3. OpenShift Compliance Operator 0.1.49

OpenShift Compliance Operator 0.1.49에 다음 권고를 사용할 수 있습니다.

5.1.3.1. 버그 수정

  • 이전에는 openshift-compliance 콘텐츠에 네트워크 유형에 대한 플랫폼별 검사가 포함되지 않았습니다. 그 결과 네트워크 구성에 따라 적용되지 않고 OVN- 및 SDN 관련 검사에 실패한 것으로 표시됩니다. 이제 새로운 규칙에 네트워킹 규칙에 대한 플랫폼 검사를 포함하므로 네트워크별 검사를 보다 정확하게 평가할 수 있습니다. (BZ#1994609)
  • 이전에는 ocp4-moderate-routes-protected-by-tls 규칙에서 연결 보안 SSL TLS 프로토콜에도 불구하고 검사에 실패한 TLS 설정을 잘못 확인했습니다. 이제 검사에서 네트워킹 지침 및 프로필 권장 사항과 일치하는 TLS 설정을 올바르게 평가합니다. (BZ#2002695)
  • 이전에는 ocp-cis-configure-network-policies-namespace 가 네임스페이스를 요청할 때 pagination을 사용했습니다. 이로 인해 배포에 500개 이상의 네임스페이스 목록이 잘렸기 때문에 규칙이 실패했습니다. 이제 전체 네임스페이스 목록이 요청되고 구성된 네트워크 정책을 확인하는 규칙이 500개 이상의 네임스페이스를 사용하는 배포에 적용됩니다. (BZ#2038909)
  • 이전에는 sshd jinja 매크로를 사용한 수정 사항이 특정 sshd 구성으로 하드 코딩되었습니다. 결과적으로 규칙이 검사한 내용과 구성이 일치하지 않았으며 검사가 실패합니다. 이제 sshd 구성이 매개 변수화되어 규칙이 성공적으로 적용됩니다. (BZ#2049141)
  • 이전에는 ocp4-cluster-version-operator-verify-integrity 가 항상 Cluter Version Operator (CVO) 기록의 첫 번째 항목을 확인했습니다. 결과적으로 후속 버전의 {product-name}이 확인되는 경우 업그레이드가 실패합니다. 이제 ocp4-cluster-version-operator-verify-integrity 에 대한 규정 준수 확인 결과가 확인된 버전을 감지할 수 있으며 CVO 기록으로 정확합니다. (BZ#2053602)
  • 이전에는 ocp4-api-server-no-adm-ctrl-plugins-disabled 규칙에서 빈 승인 컨트롤러 플러그인 목록을 확인하지 않았습니다. 결과적으로 모든 승인 플러그인이 활성화된 경우에도 규칙이 항상 실패합니다. 이제 ocp4-api-server-no-adm-ctrl-plugins-disabled 규칙을 더 강력하게 확인하면 모든 승인 컨트롤러 플러그인이 활성화된 상태에서 정확하게 전달됩니다. (BZ#2058631)
  • 이전에는 검사에서 Linux 작업자 노드에 대해 실행할 플랫폼 검사를 포함하지 않았습니다. 결과적으로 Linux 기반이 아닌 작업자 노드에 대해 검사를 실행하면 검사 루프가 끝나지 않았습니다. 이제 검사가 플랫폼 유형 및 라벨에 따라 적절하게 스케줄링되고 완전히 성공적으로 예약됩니다. (BZ#2056911)

5.1.4. OpenShift Compliance Operator 0.1.48

다음 권고는 OpenShift Compliance Operator 0.1.48에서 사용할 수 있습니다.

5.1.4.1. 버그 수정

  • 이전 버전에서는 OCI(Extended Open Vulnerability and assess Language) 정의와 관련된 일부 규칙에는 checkTypeNone 이 있었습니다. 이는 Compliance Operator가 규칙을 구문 분석할 때 확장된 OVAL 정의를 처리하지 않았기 때문입니다. 이번 업데이트를 통해 확장된 OVAL 정의의 콘텐츠가 구문 분석되므로 이러한 규칙에는 Node 또는 Platform 중 하나의 checkType 이 있습니다. (BZ#2040282)
  • 이전 버전에서는 KubeletConfig 에 대해 수동으로 생성된 MachineConfig 오브젝트를 통해 KubeletConfig 오브젝트가 수정을 위해 생성되지 않아 수정이 Pending 상태로 남아 있었습니다. 이번 릴리스에서는 KubeletConfig 용으로 수동으로 생성된 MachineConfig 오브젝트가 있는지 여부에 관계없이 문제 해결을 통해 KubeletConfig 오브젝트가 생성됩니다. 결과적으로 KubeletConfig 수정이 예상대로 작동합니다. (BZ#2040401)

5.1.5. OpenShift Compliance Operator 0.1.47

OpenShift Compliance Operator 0.1.47에 다음 권고를 사용할 수 있습니다.

5.1.5.1. 새로운 기능 및 개선 사항

  • Compliance Operator는 PCI DSS(Payment Card Industry Data Security Standard)에 대한 다음 규정 준수 벤치마크를 지원합니다.

    • ocp4-pci-dss
    • ocp4-pci-dss-node
  • FedRAMP 보통 영향 수준에 대한 추가 규칙 및 수정은 OCP4-moderate, OCP4-moderate-node 및 rhcos4-moderate 프로필에 추가됩니다.
  • 노드 수준 프로필에서 KubeletConfig 수정을 사용할 수 있습니다.

5.1.5.2. 버그 수정

  • 이전 버전에서는 클러스터가 OpenShift Container Platform 4.6 또는 이전 버전을 실행하는 경우 적절한 프로필에 대해 USBGuard 관련 규칙에 대한 수정이 실패했습니다. 이는 Compliance Operator에서 생성한 수정이 드롭인 디렉터리를 지원하지 않는 이전 버전의 USBGuard를 기반으로 하기 때문입니다. 이제 OpenShift Container Platform 4.6을 실행하는 클러스터에는 USBGuard 관련 규칙에 대한 잘못된 수정이 생성되지 않습니다. 클러스터가 OpenShift Container Platform 4.6을 사용하는 경우 USBGuard 관련 규칙에 대한 수정을 수동으로 생성해야 합니다.

    또한 최소 버전 요구 사항을 충족하는 규칙 전용 수정이 생성됩니다. (BZ#1965511)

  • 이전 버전에서는 수정을 렌더링할 때 규정 준수 연산자는 너무 엄격한 정규 표현식을 사용하여 해결 방법의 형식이 올바른지 확인했습니다. 그 결과 sshd_config 를 렌더링하는 것과 같은 일부 수정이 정규 표현식 검사를 통과하지 않으므로 생성되지 않았습니다. 정규 표현식은 불필요하고 제거된 것으로 확인되었습니다. 이제 수정 사항이 올바르게 렌더링됩니다. (BZ#2033009)

5.1.6. OpenShift Compliance Operator 0.1.44

OpenShift Compliance Operator 0.1.44에 대해 다음 권고를 사용할 수 있습니다.

5.1.6.1. 새로운 기능 및 개선 사항

  • 이번 릴리스에서는 ComplianceScan, ComplianceSuiteScanSetting CR에 strictNodeScan 옵션이 추가되었습니다. 이 옵션은 노드에서 검색을 예약할 수 없는 경우 오류가 발생한 이전 동작과 일치하는 true로 기본 설정됩니다. 옵션을 false로 설정하면 Compliance Operator가 스케줄링 검사에 대해 더 관대해질 수 있습니다. 임시 노드가 있는 환경에서는 strictNodeScan 값을 false로 설정할 수 있으므로 클러스터의 일부 노드를 예약할 수 없는 경우에도 규정 준수 검사를 진행할 수 있습니다.
  • 이제 ScanSetting 오브젝트의 nodeSelectortolerations 속성을 구성하여 결과 서버 워크로드를 예약하는 데 사용되는 노드를 사용자 지정할 수 있습니다. 이러한 속성은 PV 스토리지 볼륨을 마운트하고 원시 자산 보고 형식(ARF) 결과를 저장하는 데 사용되는 Pod인 ResultServer Pod를 배치하는 데 사용됩니다. 이전에는 nodeSelectortolerations 매개변수가 컨트롤 플레인 노드 중 하나를 선택하고 node-role.kubernetes.io/master taint를 허용하는 것으로 기본 설정되었습니다. 이는 컨트롤 플레인 노드가 PV를 마운트할 수 없는 환경에서는 작동하지 않았습니다. 이 기능을 사용하면 해당 환경에서 노드를 선택하고 다른 테인트를 허용할 수 있습니다.
  • Compliance Operator에서 KubeletConfig 오브젝트를 수정할 수 있습니다.
  • 이제 오류 메시지가 포함된 주석이 추가되어 콘텐츠 개발자가 클러스터에 없는 오브젝트와 가져올 수 없는 개체를 구분할 수 있습니다.
  • 이제 rule 오브젝트에 checkTypedescription 이라는 두 개의 새 속성이 포함됩니다. 이러한 속성을 사용하면 규칙과 노드 점검 또는 플랫폼 점검이 적용되는지 확인하고 규칙의 기능을 검토할 수도 있습니다.
  • 이번 개선된 기능을 통해 맞춤형 프로필을 생성하기 위해 기존 프로필을 확장해야 하는 요구 사항이 제거됩니다. 즉 TailoredProfile CRD의 extends 필드가 더 이상 필수가 아닙니다. 이제 규칙 오브젝트 목록을 선택하여 맞춤형 프로필을 생성할 수 있습니다. compliance.openshift.io/product-type: 주석을 설정하거나 TailoredProfile CR에 -node 접미사를 설정하여 프로필이 노드 또는 플랫폼에 적용되는지 여부를 선택해야 합니다.
  • 이번 릴리스에서 Compliance Operator는 테인트와 관계없이 모든 노드에서 검사를 예약할 수 있습니다. 이전에는 검사 Pod에서 node-role.kubernetes.io/master taint만 허용했습니다. 즉, 테인트가 없는 노드에서나 node-role.kubernetes.io/master 테인트가 있는 노드에서만 실행되었습니다. 노드에 사용자 정의 테인트를 사용하는 배포에서는 해당 노드에 검사가 예약되지 않았습니다. 이제 검사 Pod에서 모든 노드 테인트를 허용합니다.
  • 이 릴리스에서 Compliance Operator는 다음과 같은NERC(North American Power Reliability Corporation) 보안 프로필을 지원합니다.

    • ocp4-nerc-cip
    • ocp4-nerc-cip-node
    • rhcos4-nerc-cip
  • 이번 릴리스에서 Compliance Operator는 Red Hat OpenShift - 노드 수준, ocp4-moderate-node, 보안 프로파일에 대한 NIST 800-53 Moderate-Impact Baseline을 지원합니다.

5.1.6.2. 템플릿 및 변수 사용

  • 이번 릴리스에서는 해결 템플릿에서 다중 값 변수를 허용합니다.
  • 이번 업데이트를 통해 Compliance Operator는 규정 준수 프로필에 설정된 변수를 기반으로 수정을 변경할 수 있습니다. 이는 시간 제한, NTP 서버 호스트 이름 또는 유사한 배포별 값을 포함하는 수정에 유용합니다. 또한 ComplianceCheckResult 오브젝트에서 검사에 사용된 변수를 나열하는 compliance.openshift.io/check-has-value 레이블을 사용합니다.

5.1.6.3. 버그 수정

  • 이전에는 검사를 수행하는 동안 Pod의 스캐너 컨테이너 중 하나에서 예기치 않은 종료가 발생했습니다. 이번 릴리스에서 Compliance Operator는 최신 OpenSCAP 버전 1.3.5를 사용하여 충돌을 방지합니다.
  • 이전 버전에서는 autoReplyRemediations를 사용하여 수정을 적용하면 클러스터 노드 업데이트가 트리거되었습니다. 일부 수정에 필요한 입력 변수가 모두 포함되지 않은 경우 이로 인해 중단되었습니다. 이제 수정에 필요한 입력 변수가 하나 이상 누락된 경우 NeedsReview 상태가 할당됩니다. 하나 이상의 수정이 needsReview 상태에 있는 경우 머신 구성 풀은 일시 중지된 상태로 남아 있으며 모든 필수 변수가 설정될 때까지 수정이 적용되지 않습니다. 이렇게 하면 노드 중단을 최소화할 수 있습니다.
  • Prometheus 지표에 사용되는 RBAC 역할 및 역할 바인딩이 'ClusterRole' 및 'ClusterRoleBinding'으로 변경되어 사용자 지정 없이 모니터링이 작동하는지 확인합니다.
  • 이전에는 프로필을 구문 분석하는 중에 오류가 발생하면 규칙 또는 변수 오브젝트가 프로필에서 제거되고 삭제되었습니다. 이제 구문 분석 중에 오류가 발생하면 profileparser는 구문 분석이 완료될 때까지 오브젝트가 삭제되지 않도록 임시 주석으로 오브젝트에 주석을 추가합니다. (BZ#1988259)
  • 이전에는 맞춤형 프로필에서 제목 또는 설명이 누락된 경우 오류가 발생했습니다. XCCDF 표준에는 맞춤형 프로필에 대한 제목과 설명이 필요하므로 이제 TailoredProfile CR에 제목 및 설명을 설정해야 합니다.
  • 이전에는 맞춤형 프로필을 사용할 때 특정 선택 세트만 사용하여 TailoredProfile 변수 값을 설정할 수 있었습니다. 이제 이 제한이 제거되고 TailoredProfile 변수를 임의의 값으로 설정할 수 있습니다.

5.1.7. Compliance Operator 0.1.39의 릴리스 정보

OpenShift Compliance Operator 0.1.39에 대해 다음 권고를 사용할 수 있습니다.

5.1.7.1. 새로운 기능 및 개선 사항

  • 이전에는 Compliance Operator에서 PCI DSS(Payment Card Industry Data Security Standard) 참조를 구문 분석할 수 없었습니다. 이제 Operator에서 PCI DSS 프로필과 함께 제공되는 컴플라이언스 콘텐츠를 구문 분석할 수 있습니다.
  • 이전에는 Compliance Operator에서 보통 프로필에서 AU-5 제어 규칙을 실행할 수 없었습니다. 이제 Prometheusrules.monitoring.coreos.com 오브젝트를 읽고 보통 프로필에서 AU-5 제어를 포함하는 규칙을 실행할 수 있도록 Operator에 권한이 추가됩니다.

5.1.8. 추가 리소스